解决升级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

问题解决:

相关推荐
空谷忧人12 分钟前
【SpringMVC】详细介绍SpringMVC的执行流程
java·后端·mvc·springmvc
攒了一袋星辰14 分钟前
java -- SpringMVC表现层数据封装详解
java·开发语言·python
武子康18 分钟前
大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器
java·大数据·分布式·架构·kafka
LiberInfo1 小时前
Docker + Nacos + Spring Cloud Gateway 实现简单的动态路由配置修改和动态路由发现
java·spring boot·spring cloud·docker·nacos·gateway·动态路由
罗曼蒂克在消亡2 小时前
拦截器和过滤器
java·servlet
茉么乔3 小时前
java excel poi导出 支持多表头的公共导出方法
java·excel·poi
AskHarries4 小时前
Spring Boot集成protobuf快速入门Demo
java·spring boot·后端·protobuf
闲人编程4 小时前
Docker高频核心面试题
运维·docker·容器·面试
励志秃头码代码6 小时前
面试笔记 8.5
java·面试·职场和发展
阿诚学java6 小时前
数据结构与算法-15高级数据结构_树论(堆树)
java·数据结构