containerd 配置镜像加速

Containerd配置镜像加速

参考文档

修改步骤

1. 修改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]

2. 创建相应目录

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

3. 配置加速

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

4. 重启Containerd

systemctl daemon-reload
systemctl restart containerd

5. 重新拉取镜像

# 使用 ctr 命令拉取镜像时不会生效
crictl pull docker.io/library/mysql:latest

配置镜像加速脚本

#!/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_file="/etc/containerd/config.toml"
config_path='/etc/containerd/certs.d'

if [ ! -f "${config_file}" ];then
    [ ! -d "${config_file%/*}" ] && mkdir -p ${config_file%/*}
    lineno="$(containerd config default | grep -n -A 1 -P '(?<=\[plugins.")io.containerd.grpc.v1.cri(?=".registry])'|tail -1)"
    lineno=${lineno/-*}
    containerd config default | sed -e "${lineno}s@config.*@config_path = \"${config_path}\"@" |sed '/SystemdCgroup/s/false/true/' > $config_file
fi

[ ! -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 quay.io:quay.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
posted @ 2022-08-16 10:30  liy36  阅读(5726)  评论(0编辑  收藏  举报