在master上看节点的日志
kubectl describe nodes k8s-node1
看到日志:
kubelet stopped posting node status
是节点的kubelet没有启动,登上node1,查看kubelet服务状态
systemctl status kubelet
状态是stopped,尝试启动kubelet
systemctl start kubelet
启动失败,还是stoppedjournalctl -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不会再出问题。