kubernetes failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
错误原因
kubernetes
的文件驱动与 docker
不一致,导致镜像无法启动。
docker info
可以看到驱动方式 Cgroup Driver: systemd
。
解决方案
统一资源管理,一致使用 systemd
或者 cgroupfs
。
在 Linux
上,控制组(CGroup)用于限制分配给进程的资源。
当某个 Linux
系统发行版使用 systemd
作为其初始化系统时,初始化进程会生成并使用一个 root
控制组(cgroup),并充当 cgroup
管理器。
systemd
与 cgroup
集成紧密,并将为每个 systemd
单元分配一个 cgroup
。 因此,如果你 systemd
用作初始化系统,同时使用 cgroupfs
驱动,则系统中会存在两个不同的 cgroup
管理器。
同时存在两个 cgroup
管理器将造成系统中针对可用的资源和使用中的资源出现两个视图。某些情况下, 将 kubelet
和容器运行时配置为使用 cgroupfs
、但为剩余的进程使用 systemd
的那些节点将在资源压力增大时变得不稳定。
当 systemd
是选定的初始化系统时,缓解这个不稳定问题的方法是针对 kubelet
和容器运行时将 systemd
用作 cgroup
驱动。
docker修改方法
在 /etc/docker/daemon.json
文件中,新增 "exec-opts": ["native.cgroupdriver=systemd"]
重启 docker
systemctl daemon-reload
systemctl restart docker
kubelet修改方法
在 /etc/sysconfig/kubelet
文件中,修改 --cgroup-driver=
参数。
例如修改为 --cgroup-driver=systemd
重启 kubelet
systemctl daemon-reload
systemctl restart kubelet
推荐阅读
https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/
https://www.cnblogs.com/sparkdev/p/9523194.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2022-03-25 对手价是什么意思
2020-03-25 crontab Do you want to retry the same edit? (y/n)
2020-03-25 在Windows10中运行Unbuntu
2020-03-25 go mod 安装bee 报错