kubelet cgroup driver: “systemd“ is different from docker cgroup driver: “cgroupfs“

时间:2025-02-24 07:54:40

kubeadm部署k8s(1.23.1)集群时报错,或集群运行过程中突然出现异常,根据提示的方法,查看到报错信息如下:

kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\"

从报错信息很明显的可以看出,kubelet启动失败,原因是kubelet cgroup驱动程序“ cgroupfs”与docker cgroup驱动程序不同。

cgroups 的全称是 Linux Control Groups,主要作用是限制、记录和隔离进程组(process groups)使用的物理资源(cpu、memory、IO 等)。

systemd是系统自带的cgroup管理器, 系统初始化就存在的, 和cgroups联系紧密,为每一个进程分配cgroups, 用它管理就行了. 如果设置成cgroupfs就存在2个cgroup控制管理器, 实验证明在资源有压力的情况下,会存在不稳定的情况。

首先来查看下docker的cgroup驱动

#docker info |grep Cgroup
 Cgroup Driver: systemd

然后再来查看下kubelet的cgroup驱动

#systemctl show --property=Environment kubelet | grep cgroup-driver
Environment=KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/\x20--kubeconfig=/etc/kubernetes/\x20--cgroup-driver