k8s-1.20之containerd配置--使用个人harbor仓库

随着k8s 1.20版本发布,Docker不再是默认容器运行时,转向使用CRI。本文介绍了如何在containerd环境下配置私有仓库,包括修改containerd的配置文件以添加镜像镜像源,设置认证信息,并跳过证书验证。此外,还解决了因默认pause镜像版本不匹配导致的Pod创建问题,以及如何根据本地镜像调整配置。
摘要由CSDN通过智能技术生成

背景

	k8s-1.20发布之后,不再使用doker作为底层容器运行时,而是默认使用Container Runtime Interface(CRI)。
	因此原来在docker中配置的个人仓库环境不再 起作用,导致k8s配置pods时拉取镜像失败。

配置方式

环境支持

通过

kubectl get pods -o wide 

查看是否已经采用containerd作为容器运行时。

通过查看版本

ctr -v
ctr github.com/containerd/containerd v1.4.0-106-gce4439a8

使用

containerd config default > /etc/containerd/config.toml

生成默认配置

对配置文件进行修改

[plugins."io.containerd.grpc.v1.cri".registry]
   [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
       [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          		endpoint = ["https://registry-1.docker.io"] //到此为配置文件默认生成,之后为需要添加的内容
       [plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.10.20.71:9998"]
         		endpoint = ["https://10.10.20.71:9998"]
   [plugins."io.containerd.grpc.v1.cri".registry.configs]
   		 [plugins."io.containerd.grpc.v1.cri".registry.configs."10.10.20.71:9998".tls]
          		insecure_skip_verify = true
       	 [plugins."io.containerd.grpc.v1.cri".registry.configs."10.10.20.71:9998".auth]
          		username = "admin"
          		password = "Harbor12345"

其中“10.10.20.71.9998”是私人仓库地址。
insecure_skip_verify = true 意为跳过证书认证。

保存并重启containerd服务即可
systemctl restart containerd

此时即可使用
crictl pull ***
从个人仓库拉取镜像测试是否完好
使用
crictl images list
查看已经存在的images

配置完成后,每个节点都可以从个人仓库获取镜像。但是创建pods时无法拉取谷歌pause3.2镜像,
原因在于containerd配置文件中规定了使用谷歌仓库中的pause3.2镜像。而查看本地镜像后发现本地已经存在pause3.3镜像,将生成的配置文件中的sandbox_image = “k8s.gcr.io/pause:3.2” 改为3.3之后即可正常创建。
同时本地还存在着阿里云仓库的pause3.2镜像。可以通过更改镜像仓库进行配置。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值