当我们配置完docker配置文件daemon.json文件时,启动kubelet报错,daemon.json文件内容如下
{ "data-root": "/data/docker", "registry-mirrors": [ "https://aliyun.mirror.aliyuncs.com" ], "insecure-registries": [ "0.0.0.0/0" ], "exec-opts": [ "native.cgroupdriver=systemd" ] }
kubelet有如下报错:
导致该问题的原因是kubelet和docker的驱动程序不一致
我们可以先使用命令查看docker的cgroup配置
docker info |grep Cgroup Cgroup Driver: systemd WARNING: No swap limit support
我们需要在/var/lib/kubelet/kubeadm-flags.env文件中添加以下配置
--cgroup-driver=systemd
最终整个配置如下
KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --cgroup-driver=cgroup--network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.5"
或者也可以直接修改/etc/sysconfig/kubelet文件,没有这个文件可以直接创建,添加以下内容
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
让kubelet使用和docker一样的cgroup驱动,这样可以确保kubelet更加稳定,上述配置也需要在docker中配置cgroup为systemd
配置完以后重启kubelet即可。