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。

转载自:https://blog.csdn.net/russle/article/details/104954408

原文地址:https://www.cnblogs.com/fat-girl-spring/p/14542336.html