在CentOS上部署和運行Kubernetes(k8s)時,可能會遇到各種故障。以下是一些常見的故障排查步驟和解決方法:
kubectl get nodes
命令檢查節點狀態,確保所有節點正常運行。kubectl get pods --all-namespaces
命令獲取所有Pod的狀態,尋找未處于Running狀態的Pod,并通過 kubectl describe pod <pod_name>
獲取詳細信息。kubectl get events
命令查看集群中發生的事件,這些事件可能包含有關故障的線索。free -g
檢查內存使用狀態。cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查詢并計算物理CPU數量。dd if=/dev/zero of=/tmp/testfile bs=4K count=512 conv=fdatasync oflag=direct,nonblock
命令測試系統盤IO性能。journalctl -xe
查看Kubernetes組件的日志。tail -f /var/log/messages
查看系統日志。dmesg -T
查看開機信息、內核信息、硬件問題等。tail -f /sysvol/mariadb/mariadb_data/mysql-error.log
查看數據庫錯誤日志。cannot allocate memory
或 no space left on device
錯誤,檢查是否存在內存泄露。/sys/fs/cgroup/memory/kubepods/memory.kmem.slabinfo
文件,判斷是否存在內存泄露。ping
和 traceroute
命令測試節點之間的網絡連通性。kubectl get pods -n kube-system
查看相關Pod的狀態。kubectl get pv
, kubectl get pvc
, 和 kubectl get storageclass
命令檢查存儲相關狀態。kubectl debug
工具進入正在運行的Pod進行調試。該工具可以為Pod添加一個臨時容器,并攜帶調試工具進入容器內部進行排查。kubectl exec
命令進入Pod內部進行調試。通過以上步驟,可以系統地對Kubernetes集群進行故障排查,快速定位并解決問題,確保系統的穩定運行。