必须让kubelet与容器运行时cgroup driver完全一致,否则kubelet无法注册节点;通过docker info和ps aux查实际驱动值,优先修改docker.service中ExecStart参数统一为systemd,再同步更新kubelet config.yaml并重启服务验证。

Kubernetes集群初始化失败或节点状态卡在NotReady,常因kubelet与容器运行时cgroup driver不一致导致,错误日志明确提示“kubelet cgroup driver: 'cgroupfs' is different from docker cgroup driver: 'systemd'”——必须让两者驱动字符串完全相同,否则kubelet根本无法注册节点。
确认当前cgroup driver实际值
别凭记忆或配置文件猜,直接查运行时真实生效的驱动:
执行 docker info | grep "Cgroup Driver",输出如 Cgroup Driver: systemd 即为Docker当前实际驱动;
执行 ps aux | grep kubelet | grep -o 'cgroup-driver=[^[:space:]]*',若返回空,则说明kubelet未显式指定驱动,此时需检查 /var/lib/kubelet/config.yaml 中 cgroupDriver: 字段值;
【关键】docker info显示的是运行时真实生效值,比任何配置文件都可信;若二者输出字符串不完全一致(大小写、空格、拼写),就是故障根源。
优先修改Docker服务启动参数
在systemd系统上,统一改Docker比改kubelet更稳定,避免cgroup路径残留和指标丢失:
编辑 /lib/systemd/system/docker.service,找到 ExecStart= 行,在其末尾追加 --exec-opt native.cgroupdriver=systemd;
切勿只改 /etc/docker/daemon.json —— 若 docker.service 的 ExecStart 已含 --exec-opt 参数,再在daemon.json里重复配置会冲突,导致dockerd启动失败;
执行 systemctl daemon-reload && systemctl restart docker;
重启后立即运行 docker info | grep "Cgroup Driver" 验证是否已变为 systemd。
同步修改kubelet的cgroupDriver配置
方法一:直接编辑kubelet配置文件(适用于已部署集群)
打开 /var/lib/kubelet/config.yaml,定位到 cgroupDriver: 行,将其值改为 systemd;
保存后执行 systemctl restart kubelet;
AI 领域系统学习体系。管理知识图谱、深度学习笔记、实战复盘和关联网络。触发场景:学习计划、知识图谱更新、深度研究某个 AI 主题、实战复盘总结、调研后沉淀知识、每周学习回顾。当用户说'学了什么'、'总结一下'、'沉淀知识'、'复盘'、'更新图谱'、'深入研究'、'写笔记'、'学习回顾'、'review what...
方法二:通过kubeadm init时注入(适用于新集群)
准备配置文件 kubeadm-config.yaml,内容包含:
kind: KubeletConfigurationapiVersion: kubelet.config.k8s.io/v1beta1cgroupDriver: systemd
执行 kubeadm init --config kubeadm-config.yaml,该配置将自动写入 /var/lib/kubelet/config.yaml 并生效;
【注意】若集群已初始化,改完kubelet配置后必须执行 kubeadm reset 清理旧cgroup路径残留,否则Pod可能卡在ContainerCreating状态。
验证驱动一致性并观察节点状态
第一步:确认两者驱动已对齐
运行 docker info | grep "Cgroup Driver" 和 grep cgroupDriver /var/lib/kubelet/config.yaml,输出必须均为 systemd;
第二步:检查kubelet服务状态
执行 systemctl status kubelet,确保状态为 active (running) 且无报错;
第三步:查看节点注册结果
执行 kubectl get nodes,节点状态应为 Ready;
执行 kubectl get pods -A,所有核心组件Pod(如coredns、kube-proxy)状态应为 Running。


















