kubernetes解决Kubelet stopped posting node status问题
- 问题描述
- 解决方案
问题描述
今天使用kubectl get nodes
发现k8s集群node1(也就是我们集群的master,操作系统为ubuntu16.04)处于NotReady状态,然后还发现使用kubectl get pods -n kube-system
发现有2个coredns一直处于Complete状态,但是集群还能正常运行。下面来具体分析和解决此问题。
- 首先查看node1的详细信息,使用
kubectl describe node1
,结果如下图:
通过上面的结果发现出现的问题是kubelet stopped posting node status
,这说明是kubelet的问题。 - 接下来看一下kubelet的运行状态,使用
systemctl status kubelet
,发现kubelet处于inactive状态,使用sudo systemctl restart kubelet
结果依然是incative。接下来看一下kubelet的日志。使用journalctl -e -u kubelet
,结果如下:
其实看了这个log,问题就很明确了,因为swap在开启着所以kubelet自动重启总是会失败。
解决方案
sudo swapoff -a
sudo systemctl restart kubelet
最终的结果如下:
- kubelet重启结果:
- k8s各个node的状态