開源鏡像倉庫Harbor 2.0:管理OCI兼容的工件倉庫

開源鏡像倉庫 Harbor 2.0 正式發佈了!從 2017 年 4 月發佈 1.1 版本算起,經過整整 3 年,Harbor 的版本號終於 “升” 到 2.x 了。當然了,Harbor 2.0 不僅僅是大版本數字躍升那麼簡單,還給帶來了衆多重要更新,涉及代碼多項重構,凝聚了項目組艱辛的付出。Harbor 2.0 成爲符合 OCI(Open Container Initiatives)規範的開源鏡像倉庫,能夠存儲多種雲原生工件(Artifacts),例如,容器鏡像、Helm Chart、OPA、Singularity 等等。

  關於OCI 

先說說什麼是 OCI ,然後看看 Harbor 2.0 的新功能意味着什麼。

成立於 2015 年的 OCI 是 Linux 基金會旗下的合作項目,以開放治理的方式制定操作系統虛擬化(特別是 Linux 容器)的開放工業標準。

OCI 已經制定了業界的容器運行時(runtime)規範和容器鏡像規範,還有一個正在討論的鏡像分發(distribution)規範。OCI 的指導思想是先有工業的實踐,再總結成技術規範,例如,像 Docker 鏡像格式已經廣泛被用戶接受之後,OCI 在此基礎上制定了容器鏡像格式的規範。(本文來自公衆號:亨利筆記, henglibiji )

總體上說,OCI 提出的兩個規範(鏡像和運行時)是互相關聯的。鏡像規範定義鏡像的組成,包括文件格式和內容、清單(manifest)、鏡像索引(可選)、文件系統的分層和配置文件。OCI 的運行時規範將依據該配置,創建容器來運行程序。換句話說,鏡像規範有助於創建可互操作的工具,而運行時規範規定了容器的配置,執行環境和生命週期。

 

OCI 規範有助於使開發者和工件倉庫(如 Registry)支持和遵循同一個通用標準。作爲開發人員,現在可採用 OCI 標準來開發工件,並且確保工件可以被 Harbor 等OCI 兼容工件倉庫來保存。


Harbor 中支持 OCI 兼容的工件意味着支持其 API 集並解釋關鍵信息,包括 OCI 的模式和媒體類型,從而確定哪些內容可以被推送到 Harbor 。例如,工件的 manifest.config.mediaType 屬性對於在 Registry 中標明自身類型至關重要,而 layer.mediaType 定義了要存儲並持久化的文件層,而無需 Registry 預先拉取並解拆這些文件層。

舉個例子,通過 Helm3 可將 Helm Chart 推送到 Harbor。 在 Harbor 2.0 中,Helm Chart 不再存儲於 ChartMuseum 中,而是與容器鏡像一樣存放在工件文件中。在下圖中,我們看到了在同一項目中包含的不同工件:容器鏡像,Helm Chart 和 CNAB(Cloud Native Application Bundles)。(本文來自公衆號:亨利筆記, henglibiji )

 

 

Harbor 符合 OCI 規範的另一個好處是:能夠完全處理 OCI 索引。OCI 索引是一個高層次的清單,代表着一組綁定的鏡像,非常適合多體系架構(如 i386 和 arm64v8,Linux 和 Windows 等)的場景。例如,在 X86 架構的 Windows 和 ARM 架構的 Linux 上,只需要同樣的命令即可運行 Nginx 服務:

 

docker run -d nginx

 

用戶無需指定操作系統和平臺,可完全依賴客戶端來確保獲取正確鏡像的版本,就醬簡單。這種索引已經被 CNAB 等工具廣泛利用來管理與雲平臺無關的分佈式應用程序。

Harbor 新增的 OCI 功能,並不影響現有用戶的使用。 大家所有熟悉的 Harbor 功能都做了OCI 的適配。對 OCI 的工件,用戶可以像處理鏡像一樣推送、拉取、刪除、重新標記、複製、掃描和簽名索引。漏洞掃描和項目策略(用於加強安全性和合規性的關鍵要素)經過改進,適用於 OCI 工件。

 

Harbor 還提供了一項新的重要功能:可以刪除鏡像的 tag,而無需刪除對應的清單(manifest)和所有其他關聯的鏡像 tag 。還可以查看沒有 tag 的鏡像,並可選擇將其排除在垃圾回收之外。(本文來自公衆號:亨利筆記, henglibiji )


 Aqua Trivy 作爲默認漏洞掃描器 

Harbor 2.0 用 Aqua 的 Trivy 代替了 Clair ,成爲缺省的鏡像漏洞掃描器。Trivy 使容器鏡像掃描比之前有了更高的可用性和性能。自從在 Harbor 1.10 中的可插拔掃描框架添加了 Trivy 以來,Trivy 成爲 Harbor 的完美補充,項目組收到了很多反饋,並在社區中獲得了越來越多的關注,。

 

Trivy 具有廣泛的覆蓋範圍,可掃描不同的操作系統和軟件包管理器,並且易於集成到 CI / CD 系統中。Trivy 還會進行深度掃描,可發現 CentOS,Photon OS,Debian 和 Ubuntu 等主流發行版中的漏洞。(本文來自公衆號:亨利筆記, henglibiji )

 

Harbor 還繼續支持 Clair 作爲內置鏡像掃描器。實際上,現有 Harbor 版本升級到2.0 後,原先使用 Clair 掃描的項目將會繼續使用 Clair;Trivy 僅作爲新部署的 Harbor 2.0 實例的默認掃描器。

 

 其他改進 

根據用戶的反饋,Harbor 改進了機器人帳戶功能(robot account),使其更符合常見的使用模式。Harbor 2.0 允許每個機器人帳戶單獨設置失效日期,而不再需要系統全局設置。在未來的版本中,機器人帳戶將可適用於一個或多個項目,並將爲 Kubernetes 部署提供更好的認證憑證處理。

Harbor 2.0 的另一個新功能是爲核心服務配置 SSL,各內部服務之間使用加密的通信方式。此功能增強了安全度,並降低了中間人攻擊的可能性。(本文來自公衆號:亨利筆記, henglibiji )

新版本中 webhooks 可以單獨觸發,並能夠發送通知到 Slack 即時通訊軟件。有些用戶可能不想接收所有 webhook 操作的回調,他們可在項目上配置需要接收的webhook 動作和回調方法( HTTP 或 Slack )。

Harbor 2.0 界面中帶來了全新的暗模式,適合弱光環境下使用。歡迎下載 Harbor 2.0 並告知你的使用體驗!

  • 來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/31557890/viewspace-2694789/,如需轉載,請註明出處,否則將追究法律責任。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章