容器服务 境外镜像拉取加速

目前大多数开源应用的容器镜像(例如 Kubernetes、TensorFlow 等),都托管在境外镜像托管平台(例如 DockerHub、quay.io 等),在国内拉取镜像时可能存在网络问题导致拉取速度慢、甚至无法成功拉取等问题。常见解决方法为手动将镜像 Pull 到本地,再 Push 到自主搭建的镜像仓库进行手动同步,过程极其繁琐且无法覆盖全部仓库及最新镜像版本。腾讯云 容器镜像服务 TCR 企业版提供主流境外镜。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、限制条件

·加速服务目前仅面向容器服务 TKE、容器镜像服务 TCR 用户。

·加速服务目前只支持腾讯云 私有网络 VPC 访问,公网访问能力暂未开放,相关域名可以访问但无法提供实际的加速功能。

二、操作步骤

对于 TKE 集群,DockerHub 平台(docker.io)内公开镜像已默认配置加速,如需加速其他平台内镜像仓库,例如 quay.io,则需要进行相关配置。集群运行时为 Docker 或 Containerd,配置方法有所不同:

集群运行时为 Docker 的配置集群运行时为 Containerd 的配置对于运行时为 Docker 的节点,由于 Docker 本身不支持 docker.io 以外的加速配置,使用 docker.io 之外的境外容器镜像时,需要执行以下命令更改镜像地址的域名,将 quay.io 替换为 quay.tencentcloudcr.com。示例如下:docker pull quay.tencentcloudcr.com/k8scsi/csi-resizer:v0.5.0长期稳定使用境外镜像加速的场景,建议通过配置 Docker 守护进程配置文件实现持久化,避免每次手动替换镜像地址,Linux 操作系统实例操作如下:1. 执行以下命令,打开 /etc/docker/daemon.json 配置文件。vim /etc/docker/daemon.json2. 按 i 切换至编辑模式,添加以下内容,并保存。{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ]}3. 执行以下命令,重启 Docker 即可。示例命令以 CentOS 7 为例。注意:重启实例可能导致业务中断与数据丢失的严重后果,请你务必遵循标准运维流程,在执行前检查应用状态与数据备份,并选择在业务低峰期进行操作。sudo systemctl restart docker4. 重启 Docker 后,并运行以下命令来查看当前 Docker 的配置。如镜像源配置成功,则输出的内容中会包含下图所示的部分。说明:你也可以直接执行 docker pull <镜像名> 命令来拉取镜像,如能成功拉取,则也能够说明配置成功。sudo docker info对于运行时为 Containerd 的节点,由于 Containerd 本身支持任意镜像仓库的加速地址配置,可以通过修改 Containerd 配置,实现不更改镜像地址就可自动加速拉取镜像,适用于大量境外镜像的场景,可减少大量地址修改的繁琐步骤。 1. TKE 添加节点或者使用节点池,可以将节点写入自定义脚本,通过脚本可以统一修改增量节点的 Containerd 配置、添加境外镜像的加速地址。脚本示例如下:sed -i '/\\[plugins\\.cri\\.registry\\.mirrors\\]/a\\ [plugins.cri.registry.mirrors."quay.io"]\\ 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"]说明你还可以使用 Ansible 批量修改存量节点的 Containerd 配置,详情请参见 使用 Ansible 批量操作 TKE 节点。 2. 执行以下命令重启 Containerd。示例如下:注意:重启实例可能导致业务中断与数据丢失的严重后果,请你务必遵循标准运维流程,在执行前检查应用状态与数据备份,并选择在业务低峰期进行操作。 systemctl restart containerd3. 执行以下命令,使用原始镜像地址拉取镜像。示例如下:crictl pull quay.io/k8scsi/csi-resizer:v0.5.0

赞 (0)
上一篇 4天前
下一篇 4天前