當你建立了一個用來儲存容器鏡像(Container image)的Harbor,而且亦讓K8S Cluster的應用服務都串接到Harbor進行部署中的一環,那麼接下來預計您的應用服務鏡像(Application Image)會愈來愈多,同時也愈來愈重要。
這邊提供幾種方式:
本篇針對如何將一台Harbor的內容透過內建的機制同步到另一個Harbor,前端可以直接再做一個LVS以VIP的方式讓前端存取,只要後端2台Harbor自動將內容同步的話,真的有問題的話,客戶端理論上應該不會出現因為容器鏡像拉不到而出現失敗的問題。
做法很簡單,那我們就開始吧!!
Source: harbor1 (以下用h1)
Destination: harbor2 (以下用h2)
#-------------------------------------------
# S2-1. 建立Endpoint (h1)
#-------------------------------------------
Administration => Registries => NEW ENDPOINT => 輸入Remote registry相關資訊 => 測試連線 => OK
#-------------------------------------------
# S2-2. 建立Replication rules (h1)
#-------------------------------------------
Administration => Replications => NEW REPLICATION RULE => 輸入相關需求 => SAVE
#-------------------------------------------
# S2-3. 執行Replication task(h1)
#-------------------------------------------
點選Rule => REPLICATE => 任務在下面產生
#-------------------------------------------
# S2-4. 查看過程(h1)
#-------------------------------------------
點選Process ID => 確認狀態是否成功 => 點選各別任務的"Logs"欄位 => 查看每個任務的個別細節
#-------------------------------------------
# S2-5. 確認是否成功(h2)
#-------------------------------------------
3.結論
以上就完成了二台harbor之間的鏡像同步做法,尤於在WEB上就可以完成,所以滿推薦使用這種方式來實作。
同時,這種方式不只是支援Harbor間的同步,還支援Harbor同步到其他相容的Image Registry,例如Quay,這樣大幅度的強化了使用場景的彈性,避免環境中太過集中在同一種解決方案的架構盲點。