跨云Harbor同步镜像至华为云SWR
场景描述
部分客户存在多云场景,并且使用某一家云上的自建Harbor作为镜像仓库。跨云Harbor同步镜像至SWR存在两种场景:
背景知识
Harbor是VMware公司开源的企业级Docker Registry管理项目,在开源Docker Distribution能力基础上扩展了例如权限管理(RBAC)、镜像安全扫描、镜像复制等功能。Harbor目前已成为自建容器镜像托管及分发服务的首选。
公网访问场景
- Harbor上配置镜像仓库。
Harbor在1.10.5以上版本,集成了华为云的SWR对接,只需要在目标(ENDPOINT)上选择就可以。本文以Harbor 2.4.1为例。
- 新建目标。
- 填写如下参数。
- 提供者:必须选“Huawei SWR”。
- 目标名:自定义。
- 目标URL:使用SWR的公网域名,格式为https://{SWR镜像仓库地址},例如:https://swr.cn-east-3.myhuaweicloud.com。镜像仓库地址获取方法:登录容器镜像服务控制台,进入“我的镜像”,单击“客户端上传”,在弹出的页面即可查看SWR当前Region的镜像仓库地址。
- 访问ID:遵循SWR的长期有效的认证凭证规则,以“区域项目名称@[AK]”形式填写。
- 访问密码:遵循SWR的长期有效的认证凭证规则,需要用AK和SK来生成,详细说明请参考获取长期有效登录指令。
- 验证远程证书:建议取消勾选。
- 配置同步规则。
- 新建规则
- 填写如下参数。
- 名称:自定义。
- 复制模式:选择“Push-based”,表示把镜像由本地Harbor推送到远端仓库。
- 源资源过滤器:根据填写的规则过滤Harbor上的镜像。
- 目标仓库:选择1中创建的目标。
- 目标
仓库扁平化:用以在复制镜像时减少仓库的层级结构,建议选择“替换所有级”。假设Harbor仓库的层级结构为“library/nginx”,目标名称空间为dev-container,“替换所有级”对应的结果为:library/nginx -> dev-container/nginx。
- 触发模式:选择“手动”。
- 带宽:设置执行该条同步规则时的最大网络带宽,“-1”表示无限制。
- 创建完成后,选中后单击“复制”即可完成同步。
专线打通场景
- 配置VPC终端节点。
- 获取VPC内网访问IP及域名(华为云VPC内默认会自动加域名解析规则,不需要配置hosts;非华为云节点需要配置hosts),可以在终端节点详情页的“内网域名”中查询。
- Harbor上配置镜像仓库。
Harbor在1.10.5以上版本,集成了华为云的SWR对接,只需要在目标(ENDPOINT)上选择就可以。本文以Harbor 2.4.1为例。
- 新建目标。
- 填写如下参数。
- 提供者:必须选“Huawei SWR”。
- 目标名:自定义。
- 目标URL:使用VPC终端节点中的内网域名,必须以https开头,同时Harbor所在的容器内要配置域名映射。
- 访问ID:遵循SWR的长期有效的认证凭证规则,以“区域项目名称@[AK]”形式填写。
- 访问密码:遵循SWR的长期有效的认证凭证规则,需要用AK和SK来生成,详细说明请参考获取长期有效登录指令。
- 验证远程证书:必须取消勾选。
- 配置同步规则。
- 新建规则
- 填写如下参数。
- 名称:自定义。
- 复制模式:选择“Push-based”,表示把镜像由本地Harbor推送到远端仓库。
- 源资源过滤器:根据填写的规则过滤Harbor上的镜像。
- 目标仓库:选择3中创建的目标。
- 目标
仓库扁平化:用以在复制镜像时减少仓库的层级结构,建议选择“替换所有级”。假设Harbor仓库的层级结构为“library/nginx”,目标名称空间为dev-container,“替换所有级”对应的结果为:library/nginx -> dev-container/nginx。
- 触发模式:选择“手动”。
- 带宽:设置执行该条同步规则时的最大网络带宽,“-1”表示无限制。
- 创建完成后,选中后单击“复制”即可完成同步。