以下是在CentOS上排查K8s故障的常用方法:
检查集群状态
kubectl get nodes:查看节点是否处于Ready状态,若为NotReady需进一步排查节点服务。kubectl get pods --all-namespaces:获取所有Pod状态,关注Pending、CrashLoopBackOff等异常状态。查看事件与日志
kubectl get events:查看集群事件,定位异常发生时间点及可能原因。kubectl logs <pod-name>:查看Pod内容器日志,若Pod有多个容器需指定-c <container-name>。journalctl -u kubelet:查看kubelet服务日志,排查节点级错误。网络排查
kubectl get pods -o wide:检查Pod IP及所在节点,确认网络连通性。ping/traceroute:测试节点间、Pod间网络连通性。kubectl get pods -n kube-system,确保相关Pod正常运行。资源与配置检查
kubectl top nodes/pods:监控资源使用情况,排查资源不足或限制问题。kubectl get pv,pvc,storageclass,确认PV与PVC绑定状态及存储类是否正确。nslookup <service-name>,检查CoreDNS是否正常解析。系统级排查
top/free -m,确保CPU、内存、磁盘空间充足。firewall-cmd --list-all,确保K8s所需端口(如6443、10250等)开放。高级调试工具
kubectl debug:在Pod中启动临时调试容器,安装工具进行深入排查。参考来源: