问题描述
原有 Docker 1.13 版本,升级到 Docker 19.03 版本。在重新启动 kubelet 服务后,产生如下错误:
misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"
OS:CentOS Linux release 7.5.1804 (Core)
Kubernetes:v1.14.0
Docker:Docker version 19.03.2, build 6a30dfc
问题原因
我们没有深入研究,但是根据错误提示,可以得到以下信息:
1)kubelet 使用的 cgroup driver 是 systemd 的,
2)而 docker 使用的 cgroup driver 是 cgroupfs 的
2)而 docker 使用的 cgroup driver 是 cgroupfs 的
两者不同,导致上述错误。解决办法应该是使二者的 cgroup driver 相同。
解决办法
修改 /etc/sysconfig/kubelet 文件,为 KUBELET_EXTRA_ARGS 添加 --cgroup-driver=cgroupfs 选项。
原先为--cgroup-driver=systemd选项,位于/var/lib/kubelet/kubeadm-flags.env中(应该是初始化时生成的)。
参考文献