kubernetes 集群节点重启后STATUS变成NotReady

在master上看节点的日志
kubectl describe nodes k8s-node1
看到日志:

kubelet stopped posting node status

是节点的kubelet没有启动,登上node1,查看kubelet服务状态

systemctl status kubelet

状态是stopped,尝试启动kubelet

systemctl start kubelet

启动失败,还是stopped
journalctl -e -u kubelet查看日志,看到如下内容:

Jan 21 19:41:56 k8s-node1 kubelet[18066]: I0121 19:41:56.046728   18066 server.go:416] Version: v1.20.1
Jan 21 19:41:56 k8s-node1 kubelet[18066]: I0121 19:41:56.047342   18066 server.go:837] Client rotation is on, will bootstrap in background
Jan 21 19:41:56 k8s-node1 kubelet[18066]: I0121 19:41:56.065802   18066 certificate_store.go:130] Loading cert/key pair from "/var/lib/kubelet/pki/kubelet-client-current.pem".
Jan 21 19:41:56 k8s-node1 kubelet[18066]: I0121 19:41:56.066770   18066 dynamic_cafile_content.go:167] Starting client-ca-bundle::/etc/kubernetes/pki/ca.crt
Jan 21 19:41:56 k8s-node1 kubelet[18066]: I0121 19:41:56.175135   18066 server.go:645] --cgroups-per-qos enabled, but --cgroup-root was not specified.  defaulting to /
Jan 21 19:41:56 k8s-node1 kubelet[18066]: F0121 19:41:56.175899   18066 server.go:269] failed to run Kubelet: running with swap on is not supported, please disable swap! or set --fail-swap
Jan 21 19:41:56 k8s-node1 kubelet[18066]: goroutine 1 [running]:

原来是因为上次重启服务器后swap重启开起来导致kubelet没办法启动,

解决方案

关闭swap:

swapoff -a
然后重启kubelet
systemctl restart kubelet
重新查看服务状态
systemctl status kubelet
发现已经启动成功,node的状态也从NotReady变成Ready

不过如果再次重启服务器还会出问题,所以最好直接关闭swap
方法如下:

vim /etc/fstab
把下面这一行注释掉
#/swap.img       none    swap    sw      0       0

保存退出,下次重启后kubelet不会再出问题。

猜你喜欢

转载自blog.51cto.com/xiaozhenkai/2601477