Harbor企業級實踐丨20倍性能提升so easy!

  • 2019 年 10 月 6 日
  • 筆記

本文作者 / 阿杜

玩Docker,玩K8s,玩Harbor

愛技術,愛運動,愛生活

「K8s&雲原生技術開放日」特邀講師

本文內容源於「K8s&雲原生技術開放日」主題演講——Harbor企業級實踐。

Harbor作為騰訊企業雲中心底層統一的鏡像倉庫管理組件,其性能很大程度上決定了上層容器應用的發布時延。為此,我們針對Harbor做了很多性能優化,使得鏡像下載速度提升了20倍。

本次分享圍繞Harbor性能提升展開,依次介紹Harbor存儲選型,Harbor高並發壓測以及Harbor備份還原方案……

harbor介紹

Harbor是目前最流行的開源企業級鏡像倉庫解決方案。除了原生支援鏡像倉庫,chart倉庫;還支援一些企業用戶所迫切需要的一些功能,例如:圖形用戶介面、完善的認證和鑒權機制、鏡像複製、鏡像病毒掃描、鏡像刪除與垃圾回收機制以及RESTFUL API介面等。另外,它也易於部署,目前支援兩種部署方式:Docker-Compose以及Helm Chart

harbor存儲方案

我們使用Ceph作為Harbor持久化存儲後端,在企業生產環境中Harbor對Ceph存儲的使用也進行了一次次的演變:Ceph RBD->Ceph FS->Ceph FS+RGW混合存儲,如下:

我們先對比一下Ceph提供的三種存儲服務的優缺點:

  • Ceph RBD
    • 優點:I/O頻寬高,讀寫延遲低;穩定性好
    • 缺點:多讀單寫,不支援多節點掛載
  • Ceph FS
    • 優點:多讀多寫,支援多節點掛載
    • 缺點:I/O頻寬較低,讀寫延遲較高,性能較差;穩定性較差
  • Ceph RGW
    • 優點:穩定性和性能均介於RBDCephFS之間且支援多讀多寫
    • 缺點:對象存儲,需要單獨的客戶端支援

在對比完優缺點後,我們可以看出:由於RBD不支援多讀多寫,無法通過RBD實現Harbor高可用,所以這裡我們棄用;Ceph FSCeph RGW均支援多讀多寫,這裡我們根據Harbor組件對Ceph RGW的支援與否進行選擇,對存儲性能要求比較高而且本身支援Ceph RGW存儲的組件我們使用對象存儲,其它組件我們使用Ceph 文件系統:

harbor高並發壓測

在企業生產環境中使用Harbor,我們需要對Harbor進行高並發壓測,來得出Harbor生產環境的性能數據。這裡我們用三台壓測機(Docker),一台被測機(Harbor)進行壓測,所有機器均使用萬兆網卡且忽略CPU、記憶體、I/0瓶頸等因素。

我們分別針對三種存儲:Ceph FSRook Ceph FS以及Rook Ceph RGW進行壓測對比:

1、Ceph FS

2、Rook Ceph FS

3、Rook Ceph RGW

從壓測數據可以看出:

1、隨著並發量的增加,三種存儲平均拉取時間均增加且成功率越來越低

2、拉取性能:Rook RGW>>Rook CephFS~=CephFS

對於Harbor對象存儲的顯著性能提升這裡除了對象存儲本身的性能要高於文件系統外,還存在如下兩個原因:

1、Harbor在切換為對象存儲後,採用重定向協議,所以數據不需要在Harbor這裡進行中轉,節省了中轉時間和資源

2、流量和並發瓶頸從Harbor切到Ceph RGW

綜合這些原因導致Harbor在切換Ceph RGW後性能有了質的飛躍——提升了20倍!

harbor備份還原方案

最後我們討論一下Harbor的備份還原(這裡簡稱為BUR)方案。在討論BUR之前,我們先回顧一下Harbor的存儲選型:Ceph FS+RGW,如下:

這裡我們針對該存儲選型訂製備份還原方案。由於採用的是混合方案,所以我們需要分別對文件系統和對象存儲進行備份還原:

1、Ceph 文件系統BUR

Ceph 文件系統備份——對於CephFS,Harbor中的應用數據保存在pv中,而我們的部署場景實際上是落在CephFS路徑上。因此要備份Harbor應用數據只需要備份每個pv對應的CephFS目錄即可

Ceph 文件系統還原——還原是備份的逆過程,只需要將備份的應用數據寫入到pv對應的CephFS路徑上即可

2、Ceph 對象存儲BUR

對於Ceph RGW,Harbor中的應用數據保存在BUCKET中,因此要備份Harbor應用數據只需要備份BUCKET即可,還原同理(這裡我們用s3cmd工具進行數據同步):

對於Ceph RGW的BUR,如果單純s3cmd同步整個應用目錄,則比較慢;需要對應用目錄進行數據切分,並發同步數據分區(registry-rgw-BUR-tools:https://github.com/duyanghao/registry-rgw-BUR-tools)

harbor遷移

Harbor備份還原衍生到一個話題:Harbor遷移。可以認為:遷移是一種特殊的還原場景,如下:

後 續

企業在生產環境使用Harbor時會產生很多"不適應",比如:如何適配企業本身的認證&鑒權機制?如何適配企業複雜的RESTful API需求?如何實現Harbor高可用?針對這些問題,我們應該如何解決?更多精彩內容見下期分享內容……

猜你還想看這些內容

●如何使用dex搭建一個身份認證系統?

●Ceph Bulestore磁碟空間分配初探

Kustomize上篇丨Helm 和 Kustomize:不只是含谷量的區別

Kustomize下篇丨Kustomize 中的增刪改查

· END ·

記得文末點個好看鴨~


點就完事兒了!