系统环境:macbook air m1 使用VMware Fusion部署的arm架构centos7.5
软件信息:基于containerd 1.7.8,使用kubeadm方式部署k8s 1.28.11
情况描述:由于k8s在1.24版本后舍弃了docker,选择默认使用containerd作为容器运行时,所以我在本地虚拟机上通过此方式搭建了一套1台master、2台work的集群环境,在使用crictl pull命令拉取镜像时,报“time out”,与docker一样需要配置镜像加速。
具体步骤:
配置镜像加速的方法有两种,推荐方法二
方法一:
#编辑containerd的配置文件config.toml,如果不存在,需要手动生成,方法自行百度,在配置文件中搜索关键字“mirrors”,在其下面添加镜像加速参数
# vim /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".registry.mirrors] #找到此行,添加配置
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://***********.mirror.aliyuncs.com"] #阿里云镜像加速器
#重启containerd服务生效
#systemctl restart containerd
方法二:
#编辑containerd配置文件,需要修改三个地方:
# vim /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".registry] #此行下修改
config_path = "/etc/containerd/certs.d" #改为此路径,并且需要在此路径下创建hosts.toml文件,用于存放镜像加速信息
SystemdCgroup = false #修改systemdcgroup的参数为false
sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9" #修改pause镜像地址和版本
#创建/etc/containerd/certs.d下的hosts文件
#mkdir -p /etc/containerd/certs.d/docker.io
#vim /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://docker.io"
[host."https://********.mirror.aliyuncs.com"]
capabilities = ["pull", "resolve"]
#systemctl restart containerd
#此方法配置的镜像加速,后续如果需要添加其他的镜像加速服务,添加完成后不需要重启containerd服务