以下是在Ubuntu上进行Kubernetes故障排查的常用步骤:
更新系统及组件
确保Ubuntu系统和Kubernetes组件(kubelet、kubeadm、kubectl)为最新版本,使用命令:
sudo apt update && sudo apt upgrade
kubeadm version && kubelet --version && kubectl version
检查节点状态
NotReady
状态:kubectl get nodes
kubectl describe node <节点名>
检查Kubelet服务
sudo systemctl status kubelet
sudo journalctl -u kubelet -f
检查集群组件Pod
查看kube-system
命名空间下核心组件(如kube-apiserver、kube-controller-manager)的Pod状态:
kubectl get pods -n kube-system
若Pod异常,查看其日志:
kubectl logs -n kube-system <组件Pod名>
网络连通性
ping <其他节点IP>
kubectl describe service <服务名>
kubectl describe pod <Pod名>
存储配置
kubectl get pv,pvc
kubectl describe pod <Pod名> | grep -A 10 "Volumes"
资源不足
kubectl top nodes
Pod调度失败
kubectl describe pod <Pod名>
kubectl describe node <节点名> | grep Taints
kubectl get pod <Pod名> -o yaml | grep tolerations
进入Pod容器调试
若Pod内应用异常,可进入容器查看:
kubectl exec -it <Pod名> -- /bin/sh
使用临时调试容器
通过kubectl debug
命令启动临时容器进行排查(需Kubernetes 1.18+):
kubectl debug -it <Pod名> --image=busybox
kubeadm reset
重置集群,重新执行初始化命令并指定国内镜像源。通过以上步骤可系统性定位Ubuntu上Kubernetes的常见故障,结合具体错误日志进一步分析可快速解决问题。