k8s master 查看nodes,有節點的 狀態是 notready 如何排查?
-
查看具體報錯,如果是 節點上的docker 服務端進程連不上的話,就去解決節點上的問題。查看節點詳細信息
kubectl describe nodename
-
解決節點上的問題前,可以在 master 節點上將 異常的節點先刪除掉,命令:
kubectl delete nodes nodename
,然后查看永久有效的token,kubeadm token list
,等節點恢復好了需要再加入到集群中時需要這個token。 -
節點上如果重啟docker 卡死,可能是 docker 占用的 磁盤空間,內存,cpu 等硬件資源太多導致的。可以嘗試重裝 docker來解決。可以清理 節點上 多余的鏡像
docker system prune -a
,保證節點空間足夠。可以用journal -u docker
或者systemctl status docker
排查docker 進程的問題。 -
節點使用
kubeadm reset
之后,會清除 cni0 和 fannal 網卡的配置文件,需要創建 10.fannel 的相關文件,才能在集群中顯示 ready,注意舊的網卡需要刪除,執行ip link del cni0
等。最后最好執行一下systemctl daemon -reload
,重新加載一下后台進程。 -
節點上啟動docker服務,和kubelet 服務,用
kubeadm join
命令將此節點加入到集群中,最后在k8s 的 dashboard上也可以看得到了。master 上創建token 的命令:kubeadm token create --ttl 0
生成永久token。