文档中心>容器镜像服务>实践教程>混合云下的多平台镜像数据同步复制

混合云下的多平台镜像数据同步复制

最近更新时间:2023-09-22 09:37:31

我的收藏

操作场景

在用户的开发运维过程中,存在需要同时用到多个容器镜像仓库的场景,这些仓库可能跨主账号、跨地域、跨国、跨平台。用户可以通过手动完成实例间的推送、分发任务,但是会存在运维成本较高、同步不及时、不便于管理等问题。
基于该场景,目前 TCR 提供了同步复制功能,以及开源的镜像迁移工具。其中:
实例同步功能支持用户基于规则的配置来按需同步实例的镜像,详情请参见 配置实例同步
实例复制功能支持用户从主实例全量复制实例镜像数据至从实例,详情请参见 配置实例复制
镜像迁移工具支持多种镜像仓库的 Docker 镜像数据迁移,详情请参见 镜像迁移工具:image-transfer
同时,用户从其他镜像仓库服务迁移至 TCR 时,还可以为 TCR 实例配置自定义域名,继续沿用原有域名,保持服务的连续性,详情请参见 配置自定义域名
本文将介绍混合云大背景下,不同镜像仓库之间镜像数据的同步复制的经典使用场景以及对应的最佳实践。

前提条件

在创建并管理 TCR 企业版实例的复制实例前,您需要完成以下准备工作:
已成功 购买企业版实例,实例同步功能需要实例规格为标准版或高级版,实例复制功能需要实例规格为高级版。
如果使用子账号进行操作,请参见 企业版授权方案示例 提前为子账号授予对应实例的操作权限。

操作步骤

场景1:跨地域 TCR 实例复制

国内跨地域实例复制

当用户存在跨地域业务时,用户可以通过使用 实例复制 的功能实现单地域上传、多地域高速实时同步、就近内网拉取。相较于实例同步功能,该功能可统一多地域集群的发布配置,并提高云原生应用制品的跨地域同步速度。




跨国跨地域实例同步复制

但若当跨地域业务涉及跨国的情况时,用户还需结合 实例同步 功能的使用。出于安全合规的考虑,目前暂不支持跨国的实例复制。
1. 用户需要在国内外各购买一个 TCR 高级版实例后,首先 创建同步规则,实现跨国数据的按需同步。
2. 在两个实例里分别 创建并管理复制实例 ,实现国内和国外的单点上传、多地域实时复制、就近内网拉取。


注意
为实现就近内网拉取,需要用户手动将复制地域内的私有网络 VPC 依次接入该实例。详情请参见 内网访问控制,选择复制地域内的私有网络。

场景2:跨平台镜像迁移或同步

当用户同时使用公有云镜像仓库和自建镜像仓库,或是多家公有云镜像仓库时,往往存在跨平台的镜像迁移或同步的需求。在跨平台场景下,用户可以选择使用 TCR 的自定义域名功能,通过单一配置实现多平台的统一访问,以保证服务的连续性,详情请参见 配置自定义域名

跨平台镜像迁移

image-transfer 是腾讯云针对镜像迁移的开源工具,支持多种镜像仓库中的 Docker 镜像之间的批量迁移,只需仓库是基于 Docker Registry V2 搭建的 Docker 镜像仓库服务(例如腾讯云 TCR 个人版(CCR)/ TCR 企业版、Docker Hub、 Quay、 阿里云镜像服务 ACR、 Harbor 等)。该工具具有两种使用模式,通用模式以及用于腾讯云的一键迁移模式,如下图所示:


通用模式
一键迁移模式
使用 image-transfer 的通用模式可以实现多个镜像仓库对多个镜像仓库的镜像迁移,用户只需配置好认证鉴权文件以及迁移规则文件即可开始迁移。关于工具的下载、安装、使用方法请参见 image-transfer
使用 image-transfer 的一键迁移模式可以实现从 TCR 个人版迁移至 TCR 企业版,详情请参见 个人版迁移至企业版完全指南,指南包含利用开源工具 image-transfer 进行一键数据全量迁移,以及在 TCR 控制台进行业务迁移两大部分,助力您实现业务的平滑迁移。 当前容器镜像服务 TCR 同时提供个人版服务和企业版服务。个人版服务面向个人开发者,仅提供容器镜像存储分发的基础功能。企业版服务可为企业客户提供安全、独享的高性能云原生应用制品托管分发服务。个人版与企业版服务区别可参见 规格说明

跨平台镜像同步

在跨平台的场景下,除了数据的批量迁移外,用户往往还存在跨平台镜像的实时同步需求。
从自建 Harbor 同步镜像至 TCR 企业版,详情请参见 从自建 Harbor 同步镜像到 TCR 企业版。在 Harbor 侧配置同步规则。从自建的容器镜像服务转向使用 TCR,一方面可以减少用户自行搭建及维护的运维管理成本,并提供云上专业稳定的托管服务及技术支持。另一方面可以实现与云上容器服务的联动使用,用户可享受容器上云的一致性使用体验,可使用容器集群内网拉取镜像,降低公网带宽成本。同理,用户可以通过在 Harbor 侧配置规则,同步镜像至其他第三方仓库服务平台。除 Harbor 本身外,目前 Harbor 支持的镜像仓库服务如下:
Docker Hub
Docker registry
AWS Elastic Container Registry
Azure Container Registry
Ali Cloud Container Registry
Google Container Registry
Huawei SWR
Artifact Hub
Gitlab
Quay
Jfrog Artifactory
Tencent Container Registry
用户还可以通过将自建 Harbor 仓库作为中转仓库,实现第三方仓库服务平台之间的镜像同步。
如下图所示,以将阿里云 ACR 的镜像实时同步至腾讯云 TCR为例:
1. 在 Harbor 里配置 Pull-based 复制策略,将 ACR 的镜像实时拉取至 Harbor 中,作为中转。
2. 在 Harbor 里配置 Push-based 复制策略,将 Harbor 内来自 ACR 的镜像实时推送至 TCR 中。



以此便实现了将镜像从阿里云 ACR 同步至腾讯云 TCR,其他平台之间的镜像同步也同理。

场景3:DevOps 镜像流转

在开发和运维过程中,一个应用从开发到上线往往要经历多个步骤:开发、测试、进入准生产环境、最终上线进入生产环境,相应的镜像也要经过多个步骤的流转。
用户可以利用 TCR 实例同步功能搭建上述的 DevOps 流水线实现镜像的流转。若上述不同环境所属的主账号不同,请在配置实例同步规则时开启“支持跨主账号实例同步”。



注意
目前 TCR 的交付流水线功能仅支持预置的固定流水线,如果用户有上述更加复杂的 DevOps 流水线的需求,可以使用 CODING DevOps。CODING DevOps 是腾讯云的一站式 DevOps 研发实践工具,TCR 的交付流水线功能依赖于 CODING DevOps 的持续集成与持续部署功能。