使用Harbor作爲Rainbond默認容器鏡像倉庫,擴展Rainbond鏡像管理能力

Rainbond是一體化的雲原生應用管理平臺,它提供“以應用爲中心”的抽象,使用者不需要學習K8s和容器,平臺將K8s和容器封裝在內部,這種封裝方式能極大提高使用的易用性和安裝的便利性,但封裝的內部組件如何替換是一個問題,本文將講解如何使用Harbor替換掉Rainbond原有的默認鏡像倉庫。

Harbor簡介

Harbor 是一個用於存儲和分發Docker鏡像的企業級Registry服務器,也是首箇中國原創的雲原生基金會(CNCF)的開源企業級DockerRegistry項目,通過添加一些企業必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。作爲一個企業級私有Registry服務器,Harbor提供了更好的性能和安全。提升用戶使用Registry構建和運行環境傳輸鏡像的效率。

通Harbor解決Rainbond鏡像管理問題

​ Rainbond之前默認使用的是Docker 提供的基礎Registry,使用的過程中有很多問題,例如鏡像安全性,鏡像清理複雜麻煩等等問題,經過不斷的調研,而Harbor不僅能解決這些問題,還能擴充很多鏡像管理能力,Harbor 的功能主要包括四大類:多用戶的管控(基於角色訪問控制和項目隔離)、鏡像管理策略(存儲配額、製品保留、漏洞掃描、來源簽名、不可變製品、垃圾回收等)、安全與合規(身份認證、掃描和CVE例外規則等)和互操作性(Webhook、內容遠程複製、可插拔掃描器、REST API、機器人賬號等)。

對接Harbor

​ 目前harbor支持兩種形式對接Rainbond,一種是作爲rainbond內部基礎存儲倉庫,另外一種就是作爲外部自定義鏡像倉庫。

  • Harbor作爲Rainbond內部基礎存儲倉庫,進行對接非常簡單,只需要在初始化平臺集羣的時候進行自定義即可。

<img src="https://pic.imgdb.cn/item/61a429c02ab3f51d9106c4f1.jpg"/>

​ Yaml文件的格式要求非常嚴格,避免大家在配置的時候出現問題,已把正確的yaml文件放在下面,複製就可以使用。

​ **注意:**一定修改倉庫的名字,倉庫的項目名稱, 用戶名,以及密碼,不然會出現鏡像上傳失敗的問題。

例:
apiVersion: rainbond.io/v1alpha1
kind: RainbondCluster
metadata:
  name: rainbondcluster
  namespace: rbd-system
spec:
  imageHub:
    domain: www.est.com/test
    password: Harbor12345
    username: admin
  • Harbor作爲rainbond的外部倉庫進行提供服務,是基於harbor以及rainbond的webhook功能,配置如下。
    • 保證組件已經開啓了鏡像倉庫的webhook功能,且應用狀態不是已關閉狀態,並且需要將應用的 webhooks url 配置到目標鏡像倉庫的 webhooks 中

<img src="https://pic.imgdb.cn/item/61a5951e2ab3f51d919ea0df.png"/>

  • 目標鏡像倉庫裏面,新建一個webhook,然後在 Endpoint 地址填寫應用的 webhooks url,配置符合需求的觸發事件類型即可

<img src="https://pic.imgdb.cn/item/61a5951e2ab3f51d919ea0ea.png"/>

  • 通過Harbor實現鏡像可視化存儲管理,提高了工作的便利性。

<img src="https://pic.imgdb.cn/item/61a6cabf2ab3f51d9172ca88.png"/>

  • 基於Rainbond進行構建的時候實現漏洞自動掃描,提高了安全管理。

<img src="https://pic.imgdb.cn/item/61a6cb0e2ab3f51d9172f17e.png"/>

  • 通過鏡像自動清理的策略,合理利用存儲,降低存儲成本。

    • 推薦使用策略:應用到倉庫匹配**, 保留最近推送的3個 artifacts基於條件tags匹配**基於條件 無 Tag
    • 推薦定時清理:自定義 cron : 0 0 0 1 */1 * (秒,分,時,日,月,周)
  • 鏡像是否被簽名,漏洞的等級,也可以設置成爲鏡像安全策略之一,這樣可以保證簽名過的鏡像或者漏洞等級低的鏡像纔可以被拉取。

整合後的整體流程

<img src="https://pic.imgdb.cn/item/61a439b22ab3f51d910d5d1c.png" style="zoom: 50%;" />

​ 通過上面流程圖可以看到,整個搭載配置的過程,用戶可以自定義鏡像源進行拉取鏡像,經過Rainbond平臺自動推送到Harbor鏡像倉庫裏面,然後等鏡像掃描完成以後在進行自動拉取,自動進行構建容器實例。


Rainbond 是完全開源的企業級,面向應用的雲原生 DevOps, 開發、測試、生產運維一體化平臺,不要求開發者掌握容器、Kubernetes 等複雜能力,面向開發者友好;提供從源碼或簡單鏡像持續構建雲原生應用的能力,對源碼無侵入,業務持續發佈到雲端;高效的自動化運維,幫助開發者高效管理高可用的、安全的且去中心化的業務系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章