kubernetes解决Kubelet stopped posting node status问题

问题描述

今天使用kubectl get nodes发现k8s集群node1(也就是我们集群的master,操作系统为ubuntu16.04)处于NotReady状态,然后还发现使用kubectl get pods -n kube-system发现有2个coredns一直处于Complete状态,但是集群还能正常运行。下面来具体分析和解决此问题。

  1. 首先查看node1的详细信息,使用kubectl describe node1,结果如下图:
    在这里插入图片描述
    通过上面的结果发现出现的问题是kubelet stopped posting node status,这说明是kubelet的问题。
  2. 接下来看一下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的状态
    在这里插入图片描述
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