
文章插圖
Docker容器應(yīng)用的開發(fā)和運(yùn)行離不開可靠的鏡像管理,雖然Docker官方也提供了公共的鏡像倉庫,但是從安全和效率等方面考慮,部署我們私有環(huán)境內(nèi)的Registry也是非常必要的 。Harbor 是由VMware公司開源的企業(yè)級的Docker Registry管理項目,它包括權(quán)限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復(fù)制和中文支持等功能 。
Harbor 的所有組件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署 。
注: 由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必須 > = 1.10.0 docker-compose >= 1.6.0
Harbor的目標(biāo)是幫助用戶迅速搭建一個企業(yè)級的Docker registry服務(wù) 。它以Docker公司開源的registry為基礎(chǔ),額外提供了如下功能:
- 基于角色的訪問控制(Role Based Access Control)
- 基于策略的鏡像復(fù)制(Policy based image replication)
- 鏡像的漏洞掃描(Vulnerability Scanning)
- AD/LDAP集成(LDAP/AD support)
- 鏡像的刪除和空間清理(Image deletion & garbage collection)
- 友好的管理UI(Graphical user portal)
- 審計日志(Audit logging)
- RESTful API
- 部署簡單(Easy deployment)
- https://github.com/goharbor/harbor
Harbor大概需要以下幾個容器組成:ui(Harbor的核心服務(wù))、log(運(yùn)行著rsyslog的容器,進(jìn)行日志收集)、mysql(由官方mysql鏡像構(gòu)成的數(shù)據(jù)庫容器)、Nginx(使用Nginx做反向代理)、registry(官方的Docker registry)、adminserver(Harbor的配置數(shù)據(jù)管理器)、jobservice(Harbor的任務(wù)管理服務(wù))、redis(用于存儲session) 。
Harbor是一個用于存儲和分發(fā)Docker鏡像的企業(yè)級Registry服務(wù)器,整體架構(gòu)還是很清晰的 。下面借用了網(wǎng)上的架構(gòu)圖:
Harbor依賴的外部組件#
- -> Nginx(即Proxy代理層): Nginx前端代理,主要用于分發(fā)前端頁面ui訪問和鏡像上傳和下載流量; Harbor的registry,UI,token等服務(wù),通過一個前置的反向代理統(tǒng)一接收瀏覽器、Docker客戶端的請求,并將請求轉(zhuǎn)發(fā)給后端不同的服務(wù) 。
- -> Registry v2: 鏡像倉庫,負(fù)責(zé)存儲鏡像文件; Docker官方鏡像倉庫, 負(fù)責(zé)儲存Docker鏡像,并處理docker push/pull命令 。由于我們要對用戶進(jìn)行訪問控制,即不同用戶對Docker image有不同的讀寫權(quán)限,Registry會指向一個token服務(wù),強(qiáng)制用戶的每次docker pull/push請求都要攜帶一個合法的token, Registry會通過公鑰對token進(jìn)行解密驗證 。
- -> Database(MySQL或Postgresql):為core services提供數(shù)據(jù)庫服務(wù),負(fù)責(zé)儲存用戶權(quán)限、審計日志、Docker image分組信息等數(shù)據(jù) 。
- -> Core services(Admin Server): 這是Harbor的核心功能,主要提供以下服務(wù):
- -> UI:提供圖形化界面,幫助用戶管理registry上的鏡像(image), 并對用戶進(jìn)行授權(quán) 。
- -> webhook:為了及時獲取registry 上image狀態(tài)變化的情況,在Registry上配置webhook,把狀態(tài)變化傳遞給UI模塊 。
- -> Auth服務(wù):負(fù)責(zé)根據(jù)用戶權(quán)限給每個docker push/pull命令簽發(fā)token. Docker 客戶端向Regi?stry服務(wù)發(fā)起的請求,如果不包含token,會被重定向到這里,獲得token后再重新向Registry進(jìn)行請求 。
- -> API: 提供Harbor RESTful API
- -> Replication Job Service:提供多個 Harbor 實例之間的鏡像同步功能 。
- -> Log collector:為了幫助監(jiān)控Harbor運(yùn)行,負(fù)責(zé)收集其他組件的log,供日后進(jìn)行分析 。
- 怎樣做個高情商的后媽 如何做好一個后媽
- 二婚時怎么看男人是不是真心愛你 如何知道是不是二婚
- 邊工作邊考研如何準(zhǔn)備
- 云服務(wù)器搭建虛擬主機(jī) 虛擬主機(jī)和云服務(wù)器區(qū)別
- 畢業(yè)后如何報考研究生
- 畢業(yè)多年如何考研
- 慢性腸胃炎應(yīng)該如何治療?
- 早期尿毒癥如何治療效果好?
- 靜脈曲張應(yīng)該如何治療比較好?
- 出現(xiàn)心絞痛應(yīng)該如何檢查?
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: