本文介绍如何使用Harbor的远程复制功能将自建Harbor上的镜像单向同步到阿里云ACR企业版,并实现容器镜像仓库的异地容灾。
若您不需要选择Harbor的远程复制来进行同步,或者对同步速率有较高的要求,请参见十分钟迁移自建Harbor至容器镜像服务企业版。
前提条件
创建容器镜像服务企业版实例。具体操作,请参见创建企业版实例。
操作步骤
Harbor同步镜像至ACR企业版实例
若Harbor部署在本地IDC,首先需要打通本地IDC与云上VPC。具体操作,请参见获取路由规则IP实现跨地域或从IDC访问企业版实例。
步骤一:创建命名空间
登录容器镜像服务控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择实例列表。
在实例列表页面单击目标企业版实例。
在企业版实例管理页面选择 。
在命名空间页面单击创建命名空间。
在创建命名空间对话框中设置命名空间名称、是否自动创建仓库、默认仓库类型。单击确定。
参数
说明
命名空间
填入Harbor中需要同步的项目名称。例如test-project。
自动创建仓库
选择开启。
说明若选择关闭,在同步镜像前需要在ACR中创建相应的仓库。
默认仓库类型
自定义。建议选择私有。
步骤二:在Harbor上配置目标仓库
登录Harbor。
在左侧导航栏选择
。在仓库管理页面,单击新建目标。
在新建目标对话框,填写参数配置。
参数
说明
提供者
选择Docker Registry。
目标名
自定义。
描述
自定义。
目标URL
填写ACR企业版实例目标仓库域名地址,确保访问控制已开启,更多信息,请参见配置专有网络的访问控制和配置公网的访问控制。
专有网络:
示例:
https://<企业版实例名称>-registry-vpc.cn-qingdao.cr.aliyuncs.com
。公网:
示例:
https://<企业版实例名称>-registry.cn-qingdao.cr.aliyuncs.com
。
访问ID
仓库登录名为阿里云用户账号名。
访问密码
仓库登录密码。更多信息,请参见使用固定密码。
参数配置填写完成后,单击测试连接。若出现测试连接成功,则代表参数填写正确,单击确定。
步骤三:配置同步规则
登录Harbor。
在左侧导航栏选择
。在复制管理页面,单击新建规则。
在新建规则对话框,填写参数。单击保存。
参数
说明
名称
自定义。
描述
自定义。
复制模式
选择Push-based。
源资源过滤器
用于过滤需要同步的资源,可依据Harbor界面的提示自行填写,默认为全部资源。
目标仓库
选择步骤二创建的目标。
目标
名称空间填写目标ACR上的命名空间;仓库扁平化用以在复制镜像时减少仓库的层级结构,推荐选择替换1级,例如:
harbor-project/nginx -> acr-ns/nginx
。触发模式
自定义。建议选择事件驱动来同步Harbor上的镜像变动。
带宽
限制同步时的最大网络带宽。默认为-1,表示无限制。
在复制管理页面,选择上一步骤中创建的规则,单击复制。可以手动同步存量的镜像到ACR企业版实例。当相应的复制任务转化为Succeeded后,同步任务运行成功。后续对Harbor相应仓库的改动将通过事件驱动同步至ACR企业版实例。
配置自定义域名实现异地容灾
容器镜像服务企业版实例支持自定义域名功能,该功能允许为容器镜像服务企业版实例添加自定义域名和相应的SSL证书,从而使用自定义域名并通过HTTPS协议来访问实例。
根据不同的网络环境,可以使用如下不同的容灾方案。
方案一:Harbor部署在阿里云,业务通过公网访问ACR企业版实例
本文以ACR企业版实例在杭州,Harbor实例在张家口,且两个实例都配置了相同的域名并配置了PrivateZone为例。关于如何配置PrivateZone,请参见通过自定义域名访问容器镜像服务企业版实例。
ACR企业版实例与Harbor实例基本信息如下。
实例ID | 公网域名 | 绑定VPC | 自定义域名 |
ACR-A | a-registry.cn-hangzhou.cr.aliyuncs.com | vpc-aaaaa | cross-region.registry.io |
Harbor-B | - | vpc-bbbbb | cross-region.registry.io |
若位于张家口的Harbor发生故障导致无法推拉镜像,您可以通过修改自定义域名PrivateZone解析来实现跨地域拉取ACR实例的同镜像,具体操作方式如下。
登录云解析DNS产品控制台。
在左侧导航栏选择内网DNS解析 (PrivateZone)。
在内置权威页签下搜索Zone名称
cross-region.registry.io
(即实例的自定义域名),此时可以搜索到两个Zone,单击实例关联VPC为vpc-bbbbb
的Zone。在解析设记录页签,单击目标记录操作列的修改。
在修改记录对话框,设置参数。单击确定。
参数
说明
记录类型
选择CNAME。
主机记录
设置为@。
记录值
a-registry.cn-hangzhou.cr.aliyuncs.com
(即 ACR 实例的公网域名)TTL时间
默认值即可。
方案二:Harbor未部署在阿里云,业务通过公网访问ACR企业版实例
将自定义容器镜像服务ACR企业版实例的域名设置为自建Harbor使用的域名(例如:www.ha****.com)。更多内容,请参见通过自定义域名访问容器镜像服务企业版实例。
若自建的Harbor发生故障导致无法推拉镜像,需要修改域名解析,使域名www.harbor.com
可以解析到ACR企业版实例的公网IP,从而通过公网访问ACR企业版实例。
方案三:Harbor未部署在阿里云,业务通过专有网络访问ACR企业版实例
若自建Harbor发生故障导致无法推拉镜像。请先获取ACR企业版实例IP,配置路由规则以及域名解析,使自建Harbor使用的域名(例如:www.harbor.com
)可以解析到ACR企业版实例的IP,从而通过专有网络访问ACR企业版实例。具体操作,请参见获取路由规则IP实现跨地域或从IDC访问企业版实例。