总结一下这次在项目中经常使用的一些 K8s 的命令。

K8s 常用命令总结


1. 获取 Kubernetes 集群信息

1
kubectl cluster-info

场景: 查看 Kubernetes 集群的基本信息,包括 API 服务器的地址。


2. 获取节点信息

1
kubectl get nodes

场景: 查看集群中所有节点的状态,帮助确认节点是否健康,以及节点资源的使用情况。


3. 获取 Pod 列表

1
kubectl get pods

场景: 查看指定命名空间中的所有 Pod 的状态,检查 Pod 是否正在运行。


4. 获取 Pod 的详细信息

1
kubectl describe pod <pod-name> -n <namespace>

场景: 获取 Pod 的详细描述,包括状态、事件、日志等,帮助进行故障排查。


5. 获取 Pod 的标签

1
kubectl get pod <pod-name> -o=jsonpath='{.metadata.labels}'

场景: 获取某个 Pod 的标签,方便进行标签筛选和调度管理。


6. 删除 Pod

1
kubectl delete pod <pod-name> -n <namespace>

场景: 删除指定的 Pod。常用于清理挂掉或无用的 Pod。


7. 强制删除 Pod

1
kubectl delete pod <pod-name> --grace-period=0 --force -n <namespace>

场景: 强制删除 Pod,适用于无法正常删除的 Pod。注意,这种操作会跳过 Pod 的优雅终止过程。


8. 获取 Pod 的日志

1
kubectl logs <pod-name> -n <namespace>

场景: 查看 Pod 中容器的日志,帮助排查应用问题或容器启动失败的原因。


9. 查看 Pod 的实时日志(带容器名)

1
kubectl logs -f <pod-name> -c <container-name> -n <namespace>

场景: 实时查看指定容器的日志,适用于跟踪应用程序运行中的问题。


10. 进入 Pod 内部

1
kubectl exec -it <pod-name> -n <namespace> -- /bin/bash

场景: 进入 Pod 内部,执行交互式命令,适用于调试和手动操作。


11. 执行 Pod 内部命令

1
kubectl exec <pod-name> -n <namespace> -- <command>

场景: 在 Pod 内部执行一次性命令,适用于临时操作。


12. 查看命名空间中的所有资源

1
kubectl get all -n <namespace>

场景: 查看命名空间中的所有资源(Pod、Service、Deployment 等),用于快速浏览资源状态。


13. 部署应用(使用 YAML 配置)

1
kubectl apply -f <file.yaml>

场景: 根据指定的 YAML 文件创建或更新资源,常用于部署应用、配置服务等。


14. 删除命名空间

1
kubectl delete namespace <namespace>

场景: 删除指定命名空间及其资源,适用于清理整个环境。


15. 查看服务的详细信息

1
kubectl describe svc <service-name> -n <namespace>

场景: 查看服务的详细信息,包括端口、选择器等,适用于调试服务访问问题。


16. 获取集群的 ConfigMap 列表

1
kubectl get configmap -n <namespace>

场景: 查看命名空间中所有的 ConfigMap,帮助管理配置文件。


17. 创建 ConfigMap

1
kubectl create configmap <configmap-name> --from-file=<path-to-file> -n <namespace>

场景: 创建 ConfigMap 资源并从文件中导入配置,常用于存储配置文件或密钥。


18. 获取所有 Pod 的标签

1
kubectl get pods --show-labels -n <namespace>

场景: 获取所有 Pod 的标签信息,便于筛选和管理。


19. 获取某个资源的版本

1
kubectl version

场景: 查看 kubectl 客户端和 Kubernetes 服务端的版本信息,帮助确认版本兼容性。


20. 使用 Port Forward 转发端口

1
kubectl port-forward pod/<pod-name> 8080:80 -n <namespace>

场景: 将 Pod 的端口转发到本地,适用于访问集群内的应用(如本地访问 Pod 中的 Web 服务)。


21. 查看 Pod 的状态

1
kubectl get pod <pod-name> -n <namespace> -o wide

场景: 查看 Pod 的状态和其他详细信息,如 IP 地址、节点等,帮助诊断 Pod 问题。


22. 查看 Deployment 状态

1
kubectl get deployment <deployment-name> -n <namespace>

场景: 查看某个 Deployment 的状态,帮助确认应用是否按预期运行。


23. 获取 Kubernetes 的 Config 配置文件

1
kubectl config view

场景: 查看当前的 Kubernetes 配置,帮助查看已配置的集群和上下文。


24. 修改 kubectl 使用的 Config 文件

1
export KUBECONFIG=<path-to-kubeconfig>

场景: 指定自定义的 kubeconfig 文件位置,避免使用默认的 ~/.kube/config


25. 等待 Pod 删除完成

1
kubectl wait --for=delete pod <pod-name> -n <namespace> --timeout=60s

场景: 等待指定的 Pod 删除完成,用于确保 Pod 被完全删除。


26. 查看 Pod 的进程

1
kubectl top pod <pod-name> -n <namespace>

场景: 查看 Pod 中的资源使用情况(CPU、内存等),适用于性能调优和资源监控。


27. 查看命名空间的资源

1
kubectl get all -n <namespace>

场景: 查看某个命名空间中的所有资源,帮助管理和维护集群。


28. 监控服务的状态

1
kubectl rollout status deployment/<deployment-name> -n <namespace>

场景: 查看 Deployment 的发布状态,适用于查看应用更新或滚动升级的进度。


29. 更新资源

1
kubectl apply -f <file.yaml>

场景: 更新现有的 Kubernetes 资源,适用于应用更新或配置变更。


30. 获取 Helm 安装的 Release 列表

1
helm list -n <namespace>

场景: 获取 Helm 安装的所有 Release,帮助管理 Helm 部署的应用。