kubelet和docker的驱动程序不一致导致kubelet报错问题

当我们配置完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有如下报错:

图片.png

导致该问题的原因是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即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/908.html