You need to enable JavaScript to run this app.
导航

向自定义仓库同步镜像

最近更新时间2024.04.11 10:46:26

首次发布时间2022.05.31 10:10:14

镜像仓库标准版实例支持自定义创建同步规则,将指定源实例内的镜像及 Helm Chart 同步至火山引擎以外的其他自定义仓库。

背景信息

为助力企业用户多样化的云上业务,镜像仓库 CR 提供向外部(火山引擎以外)自定义仓库同步镜像和 Helm Chart 的能力,满足您复杂多样的业务需求。

使用限制

  • 当前支持同步的自定义仓库有:自建 Harbor、阿里云、华为云、腾讯云。其他仓库可能无法同步成功。
  • 确保自定义仓库能通过公网连接。
  • 每个账号最多支持同时启用 5 个同步规则。
  • 规则删除后无法查看历史日志。
  • 每个规则默认保留最近 1000 条同步日志。
  • 实例同步规则被触发后,不支持终止本次同步任务。因此手动触发或创建定时/事件驱动触发的实例同步规则前,请确认参数配置是否准确。

前提条件

  • 请确保源实例和目标实例均处于 运行中 状态。
  • 提前收集和准备自定义仓库的地址、用户名和密码、命名空间等信息。

操作步骤

步骤一:配置同步规则

  1. 登录 镜像仓库控制台

  2. 在左侧导航栏选择 实例同步,单击 创建实例同步规则

  3. 创建实例同步规则 页面,根据要求填写参数信息。
    alt

    参数说明
    实例同步类型

    同步类型

    镜像仓库支持如下几种同步类型:

    • 体验版迁移:将体验版实例中的镜像,迁移到其他规格的实例。详细操作,请参见 体验版实例同步至标准版实例
    • 实例间同步:将镜像仓库中的标准版实例,同步到如下两个目标实例:
      • 本账号下同地域或跨地域的其他标准版实例:详细操作和说明,请参见 同地域或跨地域同步镜像
      • 外部自定义的镜像仓库:本文讲解的内容,因此此处选择 实例间同步
    • 外部迁移:将外部仓库迁移到火山引擎镜像仓库标准版实例中。详细操作,请参见 外部仓库同步至镜像仓库
    基本信息
    名称自定义同步规则名称。同一个账号下名称必须唯一。
    描述填写对该规则的描述信息。可以为空,字数限制 200 字符以内。
    源实例配置
    实例选择需要同步的源标准版实例,将该标准版实例中的镜像和 Helm Chart 同步到外部自定义仓库。
    命名空间选择源实例下需要同步的命名空间名称。支持多选、全选。

    仓库

    需要同步的 OCI 制品仓库名称。

    • 全部:同步指定命名空间下的全部 OCI 制品仓库。
    • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品仓库。配置详情,请参见本文下方 正则匹配示例

    版本 Tag

    需要同步的 OCI 制品版本。

    • 全部:同步指定仓库下的全部 OCI 制品版本。
    • 正则匹配:通过输入正则规则,匹配需要迁移的 OCI 制品版本。配置详情,请参见本文下方 正则匹配示例
    目标实例配置
    同步类型实例间同步实例的类型,当前支持如下两种:
    • 主账号内:同一个主账号内本地域或跨地域的其他标准版实例之间同步。
    • 自定义:向外部自定义仓库同步标准版实例。

    本文介绍向外部自定义仓库同步实例的操作,因此此处选择 自定义

    服务地址http(s)://开头的外部自定义仓库地址。例如http(s)://index.dockerhub.io

    忽略证书有效性

    是否忽略外部自定义仓库地址的证书有效性。

    • :忽略外部自定义仓库证书的有效性,直接将指定的镜像仓库标准版实例同步到外部自定义仓库。
    • :不忽略外部自定义仓库证书的有效性,若外部自定义仓库证书不在有效期内,则无法同步。

    注意

    外部自定义仓库证书必须为权威机构签发的证书,否则此处选择 后,会同步失败。

    用户名登录外部自定义仓库的用户名。
    密码登录外部自定义仓库的密码。

    命名空间

    输入外部自定义仓库下的目标命名空间名称。

    注意

    • 不填写则默认同步至与镜像仓库标准版实例命名空间同名的命名空间。若不存在同名命名空间则同步失败。
    • 若您的外部自定义仓库为阿里云,则命名空间下的仓库(repo)名称请勿带/字符,否则会同步失败。
    同步规则
    镜像覆盖勾选后启用。启用后表示若您的外部自定义仓库中存在与源标准版实例镜像同名的镜像,则标准版实例中的镜像会覆盖您外部自定义仓库中的已有同名镜像。

    规则状态

    勾选后启用该规则,并可选择设置以下触发条件。

    • 事件驱动触发:设置规则后,如果推送的镜像符合同步规则,则自动触发同步。即如果您向源实例符合同步规则的 OCI 制品仓库推送了符合规则的制品,则会自动触发一次同步,且只同步您新推送的制品。

      您也可以通过配置 立即触发,在创建实例同步规则成功后,立即触发规则匹配,进行一次同步操作。

    • 定时触发:设置后固定间隔时间触发一次同步,首次同步时间视设置决定。
      • 首次触发时间:注意最早只能设置到当前时间。
      • 触发频率:设置间隔时间。默认每 24 小时触发一次。可选范围为 1~720 小时。
    • 手动触发:若选择手动触发,该规则不会被自动触发,需要您手动执行同步操作。

