摘要:用戶訪問通過使用負(fù)載均衡服務(wù)的和端口。的負(fù)載均衡服務(wù),需要做源會話保持配置。其次,自身沒有基于角色權(quán)限訪問控制,所有可以訪問負(fù)載均衡服務(wù)的用戶都能隨意的推送和拉取鏡像。
在正文之前,我們先來看一下,如果沒有容器,通常會如何部署 Docker Registry?關(guān)于這個問題,我簡單畫了一個草圖:
下面簡單解釋一下:
Nginx:用來做 Docker Registry 的代理和軟件負(fù)載均衡Keepalived 采用主備加虛擬 IP 的方式,解決 Nginx 的單點(diǎn)問題,保證 Nginx 服務(wù)的高可用性。
Docker Registry:這是 Docker 官方開源的私有鏡像倉庫項(xiàng)目,對應(yīng) github 上的 docker-distribution 項(xiàng)目,也是私有鏡像倉庫的核心。
Redis:大名鼎鼎的 Key-Value 數(shù)據(jù)庫,很多應(yīng)用場景中,將其作為緩存使用。在 Docker Registry中也不例外,用來緩存 Docker Image 的 laryer metadata,帶來的好處即是 laryer metadata 的快速訪問。
Storage Cluster Docker Registry:以存儲驅(qū)動的方式支持多種后端存儲。例如:Docker Registry2.3 目前支持如下的存儲驅(qū)動:
這里簡單做個補(bǔ)充,官方文檔也有介紹如何貢獻(xiàn)新的 Docker Registry 存儲驅(qū)動。
下面我們來看一下,在 Rancher 環(huán)境下,一個簡化版 Docker Registry 的部署結(jié)構(gòu)圖,如下圖所示:
這個圖是以 Rancher 下服務(wù)的視角畫的,部署這樣一個簡單的 Docker Registry,需要四個服務(wù),分別是外部存儲服務(wù)、Redis Cache 服務(wù)、Docker Registry 服務(wù)和負(fù)載均衡服務(wù)。用戶訪問 Docker Registry 通過使用負(fù)載均衡服務(wù)的IP和端口。Docker Registry 的負(fù)載均衡服務(wù),需要做源 IP會話保持配置。
到此為止,我們就在 Rancher 環(huán)境下部署了一個簡化版的 Docker Registry 服務(wù)。至于我為什么說其是簡化版呢?是因?yàn)楝F(xiàn)在這個版本存在一些問題。
首先,Docker Registry 本身沒有 Web UI,鏡像的檢索,只能通過命令行工具完成,使用起來非常不方便。
其次,Docker Registry 自身沒有基于角色權(quán)限訪問控制,所有可以訪問負(fù)載均衡服務(wù)的用戶都能隨意的推送和拉取鏡像。
最后,Docker Registry 本身是提供了基于 token 的認(rèn)證機(jī)制,需要接入 Authorization Service,這個服務(wù)官方?jīng)]有實(shí)現(xiàn),需要我們自己實(shí)現(xiàn)或者借助開源實(shí)現(xiàn)。
SUSE Portus 完美地解決了上述問題。下面我們看一下,在 Rancher 環(huán)境下加入 SUSE Portus的服務(wù)結(jié)構(gòu)圖:
Portus Core Cluster 服務(wù)負(fù)責(zé)給 Docker Registry 提供 token 認(rèn)證服務(wù)和接收 Docker Registry 發(fā)送的鏡像推送的通知,同步 Docker Registry 中的鏡像信息到 SUSE Portus 的數(shù)據(jù)庫中。該服務(wù)本身無狀態(tài),可以水平擴(kuò)展PortusCronSync負(fù)責(zé)定時請求DockerRegistryAPI 同步鏡像數(shù)據(jù)到SUSEPortus的數(shù)據(jù)庫中。
當(dāng)用戶向 Docker Registry 推送一個鏡像后,Docker Registry 會發(fā)送通知給 SUSE Portus,如果網(wǎng)絡(luò)閃斷,或者 SUSE Portu 服務(wù)中斷,會做有限次數(shù)的重試。這樣可能會導(dǎo)致 SUSE Portu 無法收到鏡像推送的通知,造成兩端數(shù)據(jù)的不一致。Portus Cron Sync 就是為了解決這個問題而存在的。
SUSE Portus 的 token 認(rèn)證服務(wù)完全滿足官方的認(rèn)證模型,Docker 官方的認(rèn)證模型如下圖所示:
Docker Registry 關(guān)于認(rèn)證服務(wù)的配置和通知目標(biāo)服務(wù)的配置,都在 Docker Registry 容器的/etc/docker/registry/config.yml 中:
最后,我們可以按照 Rancher Catalog 的規(guī)范,制作一些基礎(chǔ)鏡像,然后把這個服務(wù) Catalog化,做成一鍵部署。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27959.html
摘要:第一部分的內(nèi)容介紹了如何部署配置和確保在的運(yùn)行。這一部分中,我們將介紹如何使用構(gòu)建容器,以及如何使用容器配置項(xiàng)目。除此之外,我們還將涉及如何用建立容器并部署到上。 這是我們使用GitLab和Rancher構(gòu)建CI/CD流水線系列教程的第二部分。第一部分的內(nèi)容介紹了如何部署、配置和確保GitLab在Rancher的運(yùn)行。這一部分中,我們將介紹如何使用GitLab CI Multi-Run...
摘要:當(dāng)面臨這些挑戰(zhàn)在短短半天的時間里,使用和現(xiàn)有的主機(jī),我們已經(jīng)將部署好并成功運(yùn)行。使用來創(chuàng)建應(yīng)用并定義服務(wù)。 在這一部分,我們將一步步的走進(jìn)Rancher,細(xì)致的探討Rancher將如何解決在部署與容器管理時出現(xiàn)的種種的問題?;仡櫧坛痰牡诙糠?,你會發(fā)現(xiàn)我們已經(jīng)將應(yīng)用的部署遷移至Docker Compose,并且已經(jīng)建立了一系列工作步驟來部署我們的應(yīng)用。這將使得開發(fā)人員能夠輕松的對他們的...
摘要:主機(jī)端口非常昂貴,因此稍后我們會使用一個負(fù)載均衡器。注冊完成后,將的配置添加到負(fù)載均衡器上。部署負(fù)載均衡器在棧中,單擊添加服務(wù)旁邊的下拉菜單,然后選擇添加負(fù)載均衡器。如果你收到狀態(tài)或的錯誤報(bào)告,那么需要檢查負(fù)載均衡器配置,確認(rèn)設(shè)置無誤。 介紹 GitLab核心是集成管理Git存儲庫的工具。比如你希望創(chuàng)建一個提供服務(wù)的平臺,那么GitLab將提供強(qiáng)大的身份驗(yàn)證和授權(quán)機(jī)制、工作組、問題跟蹤...
摘要:注冊器監(jiān)視每個守護(hù)進(jìn)程的事件,并在生命周期事件期間自動更新。條件可以包括親和規(guī)則否定至軟強(qiáng)制意味著盡可能地避免。當(dāng)使用通用標(biāo)記如或部署服務(wù)時,可能會出現(xiàn)意外的后果。月日,北京海航萬豪酒店,容器技術(shù)大會即將舉行。 在這篇文章中,我們將討論如何用Rancher實(shí)現(xiàn)consul的服務(wù)發(fā)現(xiàn)。 如果你還沒有準(zhǔn)備好,推薦你閱讀本系列中先前的文章:第一篇:CI /CD和Docker入門第二篇:使部署...
摘要:這相當(dāng)于在原始安裝程序中調(diào)整文件。警告我并沒有告訴這件事,因?yàn)檫@可能會嚇到他或任何其他專家。在創(chuàng)建應(yīng)用商店條目的過程中,還有兩個問題需要解決變量需要設(shè)置為確切值,這樣用戶就可以通過它連接到該實(shí)例。 Harbor Registry是VMware公司的Docker鏡像管理產(chǎn)品。相較于其他鏡像倉庫,Harbor提供身份管理功能,安全性更高,支持單個主機(jī)上的多個registry,這些功能正是很...
閱讀 1564·2021-11-04 16:10
閱讀 2866·2021-09-30 09:48
閱讀 2867·2019-08-29 11:31
閱讀 1605·2019-08-28 18:22
閱讀 3248·2019-08-26 13:44
閱讀 1345·2019-08-26 13:42
閱讀 2873·2019-08-26 10:20
閱讀 781·2019-08-23 17:00