k8s的node节点不可用,状态为NotReady解决方法

376 阅读1分钟

早上业务突然反馈生产环境服务无法登录,于是登录k8s服务器查看pods状态

kubectl get pods -o wide

发现node10节点上所有pod状态均为Terminating

image.png 然后使用kubectl get node命令查看所有节点状态

NAME         STATUS   ROLES    AGE   VERSION
k8s-node07   Ready    <none>   56d   v1.14.2
k8s-node08   Ready    <none>   56d   v1.14.2
k8s-node09   Ready    <none>   56d   v1.14.2
k8s-node10   NotReady <none>   56d   v1.14.2

发现node10的状态为NotReady,已经无法正常工作

从集群中移除节点(可选)

如果资源富裕的情况下,可以考虑先将问题节点从集群中移除,并将该节点下所有pods驱逐到其他节点

kubectl drain k8s-node10 --delete-local-data --force --ignore-daemonsets

当该节点问题解决后再重新加入到集群中

kubectl uncordon k8s-node10

解决node问题节点方法

首先登录到node10服务器,将docker容器停用

systemctl stop docker

移除docker容器exec文件夹下所有文件,如果出现部分文件无法删除则需要重启服务器

rm -rf /data/k8s/docker/exec/*

然后重新启动k8s服务

systemctl restart flanneld

systemctl restart kubelet

systemctl restart kube-proxy