Harbor 多節點同步問題
Harbor管理遠程倉庫的鏡像依託於已經建立連接的倉庫管理。因此在創建同步方案的時候,應先對目標倉庫創建連接。
Harbor鏡像倉的連接
在Harbor中支持對其他鏡像倉的訪問。
倉庫的連接狀態更新存在延時,只有當涉及到該倉庫的同步任務失敗後,纔會更新倉庫的連接狀態。
Harbor支持列表:
- docker-hub
- huawei-SWR
- azure-acr
- helm-hub
- docker-registry
- google-gcr
- aws-ecr
- ali-acr
- harbor
Harbor 添加對其他鏡像倉的管理
- 打開Harbor的界面->左側導航欄 “系統管理” -> 倉庫管理 點擊新建目標
- 依次填寫數據
參數名 是否必填 說明 其他 提供者 是 目標鏡像類型 目標名 是 在倉庫管理中的標識 描 述 否 對此鏈接的描述 目標URL 是 目標倉庫的地址 支持全限定名和ip地址 訪問ID 否 訪問遠程倉庫的ID 訪問密碼 否 訪問遠程倉庫的密碼 驗證遠程證書 - 測試連接是否正常,正常後添加即可
創建同步規則
創建同步規則的前提是已經存在連接的倉庫。
- 打開Harbor的界面->左側導航欄 “系統管理”->同步管理 點擊新建規則即可。
- 依次填寫數據
不同的同步模式會導致不同的選項!
同步類別
同步規則分爲兩大類:Push-Base/Pull-Base
Push-Base需要登陸遠程,在管理倉庫的時候需要填寫ID和密碼
Pull-Base則不需要遠程登陸,當然,前提是該項目爲公開項目
目前的測試中,私有項目無法被遠程倉庫獲取
- Push-Base
將本地鏡像推送到遠程鏡像倉庫- 支持的觸發條件
- 定時
- 手動
- 事件驅動
- 當指定倉庫更新後,會觸發事件驅動
- 事件驅動只能推送本次更新,而不是以前未推送版本
- 支持的觸發條件
- Pull-Base
從遠程鏡像倉庫拉取到本例倉庫- 支持的觸發條件
- 定時
- 手動
- 支持的觸發條件
同步性能
- 取決網絡性能
- 相同鏡像在不同的項目中,需要重新獲取
/test1/test1:v1,/test2/test1:v1即使鏡像完全相同,也會導致重新獲取。但是由本地向遠程提交的時候,相同的部分會過濾掉。 - 同步任務之間的關係是併發的
兩個同步任務完全併發拉取,但是對於正在拉取的鏡像,其他任務不會再次獲取。