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

问题解决:

相关推荐
小酒窝.6 分钟前
【多线程】多线程打印1~100
java·多线程
君爱学习10 分钟前
基于SpringBoot的选课调查系统
java
APIshop21 分钟前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库
血小板要健康32 分钟前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法
小陈phd40 分钟前
混合知识库搭建:本地Docker部署Neo4j图数据库与Milvus向量库
数据库·docker·neo4j
淼淼7631 小时前
安装jdk1.8
java·开发语言
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 高校食堂餐饮管理系统的设计与实现为例,包含答辩的问题和答案
java
过期动态1 小时前
Java开发中的@EnableWebMvc注解和WebMvcConfigurer接口
java·开发语言·spring boot·spring·tomcat·maven·idea
摇滚侠1 小时前
IDEA 定义返回值快捷键
java·ide·intellij-idea
毕设源码-郭学长1 小时前
【开题答辩全过程】以 高校考勤管理系统为例,包含答辩的问题和答案
java·eclipse