Kubernetes节点运行时从Docker切换到Containerd
创始人
2024-05-30 16:12:02
0

        由于k8s将于1.24版本弃用dockershim,所以最近在升级前把本地的k8s切换到了Containerd运行时,目前我的k8s版本是1.22.5,一个master,二个Node的配置,以下做为一个操作记录日志整理,其它可以参考官网文档。

在Master节点使用cordon命令将node标记为不可调度,执行drain命令,将该Node上运行的pod平滑的赶到其他节点上(对于只有一个Master节点的集群也是一样的操作,只是在维护过程中Master会停止服务)。

sudo kubectl cordon 
sudo kubectl drain 

停止kubelet和Docker,并删除Dockers相关

sudo systemctl stop kubelet
sudo systemctl stop docker && sudo systemctl disable docker.service --nowsudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
sudo yum remove docker-ce docker-ce-cli
rm -rf /var/run/docker && rm -rf /var/run/dockershim.sock

配置一些环境变量

cat <

安装并配置Containerd

sudo yum install -y containerd.iomkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml

修改  /etc/containerd/config.toml 文件中 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 的 SystemdCgroup = true,以使 runc 使用 systemd cgroup 驱动

重启containerd服务

sudo systemctl daemon-reload
sudo systemctl restart containerd

修改/var/lib/kubelet/kubeadm-flags.env文件修改并添加以启动变量

--cgroup-driver=systemd --container-runtime=remote --container-runtime-endpoint=/run/containerd/containerd.sock

修改 /var/lib/kubelet/config.yaml, 将 cgroupDriver 由 cgroupfs 修改为 systemd

重启kubelet服务

systemctl daemon-reload
systemctl start kubelet

恢复节点,注意操作后需要一点时间来启动容器,日志出现报错可暂时忽略,大概几分钟到10几分钟,可以通过crictl ps命令来查看各容器启动的情况。

kubectl uncordon 

以下是一些维护过程中可能会用到的命令,以供备用。

#通过以下指令查看上面设置已生效
lsmod | grep br_netfilter
lsmod | grep overlay
sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward#显示日志
journalctl --no-pager -xe  -u containerd#重新加入节点
kubeadm join 172.16.1.111:6443 --token xxx \--discovery-token-ca-cert-hash sha256:xxx#查看systemd管理的进程
systemd-cgls#配置crictl只读取containerd容器运行时
vi /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false#查看容器启动情况
crictl ps

相关内容

热门资讯

从“沉默多数”到“关键力量”:...   在A股上市公司总市值突破百万亿元大关之际,中国上市公司治理正经历一场从“形式合规”到“实质制衡”...
贷款额度从300万元到1000... 转自:河北新闻网衡水推出专属信用贷助力低空经济发展贷款额度从三百万元到一千万元不等河北日报讯(记者焦...
中金 | “科特估”专题(2)...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 科创行情开启新周期2...
北京亦庄外资研发中心突破100... 转自:证券时报人民财讯7月14日电,记者获悉,近日,北京市科学技术委员会、中关村科技园区管理委员会发...
个别“网红医生”假借科普牟利,... 最近,在一些短视频平台上,个别“网红医生”把健康科普当作牟利工具,假借科普名义违规导医导诊,线上问诊...
【广东】东莞市桥头镇环保包装产... (转自:华印纸箱彩盒)日前,广东省工业和信息化厅公布“2025年广东省中小企业特色产业集群名单”,新...
美国“夏季黑五”在线销售额激增... 格隆汇7月14日|在被称为"夏季黑色星期五"的7月8-11日期间,美国零售商的在线销售额激增241亿...
泽连斯基已确认乌克兰新总理人选 △尤利娅·斯维里登科(资料图)  当地时间7月13日夜间,乌克兰国家电视广播公司援引消息人士的话报道...
财信证券宏观策略周报(7.14... (转自:财信证券研究)大势研判。8月份之前,在宏观层面并无明显风险事件,市场正处于新一轮做多窗口期,...
WTT美国大满贯收官日:王楚钦... 北京时间14日 9:00,女单决赛,陈熠 VS 朱雨玲北京时间14日 10:00,男单决赛,王楚钦 ...