k8s node notReady之kubelet cgroup driver: "cgroupfs" is different from docker
问题
worker节点运行正常,因为安装其他软件我就重启了一下,结果发现kubectl get nodes显示node1 notReady,这时执行kubectl describe node node1发现node1上的kubelet没有正常运行,
我手动执行systemctl start kubelet.service没有报错,但是当我执行systemctl statuskubelet.service发现服务失败了。
执行journalctl -xeu kubelet
发现具体的错误信息:
关键信息就是:
Mar 19 03:11:12 node1 kubelet[125980]: F0319 03:11:12.805339 125980 server.go:273] failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
解决办法
临时将/etc/docker/daemon.json中的对应参数修改为cgroupfs
[root@node1 ~]# cat /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=cgroupfs"], "registry-mirrors": ["http://hub-mirror.c.163.com"] } [root@node1 ~]#
重启docker与kubelet
systemctl restart docker
systemctl status kubelet.service
现在kubelet正常运行了。
办法二(也是推荐)
将/var/lib/kubelet/kubeadm-flags.env文件中的–cgroup-driver=cgroupfs 修改为
–cgroup-driver=systemd
也就是docker配置项和kubelet的一致都是systemd。