有很多令人信服的理由來用 Pulp 來托管你自己的容器注冊中心。下面是其中的一些。
Linux 容器極大地簡化了軟件發(fā)布。將一個應(yīng)用程序與它運行所需的一切打包的能力有助于提高環(huán)境的穩(wěn)定性和可重復(fù)性。
雖然有許多公共注冊中心可以上傳、管理和分發(fā)容器鏡像,但有許多令人信服的論據(jù)支持托管自己的容器注冊中心。讓我們來看看為什么自我托管是有意義的,以及 Pulp,一個自由開源項目,如何幫助你在企業(yè)內(nèi)部環(huán)境中管理和分發(fā)容器。
為什么要托管你自己的容器注冊中心
你可以考慮托管自己的容器注冊中心,原因有很多:
- 體積:一些容器鏡像是相當(dāng)大的。如果你有多個團(tuán)隊下載同一個鏡像,這可能需要大量的時間,并給你的網(wǎng)絡(luò)和預(yù)算帶來壓力。
- 帶寬:如果你在一個帶寬有限的地區(qū)工作,或在一個出于安全原因限制訪問互聯(lián)網(wǎng)的組織中工作,你需要一個可靠的方法來管理你工作的容器。
- 金錢:服務(wù)條款可以改變。外部容器注冊中心能引入或增加速率限制閾值,這可能會對你的操作造成極大的限制。
- 穩(wěn)定性:托管在外部資源上的容器鏡像可能會因為一些原因消失幾天。小到你所依賴的更新容器鏡像,可能會導(dǎo)致你想要避免的重大更改。
- 隱私:你可能也想開發(fā)和分發(fā)容器,但你不想在公共的第三方注冊中心托管。
使用 Pulp 進(jìn)行自我托管
使用 Pulp,你可以避免這些問題并完全控制你的容器。
1、避免速率限制
在 Pulp 中創(chuàng)建容器鏡像的本地緩存,可以讓你組織中的每個人都能拉取到 Pulp 上托管的容器鏡像,而不是從外部注冊中心拉取。這意味著你可以避免速率限制,只有當(dāng)你需要新的東西時才從外部注冊中心進(jìn)行同步。當(dāng)你確實需要從外部注冊中心同步容器時,Pulp 首先檢查內(nèi)容是否已經(jīng)存在,然后再從遠(yuǎn)程注冊中心啟動同步。如果你受到注冊中心的速率限制,你就只鏡像你需要的內(nèi)容,然后用 Pulp 在整個組織中分發(fā)它。
2、整理你的容器
使用 Pulp,你可以創(chuàng)建一個倉庫,然后從任何與 Docker Registry HTTP API V2 兼容的注冊中心鏡像和同步容器。這包括 Docker、Google Container registry、Quay.io 等,也包括另一個 Pulp 服務(wù)器。對于你結(jié)合來自不同注冊中心的鏡像容器的方式,沒有任何限制或約束。你可以自由地混合來自不同來源的容器。這允許你整理一套公共和私人容器,以滿足你的確切要求。
3、無風(fēng)險的實驗
在 Pulp 中,每當(dāng)你對倉庫進(jìn)行修改時,就會創(chuàng)建一個新的不可變的版本。你可以創(chuàng)建多個版本的倉庫,例如,development、test、stage 和 production,并在它們之間推送容器。你可以自由地將容器鏡像的最新更新從外部注冊中心同步到 Pulp,然后讓最新的變化在開發(fā)或其他環(huán)境中可用。你可以對你認(rèn)為必要的倉庫進(jìn)行任何修改,并促進(jìn)容器內(nèi)容被測試團(tuán)隊或其他環(huán)境使用。如果出了問題,你可以回滾到早期版本。
4、只同步你需要的內(nèi)容
如果你想使用 Pulp 來創(chuàng)建一個容器子集的本地緩存,而不是一個完整的容器注冊中心,你可以從一個遠(yuǎn)程源過濾選擇容器。使用 Pulp,有多種內(nèi)容同步選項,以便你只存儲你需要的內(nèi)容,或配置你的部署,按需緩存內(nèi)容。
5、在斷線和空氣隔離的環(huán)境中工作
如果你在一個斷線或受限制的環(huán)境中工作,你可以從一個連接的 Pulp 實例中同步更新到你斷連的 Pulp。目前,有計劃為 Pulp 實現(xiàn)一個原生的空氣隔離功能,以促進(jìn)完全斷線的工作流程。同時,作為一種變通方法,你可以使用 Skopeo 等工具來下載你需要的容器鏡像,然后將它們推送到你斷線的 Pulp 容器注冊中心。
還有更多!
通過 Pulp,你還可以從容器文件中構(gòu)建容器,將私有容器推送到倉庫,并在整個組織中分發(fā)這些容器。我們將在未來的文章中對這個工作流程進(jìn)行介紹。
如何開始
如果你對自我托管你的容器注冊中心感興趣,你現(xiàn)在就可以 安裝 Pulp。隨著 Pulp Ansible 安裝程序的加入,安裝過程已經(jīng)被大量自動化和簡化了。
Pulp 有一個基于插件的架構(gòu)。當(dāng)你安裝 Pulp 時,選擇容器插件和其他任何你想管理的內(nèi)容插件類型。如果你想測試一下 Pulp,你今天就可以評估 Pulp 的容器化版本。
如果你有任何問題或意見,請隨時在 Freenode IRC 的 #pulp 頻道與我們聯(lián)系,我們也很樂意在我們的郵件列表 pulp-list@redhat.com 中接受問題。
原文地址:https://linux.cn/article-13410-1.html