最近更新时间:2025-04-02 10:47:14
由于境外网络访问限制,会导致您拉取境外官方镜像变慢,甚至下载失败。金山云容器镜像服务(KCR)提供了海外镜像拉取加速能力,覆盖了常用的境外仓库,包括Docker Hub、Gcr.io、K8s.gcr.io、Registry.k8s.io、Ghcr.io、Quay.io。依托境外官方仓库域名解析能力,构建高速稳定的传输链路,从而提升容器化应用交付效率。
本文介绍如何在跨境场景中快速拉取官方公开镜像。
已成功创建容器镜像服务实例。
已开通金山云 PrivateLink、内网DNS服务。
登录 容器镜像服务控制台。
在顶部导航栏,选择目标地域。
在左侧导航栏单击 实例列表,在 实例列表 页面单击并进入目标容器镜像服务实例。
在容器镜像服务实例管理页面左侧导航栏选择访问控制 > 内网访问,在内网访问页面单击新建。
在新建内网访问链路弹窗中,可按需对私有网络以及终端子网进行配置。
内网访问链路建立成功后,默认未配置境外仓库域名在接入的私有网络VPC内的解析,请单击管理解析,勾选境外仓库服务域名解析并确认。
境外仓库服务域名开启成功后,即可访问到境外镜像仓库的相关域名。
Containerd在启动时指定默认的配置文件路径为/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 = ["http://dockerhub.mirrors.ksyunkcr.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
endpoint = ["http://k8sgcr.mirrors.ksyunkcr.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
endpoint = ["http://gcr.mirrors.ksyunkcr.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
endpoint = ["http://ghcr.mirrors.ksyunkcr.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
endpoint = ["http://registryk8s.mirrors.ksyunkcr.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
endpoint = ["http://quay.mirrors.ksyunkcr.com"]
注意,不同机房的后缀名存在区别,除北京不带region外,其余机房格式为 .[region].mirrors.ksyunkcr.com,如下所示:
北京机房:.mirrors.ksyunkcr.com
宁波机房:.cn-ningbo-1.mirrors.ksyunkcr.com
海东机房:.cn-northwest-4.mirrors.ksyunkcr.com
上海机房:.cn-shanghai-2.mirrors.ksyunkcr.com
庆阳机房:.cn-northwest-1.mirrors.ksyunkcr.com
广州机房:.cn-guangzhou-1.mirrors.ksyunkcr.com
修改保存后,重启containerd。
systemctl restart containerd
登录集群节点,执行以下拉取镜像命令。以拉取DockerHub中nginx:latest镜像为例。
crictl pull docker.io/library/nginx:latest
# crictl pull [镜像仓库]/[镜像名]:[标签]
纯净模式