如何在minikube或kind中指定containerd容器运行时版本
minikube 指定containerd版本方案
- 第一步:启动集群时指定基础配置,使用containerd作为运行时、Kubernetes v1.19.8,按需配置多节点参数:
minikube start --kubernetes-version=v1.19.8 --runtime=containerd --nodes <节点数量> - 第二步:逐个登录集群节点,以控制面节点为例,登录命令为
minikube ssh -n minikube,工作节点可将命令中节点名替换为minikube-m02、minikube-m03等 - 第三步:在节点内执行命令替换containerd版本:
- 停止containerd服务:
sudo systemctl stop containerd - 上传/下载containerd v1.4.4预编译二进制包,解压覆盖到
/usr/local目录下 - 重载服务配置并重启containerd、kubelet:
sudo systemctl daemon-reload && sudo systemctl start containerd && sudo systemctl restart kubelet
- 停止containerd服务:
- 验证:执行
ctr version确认Server端版本为v1.4.4即可。若需重复使用,可将修改后的节点导出为自定义minikube镜像,下次启动直接指定镜像即可,无需重复修改。
kind 指定containerd版本方案
kind的节点运行在容器镜像中,只需自定义符合要求的节点镜像即可,操作步骤如下:
- 第一步:拉取官方对应Kubernetes版本的基础节点镜像:
docker pull kindest/node:v1.19.8 - 第二步:编写Dockerfile基于基础镜像替换containerd版本:
FROM kindest/node:v1.19.8 RUN systemctl stop containerd # 导入/下载containerd v1.4.4预编译二进制包并解压覆盖原有文件 COPY containerd-1.4.4-linux-amd64.tar.gz . RUN tar Cxzf /usr/local containerd-1.4.4-linux-amd64.tar.gz && \ rm containerd-1.4.4-linux-amd64.tar.gz RUN systemctl daemon-reload
- 第三步:构建自定义节点镜像:
docker build -t kindest/node:v1.19.8-containerd1.4.4 . - 第四步:创建集群时指定使用该自定义镜像,多节点集群可配合配置文件使用:
kind create cluster --image kindest/node:v1.19.8-containerd1.4.4 --config <你的多节点配置文件路径>
注意事项
containerd v1.4.4与Kubernetes v1.19.8的CRI接口兼容,替换后不会出现核心功能异常,可正常用于问题复现场景。
内容的提问来源于stack exchange,提问作者systolicDrake
相关产品推荐
相关产品推荐

