【kubeadm初始化报错】failed to run Kubelet: misconfiguration: kubelet cgroup driver: systemd is different

本文详细描述了在Amazon Linux 2环境中遇到kubelet启动失败,由于kubelet和docker cgroupDriver不匹配问题的解决过程。涉及重置kubeadm配置、修改docker和kubelet配置,以及重启服务。最终通过设置`cgroupDriver`为`systemd`解决了健康状态问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

  • 系统:Amazon Linux 2
  • kubernetes:v1.23.0
  • docker:20.10.7

复现步骤

1、通过 yum 或 rpm 安装 kubelet kubectl kubeadm,并

systemctl enable --now kubelet

2、初始化 sudo kubeadm init --config=kubeadm.yaml ,到最后初始化失败,提示kubelet 健康状态不正常:k8serr02.png
查看系统日志 /var/log/messages,提示

server.go:302] "Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\""

解决方案

1、重置未初始化成功的kubeadm配置

echo y|kubeadm reset

2、修改docker,只需在/etc/docker/daemon.json中,添加"exec-opts": ["native.cgroupdriver=systemd"]即可,本文最初的docker配置可供参考。

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": [
    "172.21.19.137:5000"
  ],
  "registry-mirrors" : [
    "https://8xpk5wnt.mirror.aliyuncs.com"
  ]
}
EOF

3、修改kubelet:

cat > /var/lib/kubelet/config.yaml <<EOF
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
EOF

4、重启docker 与 kubelet:

systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

5、检查 docker info|grep "Cgroup Driver" 是否输出 Cgroup Driver: systemd

[root@k8s-master ~]# docker info|grep "Cgroup Driver"
 Cgroup Driver: cgroupfs

段落引用再次执行kubeadm init时,我发现kubeadm将cgroupDriver的配置到了/var/lib/kubelet/kubeadm-flags.env

[root@k8s-master ~]# cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6"

后续检查/var/lib/kubelet/config.yaml 发现,里边已经被新的配置替换掉了;
另外,在配置期间,我这里一直出现kubelet健康状态不正常的问题,重置了kubeadm,删除了执行用户的家目录下的~/.kube,之后正常了
ps: 有趣的是,kubelet自启动后,会周期性重启,还是会提示docker的cgroup driver是与kubelet不同,等kubeadm初始化成功就不这样了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑、在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值