Containerd 配置镜像加速

参考文档:https://github.com/containerd/containerd/blob/main/docs/cri/config.md#registry-configuration

修改步骤

修改Config.toml 文件

[plugins."io.containerd.grpc.v1.cri".registry]
      config_path = "/etc/containerd/certs.d"  # 镜像地址配置文件

      [plugins."io.containerd.grpc.v1.cri".registry.auths]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]

      [plugins."io.containerd.grpc.v1.cri".registry.headers]

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]

创建对应目录

mkdir /etc/containerd/certs.d/docker.io -pv

配置加速

cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://7p744fcm.mirror.aliyuncs.com"]
  capabilities = ["pull", "resolve"]
EOF

重启containerd

systemctl daemon-reload
systemctl restart containerd

重新拉取镜像测试

# 使用 ctr 命令拉取镜像时不会生效
$ crictl pull docker.io/library/mysql:latest
#  无法拉取镜像文件,示例如下,pod 无法正常使用
$ ctr -n k8s.io i ls  grep driver
docker.io/calico/node-driver-registrar:v3.26.1                                                                               text/html                                                 sha256:62795c85e6c280e4005006e8fe4848110ad0089fc3d0ebbc1e97d070337d8518 222.1 KiB - 

配置镜像加速脚本

#!/usr/bin/env bash
# author: liy
# file: containerd_mirrors.sh
#

export PS4='\[\e[35m\]+ $(basename $0):${FUNCNAME}:$LINENO: \[\e[0m\]'
[ "$debug" == "true" -o "$debug" == "yes" ] && set -x

config_path="/etc/containerd/certs.d"
[ ! -d "${config_path}" ] && mkdir -p ${config_path}
params="${@:-registry.k8s.io:k8s.m.daocloud.io docker.io:docker.m.daocloud.io gcr.io:gcr.m.daocloud.io k8s.gcr.io:k8s.m.daocloud.io}"

function content(){
    printf 'server = "https://%s"\n'  "${registry}"
    printf '[host."https://%s"]\n' "${proxy_server}"
    printf '  capabilities = ["pull", "resolve"]'
}

for param in ${params}
do
    registry="${param/:*/}"
    proxy_server="${param/*:/}"
    hosts_path="$config_path/$registry"
    [ ! -d "$hosts_path" ] && mkdir -p ${hosts_path}
    content > $hosts_path/hosts.toml
done
# 默认加速 registry.k8s.io, docker.io, gcr.io, k8s.gcr.io
debug=true bash containerd_mirrors.sh

Containerd 配置镜像加速
http://www.qiqios.cn/2023/07/29/containerd-配置镜像加速/
作者
一亩三分地
发布于
2023年7月29日
许可协议