本文介紹如何使用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,表示無限制。
在復制管理頁面,選擇上一步驟中創建的規則,單擊復制??梢允謩油酱媪康溺R像到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訪問企業版實例。