步骤二:执行同步规则

支持如下三种触发方式:

  • 若您在配置同步规则时选择 事件驱动触发,则有符合规则的事件产生时,系统自动触发同步;若选择 事件驱动触发 的同时,配置 立即触发,则在创建实例同步规则成功后,立即触发规则匹配。

    说明

    事件驱动出发的同步规则,也可以手动触发。

  • 若您在配置同步规则时选择 定时触发,则系统会定时自动触发一次同步。

    说明

    定时触发的同步规则,也可以手动触发。

  • 若您选择 手动触发,请参考以下步骤:
    1. 镜像仓库控制台的左侧导航栏选择 实例同步
    2. 实例同步 页面,找到需要触发的规则,单击对应 操作 列的 触发
      alt
    3. 在系统弹出的提示框中确认规则信息,单击 确定,触发同步操作。

步骤三:查看同步日志

  1. 镜像仓库控制台 左侧导航栏选择 实例同步

  2. 实例同步 页面,找到目标规则,单击规则名称。

  3. 在规则详情页面,单击 同步日志 页签,查看对应规则的所有同步日志。

    参数说明
    任务 ID实例内唯一的同步任务 ID。

    同步状态

    任务完成状态,同步中、成功、失败。

    说明

    • 若同步状态为 成功,说明同步任务正常触发,且至少成功同步一个镜像版本。
    • 若同步状态为 失败,表明任务触发失败。可能原因如下:
      • 无法访问外部自定义仓库地址
      • 外部自定义仓库地址不存在
      • 外部自定义仓库账号密码错误
      • 外部自定义仓库密码失效
    任务耗时完成全部同步任务消耗的时间。
    成功比例(成功的 tag 数÷总 tag 数)×100%
    同步仓库数当前任务需要同步的OCI制品仓库数量。
    触发时间同步任务的触发时间。
  1. 单击任务 ID,可查看该同步任务的详情。展示本次同步任务源实例下的[namespace]/[repo]:tag,目标实例下的[namespace]/[repo]:tag,及同步状态。
    同步状态为 成功 表明源实例的制品成功同步到目标实例;同步状态为 失败 表明源实例的制品未能同步到目标实例。

正则匹配示例

匹配方式匹配目标正则表达式匹配目标名称
v1version-1test-1v2v3
完全匹配仅匹配 v1 版本号。v1----
前缀匹配匹配以 v 开头的所有版本号。^v.*$-
多前缀匹配匹配以 vt 开头的所有版本号。^(v|t).*$
后缀匹配匹配以 -1 结尾的所有版本号。^.*-1$---
多后缀匹配匹配以 12 结尾的所有版本号。^.*(1|2)$-
版本号匹配匹配以 v 开头,连接阿拉伯数字结尾的版本号。^v([0-9.]+)$--