操作场景
腾讯云容器镜像服务(Tencent Container Registry,TCR)支持在不同地域的不同实例间同步容器镜像及 Helm Chart,可实现单点推送及全球自动同步分发,方便企业在全球多个地域快速部署更新容器业务。
实例同步功能允许用户自定义创建同步规则,可指定某个实例内的部分资源同步至另一个实例内的指定位置。例如,用户可选择同步资源类型(容器镜像、Helm Chart 或是全部同步)、可过滤同步资源路径,通过正则表达式过滤仓库及版本、可选择是否覆盖已有的同名镜像,避免历史数据覆盖丢失。目前实例同步功能已支持跨主账号间的实例同步,同步源侧的用户可以根据同步目标侧用户提供的实例 ID、账号 ID 和访问凭证来创建同步规则。
前提条件
在创建并管理 TCR 企业版实例的同步配置前,您需要完成以下准备工作:
已成功 购买企业版实例,且实例规格为标准版或高级版。
如果使用子账号进行操作,请参考 企业版授权方案示例 提前为子账号授予对应实例的操作权限。
使用限制
数据同步功能依赖于底层网络支持,受限于安全合规要求,因此,暂不支持中国台湾地域。
操作步骤
创建同步规则
1. 登录 容器镜像服务 控制台,选择左侧导航栏中的同步复制 > 实例同步。
2. 在实例同步页面中选择地域及实例名称,并单击新建。
3. 在新建实例同步规则中,参考以下提示进行规则配置。如下图所示:
名称:实例规则名称,支持小写字母、数字及(-._)三种符号,且需以字母或数字开头。
描述:规则描述,支持中文。
同步源:
源实例:当前所选实例即为源实例,可返回实例同步页面修改。
命名空间:当前实例所需要同步的命名空间,暂不支持选择全部命名空间。
仓库名称:同步的仓库,不填写则默认是命名空间内全部仓库。
版本Tag:同步的版本,不填写则默认是符合条件的仓库内所有版本。
仓库类型:同步资源的类型,可同时同步容器镜像及 Helm Chart,或只同步其中一种资源。
同步目标:选择是否开启跨主账号实例同步。
开关关闭,则创建同一主账号内的实例同步规则,配置以下字段。如下图所示:
目标实例:数据同步的目标实例,可选择该主账号内的任一实例。
命名空间:仓库同步至目标实例后所在的命名空间,不填写则默认是与源实例中同名的命名空间,如果没有命名空间将新建。
镜像覆盖:可选择是否覆盖目标实例内已有同名的容器镜像,建议不覆盖。
4. 单击确定即可创建同步规则。
说明:
多层级镜像仓库同步场景补充:
若要实现多层级镜像仓库的同步,需确保源实例和目标实例中的命名空间(Namespace)保持一致。
当您使用默认不填写“仓库名称”以实现多层级镜像仓库同步时,请特别注意目标实例的“命名空间”字段,该字段应留空(效果默认为 ns/**),以确保所有子仓库都能被正确同步到目标实例的相应命名空间下。
示例: 假设源实例中有一个命名空间
project
,其下有多层级子仓库,如 project/subrepo1/subrepo2
。若要在目标实例中同步此子仓库,应在目标实例的“命名空间”字段中留空。管理同步规则
成功创建后即可在实例同步页面查看已创建的同步规则,您可执行以下操作管理同步规则。如下图所示:
查看同步日志:单击实例规则名称,即可查看该规则触发日志,详情请参见 查看同步日志。
修改规则状态:
表示规则启用,
表示规则关闭。新建的实例同步规则默认为启用状态,您可自行调整。触发同步:手动触发同步,将扫描实例内所有符合规则的仓库并进行同步。
注意:
规则创建好之后,针对新推送的镜像,都会自动同步到其他实例,无需您手动触发。
手动触发主要针对一些历史镜像和异常情况。手动触发同步的操作会扫描实例内所有符合规则的仓库,需要一定的耗时,根据您镜像 tag 数决定。在同步的过程中,因为同步任务的执行,可能对其他镜像传输动作造成压力。请尽量避免同时手动触发多个同步规则。
配置:重新配置实例同步规则,可配置全部参数。
删除:删除该实例同步规则。
查看同步日志
单击指定实例同步规则名称,即可查看该规则的触发日志。如下图所示:
任务ID:实例内唯一的同步任务 ID。
创建时间:同步任务创建的时间。
任务耗时:完成全部同步任务消耗的时间。
成功比例:资源同步完成比例,单次同步任务可能同时同步多个仓库。
同步仓库数:当前任务需要同步的仓库数量。
同步状态:任务完成状态。如果单次同步任务所需同步的容器镜像及 Helm Chart 较多,可能同步状态会较长时间保持在 “InProgress”(同步中)状态。