这篇文章是关于使用 Kubectl 进行 Kubernetes 诊断的指南。
列出了 100 个 Kubectl 命令,这些命令对于诊断 Kubernetes 集群中的问题非常有用。这些问题包括但不限于:
• 集群信息
• Pod 诊断
• 服务诊断
• 部署诊断
• 网络诊断
• 持久卷和持久卷声明诊断
• 资源使用情况
• 安全和授权
• 节点故障排除
• 其他诊断命令:文章还提到了许多其他命令,如资源扩展和自动扩展、作业和定时作业诊断、Pod 亲和性和反亲和性规则、RBAC 和安全、服务账号诊断、节点排空和取消排空、资源清理等。
集群信息:
-
1. 显示 Kubernetes 版本:
kubectl version
-
2. 显示集群信息:
kubectl cluster-info
-
3. 列出集群中的所有节点:
kubectl get nodes
-
4. 查看一个具体的节点详情:
kubectl describe node <node-name>
-
5. 列出所有命名空间:
kubectl get namespaces
-
6. 列出所有命名空间中的所有 pod:
kubectl get pods --all-namespaces
Pod 诊断:
-
1. 列出特定命名空间中的 pod:
kubectl get pods -n <namespace>
-
2. 查看一个 Pod 详情:
kubectl describe pod <pod-name> -n <namespace>
-
3. 查看 Pod 日志:
kubectl logs <pod-name> -n <namespace>
-
4. 尾部 Pod 日志:
kubectl logs -f <pod-name> -n <namespace>
-
5. 在 pod 中执行命令:
kubectl exec -it <pod-name> -n <namespace> -- <command>
Pod 健康检查:
-
1. 检查 Pod 准备情况:
kubectl get pods <pod-name> -n <namespace> -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
-
2. 检查 Pod 事件:
kubectl get events -n <namespace> --field-selector involvedObject.name=<pod-name>
Service诊断:
-
1. 列出命名空间中的所有服务:
kubectl get svc -n <namespace>
-
2. 查看一个服务详情:
kubectl describe svc <service-name> -n <namespace>
Deployment诊断:
-
1. 列出命名空间中的所有Deployment:
kubectl get deployments -n <namespace>
-
2. 查看一个Deployment详情:
kubectl describe deployment <deployment-name> -n <namespace>
-
3. 查看滚动发布状态:
kubectl rollout status deployment/<deployment-name> -n <namespace>
-
4. 查看滚动发布历史记录:
kubectl rollout history deployment/<deployment-name> -n <namespace>
StatefulSet诊断:
-
1. 列出命名空间中的所有 StatefulSet:
kubectl get statefulsets -n <namespace>
-
2. 查看一个 StatefulSet详情:
kubectl describe statefulset <statefulset-name> -n <namespace>
ConfigMap