全部產品
Search
文件中心

Container Registry:使用Harbor的遠程複製能力同步鏡像到ACR企業版執行個體並實現異地容災

更新時間:Nov 14, 2024

本文介紹如何使用Harbor的遠程複製功能將自建Harbor上的鏡像單向同步到阿里雲ACR企業版,並實現容器鏡像倉庫的異地容災。

說明

若您不需要選擇Harbor的遠程複製來進行同步,或者對同步速率有較高的要求,請參見十分鐘遷移自建Harbor至Container Registry企業版

前提條件

建立Container Registry企業版執行個體。具體操作,請參見建立企業版執行個體

操作步驟

Harbor同步鏡像至ACR企業版執行個體

說明

若Harbor部署在本地IDC,首先需要打通本地IDC與雲上VPC。具體操作,請參見擷取路由規則IP實現跨地區或從IDC訪問企業版執行個體

步驟一:建立命名空間

  1. 登入Container Registry控制台

  2. 在頂部功能表列,選擇所需地區。

  3. 在左側導覽列,選擇執行個體列表

  4. 執行個體列表頁面單擊目標企業版執行個體。

  5. 在企業版執行個體管理頁面選擇倉庫管理 > 命名空間

  6. 命名空間頁面單擊建立命名空間

  7. 建立命名空間對話方塊中設定命名空間名稱、是否自動建立倉庫預設倉庫類型。單擊確定

    參數

    說明

    命名空間

    填入Harbor中需要同步的專案名稱。例如test-project。

    自動建立倉庫

    選擇開啟

    說明

    若選擇關閉,在同步鏡像前需要在ACR中建立相應的倉庫。

    預設倉庫類型

    自訂。建議選擇私人

步驟二:在Harbor上配置目標倉庫

  1. 登入Harbor

  2. 在左側導覽列選擇系統管理 > 倉庫管理

  3. 倉庫管理頁面,單擊建立目標image.png

  4. 建立目標對話方塊,填寫參數配置。

    參數

    說明

    提供者

    選擇Docker Registry。

    目標名

    自訂。

    描述

    自訂。

    目標URL

    填寫ACR企業版執行個體目標倉庫網域名稱地址,確保存取控制已開啟,更多資訊,請參見配置專用網路的存取控制配置公網的存取控制

    • 專用網路:

      樣本:https://<企業版執行個體名稱>-registry-vpc.cn-qingdao.cr.aliyuncs.com

    • 公網:

      樣本:https://<企業版執行個體名稱>-registry.cn-qingdao.cr.aliyuncs.com

    訪問ID

    倉庫登入名稱為阿里雲使用者帳號名。

    訪問密碼

    倉庫登入密碼。更多資訊,請參見使用固定密碼

    image.png

  5. 參數配置填寫完成後,單擊測試連接。若出現測試連接成功,則代表參數填寫正確,單擊確定image.png

步驟三:配置同步規則

  1. 登入Harbor

  2. 在左側導覽列選擇系統管理 > 複製管理

  3. 複製管理頁面,單擊建立規則image.png

  4. 建立規則對話方塊,填寫參數。單擊儲存

    參數

    說明

    名稱

    自訂。

    描述

    自訂。

    複製模式

    選擇Push-based

    源資源過濾器

    用於過濾需要同步的資源,可依據Harbor介面的提示自行填寫,預設為全部資源。

    目標倉庫

    選擇步驟二建立的目標。

    目標

    名稱空間填寫目標ACR上的命名空間;倉庫扁平化用以在複製鏡像時減少倉庫的層級結構,推薦選擇替換1級,例如:harbor-project/nginx -> acr-ns/nginx

    觸發模式

    自訂。建議選擇事件驅動來同步Harbor上的鏡像變動。

    頻寬

    限制同步時的最大網路頻寬。預設為-1,表示無限制。

    image.png

  5. 複製管理頁面,選擇上一步驟中建立的規則,單擊複製。可以手動同步存量的鏡像到ACR企業版執行個體。當相應的複製任務轉化為Succeeded後,同步任務運行成功。後續對Harbor相應倉庫的改動將通過事件驅動同步至ACR企業版執行個體。image.png

配置自訂網域名實現異地容災

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執行個體的同鏡像,具體操作方式如下。

  1. 登入Alibaba Cloud DNS產品控制台

  2. 在左側導覽列選擇內網DNS解析 (PrivateZone)

  3. 內建權威頁簽下搜尋Zone名稱cross-region.registry.io(即執行個體的自訂網域名),此時可以搜尋到兩個Zone,單擊執行個體關聯VPC為vpc-bbbbb的Zone。

  4. 解析設記錄頁簽,單擊目標記錄操作列的修改

  5. 修改記錄對話方塊,設定參數。單擊確定

    參數

    說明

    記錄類型

    選擇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訪問企業版執行個體