本文介紹如何使用Harbor的遠程複製功能將自建Harbor上的鏡像單向同步到阿里雲ACR企業版,並實現容器鏡像倉庫的異地容災。
若您不需要選擇Harbor的遠程複製來進行同步,或者對同步速率有較高的要求,請參見十分鐘遷移自建Harbor至Container Registry企業版。
前提條件
建立Container Registry企業版執行個體。具體操作,請參見建立企業版執行個體。
操作步驟
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企業版執行個體。
配置自訂網域名實現異地容災
Container Registry企業版執行個體支援自訂網域名功能,該功能允許為Container Registry企業版執行個體添加自訂網域名和相應的SSL認證,從而使用自訂網域名並通過HTTPS協議來訪問執行個體。
根據不同的網路環境,可以使用如下不同的容災方案。
方案一:Harbor部署在阿里雲,業務通過公網訪問ACR企業版執行個體
本文以ACR企業版執行個體在杭州,Harbor執行個體在張家口,且兩個執行個體都配置了相同的網域名稱並配置了PrivateZone為例。關於如何配置PrivateZone,請參見通過自訂網域名訪問Container Registry企業版執行個體。
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解析 (PrivateZone)。
在內建權威頁簽下搜尋Zone名稱
cross-region.registry.io
(即執行個體的自訂網域名),此時可以搜尋到兩個Zone,單擊執行個體關聯VPC為vpc-bbbbb
的Zone。在解析設記錄頁簽,單擊目標記錄操作列的修改。
在修改記錄對話方塊,設定參數。單擊確定。
參數
說明
記錄類型
選擇CNAME。
主機記錄
設定為@。
記錄值
a-registry.cn-hangzhou.cr.aliyuncs.com
(即 ACR 執行個體的公網網域名稱)TTL時間
預設值即可。
方案二:Harbor未部署在阿里雲,業務通過公網訪問ACR企業版執行個體
將自訂Container RegistryACR企業版執行個體的網域名稱設定為自建Harbor使用的網域名稱(例如:www.ha****.com)。更多內容,請參見通過自訂網域名訪問Container Registry企業版執行個體。
若自建的Harbor發生故障導致無法推拉鏡像,需要修改網域名稱解析,使網域名稱www.harbor.com
可以解析到ACR企業版執行個體的公網IP,從而通過公網訪問ACR企業版執行個體。
方案三:Harbor未部署在阿里雲,業務通過專用網路訪問ACR企業版執行個體
若自建Harbor發生故障導致無法推拉鏡像。請先擷取ACR企業版執行個體IP,配置路由規則以及網域名稱解析,使自建Harbor使用的網域名稱(例如:www.harbor.com
)可以解析到ACR企業版執行個體的IP,從而通過專用網路訪問ACR企業版執行個體。具體操作,請參見擷取路由規則IP實現跨地區或從IDC訪問企業版執行個體。