操作场景
目前大多数开源应用的容器镜像(例如 Kubernetes、TensorFlow 等),都托管在境外镜像托管平台(例如 DockerHub、quay.io
等),在国内拉取镜像时可能存在网络问题导致拉取速度慢、甚至无法成功拉取等问题。常见解决方法为手动将镜像 Pull 到本地,再 Push 到自主搭建的镜像仓库进行手动同步,过程极其繁琐且无法覆盖全部仓库及最新镜像版本。
腾讯云 容器镜像服务 TCR 企业版提供主流境外镜像托管平台加速服务, 可以有效解决境外镜像拉取难导致开源应用无法顺利部署的问题。本文将介绍 TKE 集群如何通过 TCR 加速服务实现境外镜像拉取加速。 限制条件
加速服务目前仅面向容器服务 TKE、容器镜像服务 TCR 用户。
加速服务目前只支持腾讯云 私有网络 VPC 访问,公网访问能力暂未开放,相关域名可以访问但无法提供实际的加速功能。 操作步骤
对于 TKE 集群,DockerHub 平台内公开镜像已默认配置加速,如需加速其他平台内镜像仓库,例如 quay.io
,则需要进行相关配置。集群运行时为 Docker 或 Containerd,配置方法有所不同:
对于运行时为 Docker 的节点,由于 Docker 本身不支持 docker.io
以外的加速配置,使用 docker.io
之外的境外容器镜像时,需要执行以下命令更改镜像地址的域名,将 quay.io
替换为 quay.tencentcloudcr.com
。示例如下:
docker pull quay.tencentcloudcr.com/k8scsi/csi-resizer:v0.5.0
对于运行时为 Containerd 的节点,由于 Containerd 本身支持任意镜像仓库的加速地址配置,可以通过修改 Containerd 配置,实现不更改镜像地址就可自动加速拉取镜像,适用于大量境外镜像的场景,可减少大量地址修改的繁琐步骤。
1. TKE 添加节点或者使用节点池,可以将节点写入自定义脚本,通过脚本可以统一修改增量节点的 Containerd 配置、添加境外镜像的加速地址。脚本示例如下:
sed -i '/\\[plugins\\.cri\\.registry\\.mirrors\\]/ a\\\\ \\ \\ \\ \\ \\ \\ \\ [plugins.cri.registry.mirrors."quay.io"]\\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ endpoint = ["https://quay.tencentcloudcr.com"]' /etc/containerd/config.toml
或者手动修改存量节点的 Containerd 配置(/etc/containerd/config.toml
),添加类似如下配置:
[plugins.cri.registry]
[plugins.cri.registry.mirrors]
[plugins.cri.registry.mirrors."quay.io"]
endpoint = ["https://quay.tencentcloudcr.com"]
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["https://mirror.ccs.tencentyun.com"]
2. 执行以下命令重启 Containerd。示例如下:
systemctl restart containerd
3. 执行以下命令,使用原始镜像地址拉取镜像。示例如下:
crictl pull quay.io/k8scsi/csi-resizer:v0.5.0
本页内容是否解决了您的问题?