上一篇公众号分享docker作为运行时配置拉取镜像加速,本篇配置containerd的拉取镜像加速以及验证。

远航的container示图
| 仓库名称\仓库地址 | 镜像仓库地址 | 加速地址 |
| docker官方仓库 | docker.io | dockerhub.icu |
| Google k8s镜像仓库(新) | registry.k8s.io | k8s.chenby.cn |
| Google k8s镜像仓库(旧) | k8s.gcr.io | k8s.chenby.cn |
| Goole 相关镜像 | gcr.io | gcr.chenby.cn |
| RedHat企业级镜像仓库 | quay.io | quay.chenby.cn |
| Github镜像仓库 | ghcr.io | ghcr.chenby.cn |
Tip:以上的信息都是在2024-07-28收集到有效加速地址
containerd 一般是使用到 ctr , crictl , nerdctl 三个命令。这里分别讨论三个命令镜像加速配置与使用
1、确认containerd服务是否有配置registry配置路径
$ sudo grep config_path `ps -ef | grep "[c]ontainerd " | awk '{print $NF}'`
config_path = "/etc/containerd/certs.d"
Tip:如果没有设置该参数,建议配置上并且重启containerd服务。如果配置文件的plugins."io.containerd.grpc.v1.cri".registry配置项下有其他的参数的话,需要删掉重启,否则会重启失败。
2、镜像仓库配置加速地址
docker.io仓库示例
$ sudo mkdir -p /etc/containerd/certs.d/docker.io
$ cat <<'EOF' | sudo tee /etc/containerd/certs.d/docker.io/hosts.toml > /dev/null
server = "https://docker.io"
[host."https://dockerhub.icu"]
capabilities = ["pull", "resolve","push"]
[host."https://docker.hlyun.org"]
capabilities = ["pull", "resolve","push"]
EOF
registry.k8s.io仓库示例
$ sudo mkdir -p /etc/containerd/certs.d/registry.k8s.io
$ cat <<'EOF' | sudo tee /etc/containerd/certs.d/registry.k8s.io/hosts.toml > /dev/null
server = "https://registry.k8s.io"
[host."https://k8s.chenby.cn"]
capabilities = ["pull", "resolve"]
EOF
配置文件、目录结构与 crictl 命令配置一致,ctr 命令仍是 未生效 加速地址拉起镜像。
解决方法 :ctr 命令拉起镜像添加 --hosts-dir 可以实现到拉取镜像加速。
示例:ctr --debug image pull registry.k8s.io/pause:3.9 --hosts-dir etc/containerd/certs.d
配置文件、目录结构与 crictl 命令配置一致
Tip:配置路径只能 是/etc/containerd/certs.d目录下
ctr命令验证

nerdctl命令验证

通过上述步骤,你可以显著提高Containerd在拉取镜像时的速度,这不仅能够节省时间,还能提升开发和运维效率。记住,选择一个稳定且快速的镜像加速器对于整个容器化流程的顺畅运行至关重要。
别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们一起探索容器技术的无限可能!





