以下是在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的常見故障,結合具體錯誤日志進一步分析可快速解決問題。