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

背景:
journalctl -u kubelet 查看kubectl日志发现报错如下

error: failed to run Kubelet: failed to create kubelet:
  misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"

分析:
这是由于 docker cgroup driver 和kubelet cgroup driver 配置不一致导致
解决办法:
使用 Docker 时,kubeadm 会自动为其检测 cgroup 驱动在运行时对 /var/lib/kubelet/kubeadm-flags.env 文件进行配置。 如果您使用了不同的 CRI, 您得把 /etc/default/kubelet 文件中的 cgroup-driver 位置改为对应的值,像这样:

KUBELET_EXTRA_ARGS=–cgroup-driver=
这个文件将会被 kubeadm init 和 kubeadm join 用于为 kubelet 获取 额外的用户参数。

请注意,您只需要在您的 cgroup driver 不是 cgroupfs 时这么做,因为 cgroupfs 已经是 kubelet 的默认值了。

需要重启 kubelet:

systemctl daemon-reload
systemctl restart kubelet

实例:

kubernetes:kubelet cgroup driver:
参考资料:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-master-node

你可能感兴趣的:(kubernetes)