项目功能测试时发现k8s集群pod状态异常,node节点异常。
通过命令查看节点状态发现,有一台node状态为NotReady。

[root@loli-test1 ~]# kubectl get nodes
NAME           STATUS     ROLES    AGE    VERSION
172.12.33.35   Ready   <none>   237d   v1.16.8-dirty
172.12.33.36   NotReady   <none>   237d   v1.16.8-dirty
172.12.33.37   Ready   <none>   237d   v1.16.8-dirty
172.12.33.38   Ready   <none>   237d   v1.16.8-dirty

在异常的节点中,执行查看nodes命令,发现除自己本身状态是ready外,其他节点均为NotReady

[root@loli-test2 ~]# kubectl get nodes
NAME           STATUS     ROLES    AGE    VERSION
172.12.33.35   NotReady   <none>   237d   v1.16.8-dirty
172.12.33.36   Ready   <none>   237d   v1.16.8-dirty
172.12.33.37   NotReady   <none>   237d   v1.16.8-dirty
172.12.33.38   NotReady   <none>   237d   v1.16.8-dirty

出现问题的节点为master节点,35、36均存在etcd服务。

解决办法

可以通过ps命令过滤etcd的数据目录,未必为默认的。

在异常的节点etcd的data-dir目录下,重命名或删除member目录

cd /var/lib/etcd
mv member{,.bak}

在移动目录后,重启kubelet服务即可

systemctl restart kubelet

本文仅针对kubeadm部署的k8s集群

END

本文标题:记一次测试环境k8s节点NotReady状态

本文作者:宇宙最帅的男人

本文链接:https://lolicp.com/kubernetes/202423659.html

版权声明:转载或者引用本文内容请注明来源及原作者,本文著作权归作者 (宇宙最帅的男人) 所有。

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最后修改:2024 年 01 月 23 日
如果觉得我的文章对你有用,请随意赞赏