解决升级docker导致的k8s崩溃问题

最近由于安装harbor升级了docker,然后发现k8s集群就启动不了。

查看kubelet日志发现:直接连不上apiserver了,直接connection refused

然后尝试启动apiserver容器直接报错:Error response from daemon: unknown or invalid runtime name: docker-runc

原因: 这是因为升级docker带来的兼容性问题

解决办法:

运行:

grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'

system restart docker

但是这样重启docker以后, kubelet日志还是会有报错:

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

很明显是docker升级以后带来cgroup驱动造成的问题

然后编辑/etc/docker/daemon.json文件,加入下面一行:

"exec-opts": ["native.cgroupdriver=systemd"]

并编辑/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf文件,加入下面一行

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"

备注:如果10-kubeadm.conf文件不是上面的路径,就用下面的命令查找一下,再重新编辑:

find / -name 10-kubeadm.conf

然后运行

systemctl daemon-reload

systemctl restart kubelet

问题解决:

相关推荐
Ray Liang33 分钟前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解1 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
fetasty4 小时前
rustfs加picgo图床搭建
docker
SimonKing5 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean5 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven976 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java
皮皮林55116 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河16 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程19 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读