节点not ready 故障排查
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。