k8s出问题后应该查看哪些内容
- 人工智能
- 2025-09-20 03:03:01

要确认 Kubernetes (k8s) 系统是否正常运行,需要检查集群的 核心组件、节点状态、Pod 运行情况 和 网络通信。以下是详细步骤和命令:
1. 检查集群节点状态 kubectl get nodes 期望输出:所有节点状态为 Ready。异常情况: NotReady:节点可能未启动或组件故障。节点缺失:节点未加入集群或通信问题。
2. 检查核心组件 Pod 状态
Kubernetes 控制平面组件(如 kube-apiserver、etcd、kube-scheduler、kube-controller-manager)通常以 Pod 形式运行在 kube-system 命名空间:
kubectl get pods -n kube-system 期望输出:所有 Pod 状态为 Running 且 READY 为 1/1 或类似。常见异常: CrashLoopBackOff:组件崩溃循环,需检查日志。Pending:资源不足或调度失败。ImagePullBackOff:镜像拉取失败。3. 查看核心组件日志
如果某个核心 Pod 异常,查看其日志:
kubectl logs <pod-name> -n kube-system例如检查 kube-apiserver:
kubectl logs kube-apiserver-master-node -n kube-system4. 检查 Kubernetes 服务状态 控制平面服务(Master 节点):# 检查 kube-apiserver 是否监听 6443 端口 curl -k localhost:6443/healthz # 期望输出:ok # 检查 etcd 健康状态 kubectl get --raw='/readyz?verbose' 工作节点服务(每个 Node):# 检查 kubelet 状态 systemctl status kubelet # 检查容器运行时(如 Docker 或 Containerd) systemctl status docker
5. 验证网络连通性
Kubernetes 网络是否正常:
# 创建一个临时 Pod 测试网络 kubectl run network-test --image=alpine --rm -it --restart=Never -- sh # 进入 Pod 后测试 DNS 和跨节点通信 ping kubernetes.default.svc.cluster.local # DNS 解析 ping <其他节点的IP> # 跨节点通信6. 检查 Kubernetes 事件
查看集群中的警告或错误事件:
kubectl get events --sort-by='.metadata.creationTimestamp' -w 关注 Warning 类型的事件,如调度失败、镜像拉取错误等。7. 验证集群功能 部署测试应用:kubectl create deployment nginx-test --image=nginx kubectl expose deployment nginx-test --port=80 --type=NodePort kubectl get svc nginx-test # 获取访问端口 访问测试:curl http://<节点IP>:<NodePort> 若返回 Nginx 欢迎页,说明集群功能正常。
8. 使用集群诊断工具 kubeadm 检查(如果使用 kubeadm 部署):kubeadm alpha certs check-expiration # 检查证书有效期 kubeadm config check # 检查配置 集群状态工具:kubectl cluster-info # 查看集群基本信息 kubectl get componentstatus # 检查核心组件状态(已弃用,建议直接检查 Pod)
常见问题排查 节点 NotReady: 检查 kubelet 是否运行:systemctl status kubelet查看节点详情:kubectl describe node <节点名称> Pod 无法调度: 检查资源配额:kubectl describe node | grep -A 10 Allocated查看调度失败原因:kubectl describe pod <pod-name> 服务无法访问: 检查防火墙规则是否放行 NodePort 或 LoadBalancer 端口。验证 Service 和 Endpoints 是否正常:kubectl get svc <service-name> kubectl get endpoints <service-name>
总结步骤 检查所有节点 Ready。确认 kube-system 命名空间下的核心 Pod 全部运行正常。验证网络和 DNS 通信。查看事件和日志定位具体错误。
通过以上步骤,可以快速诊断 Kubernetes 集群的健康状态。
解决方案:最简单 粗暴的一种
systemctl restart docker kubeletk8s出问题后应该查看哪些内容由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“k8s出问题后应该查看哪些内容”