如何解决K8S节点显示NotReady

kubernetes节点断电重启

背景:运行的好好的k8s集群,某天断电,发现一个节点炸了,显示NotReady

kubectl get nodes

那么如何查找问题呢? 我们用它:journalctl工具是CentOS-7才有的工具

复制代码

    Systemd 统一管理所有 Unit 的启动日志。好处就是 ,可以只用journalctl一个命令,查看所有日志(内核日志和 应用日志)。日志的配置文件/etc/systemd/journald.conf

journalctl用法:

    查看所有日志(默认情况下 ,只保存本次启动的日志): journalctl 查看内核日志(不显示应用日志): journalctl -k 查看系统本次启动的日志: journalctl -b 查看上一次启动的日志(需更改设置): 在该[Journal]部分下,将该Storage=选项设置为“persistent”以启用持久记录:
vim    /etc/systemd/journald.conf
. . .
[Journal]
Storage=persistent

追踪日志:

journalctl -f -u kubelet

重启docker

systemctl daemon-reload
systemctl restart docker

重启kubelet

systemctl restart kubelet.service

这次的原因是断电导致的集群某个节点挂掉。

可以看出kubernetes容灾能力很强,重启docker后,node节点上部署的容器也在逐步恢复。

经验分享 程序员 微信小程序 职场和发展