containerd 添加私有镜像仓库
不知道从哪个版本开始,原有的在[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
下添加的方式就失效了。
但是不管GPT还是网上搜索到的文章都是基于原有的方式,折腾了好几天,有问题不先去官方文档找真是个坏毛病…
基于containerd v1.7.13
仓库地址为私有镜像仓库 没有https 地址为 10.0.0.10:5000
开始配置
containerd默认配置文件在/etc/containerd/config.toml
,如果没有则创建:
mkdir /etc/containerd
containerd config default >/etc/containerd/config.toml
接下来修改配置文件:
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = ""
修改为
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
创建目录(这里的目录名称要和仓库地址一致)
mkdir -p /etc/containerd/certs.d/10.0.0.10:5000/
创建配置文件
vi /etc/containerd/certs.d/10.0.0.10:5000/hosts.toml
内容为:
server = "http://10.0.0.10:5000"
[host."10.0.0.10:5000"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
skip_cerify:跳过证书和主机名验证
capabilities:指定能够执行那些操作
重启:
systemctl daemon-reload
systemctl restart containerd.service
接下来拉取镜像:
ctr -n k8s.io i pull --hosts-dir "/etc/containerd/certs.d" 10.0.0.10:5000/calico/node:v3.25.0
-n 指定containerd的名称空间
–host-dir 指定containerd的私有仓库配置的目录,此参数必加
参考文档:
https://github.com/containerd/containerd/blob/main/docs/cri/config.md#registry-configuration
https://github.com/containerd/containerd/blob/main/docs/hosts.md