容器是 Linux 作業系統用戶空間的輕量級版本 - 事實上,它是最低限度的。 然而,它仍然是一個成熟的作業系統,因此這個容器本身的品質與成熟的作業系統一樣重要。 這就是為什麼我們長期以來提供
但現在一切都變了
隨著紅帽通用基礎鏡像 (UBI) 的發布,無論您是否訂閱,您現在都可以獲得官方紅帽容器鏡像所期望的可靠性、安全性和效能。 這意味著您可以在 UBI 上建立容器化應用程序,將其放入您選擇的容器註冊表中,並與世界共用。 紅帽通用基礎映像可讓您在任何環境(您想要的地方)中建置、共用和協作開發容器化應用程式。
借助 UBI,您幾乎可以在任何基礎架構上發布和運行您的應用程式。 但如果您在紅帽平台(例如紅帽 OpenShift 和紅帽企業 Linux)上運行它們,您可以獲得額外的好處(更多黃金!)。 在我們繼續更詳細地描述 UBI 之前,讓我提供一個簡短的常見問題解答,說明為什麼需要 RHEL 訂閱。 那麼,當您在 RHEL/OpenShift 平台上執行 UBI 映像時會發生什麼?
現在我們對行銷感到滿意,讓我們更詳細地討論 UBI
使用 UBI 的理由
當您知道 UBI 將使您受益時,您應該有何感受:
- 我的 開發商 希望使用可以在任何環境中分發和運行的容器鏡像
- 我的團隊 操作 想要一個具有企業級生命週期的支援的基礎映像
- 我的 建築師 想要提供
Kubernetes 營運商 致我的客戶/最終用戶 - 我的 顧客 他們不想為整個紅帽環境提供企業級支援而大吃一驚
- 我的 社區 想要在任何地方共享、運行、發布容器化應用程式
如果至少其中一個場景適合您,那麼您絕對應該考慮 UBI。
不僅僅是一個基本圖像
UBI 比成熟的作業系統小,但 UBI 有三個重要的東西:
- 一組三個基本映像(ubi、ubi-minimal、ubi-init)
- 具有各種程式語言(nodejs、ruby、python、php、perl等)的現成運作環境的鏡像
- YUM 儲存庫中具有最常見相依性的一組相關套件
UBI 是作為在容器中開發和交付的雲端原生和 Web 應用程式的基礎而創建的。 UBI 中的所有內容都是 RHEL 的子集。 UBI 中的所有軟體包均透過 RHEL 管道提供,並且在 Red Hat 支援的平台(例如 OpenShift 和 RHEL)上運行時,與 RHEL 一樣受到支援。
確保對容器的高品質支援需要工程師、安全專家和其他額外資源的大量努力。 這不僅需要測試基礎映像,還需要分析它們在任何支援的主機上的行為。
為了幫助減輕升級負擔,紅帽正在積極開發和支持,例如,UBI 7可以在RHEL 8主機上運行,UBI 8可以在RHEL 7主機上運行,這為用戶提供了靈活性、信心和安心。請注意他們在過程中需要的信息,例如容器鏡像或所使用的主機中的平台更新。 現在這一切都可以分成兩個獨立的項目。
三個基本影像
最小 – 專為具有所有相依性(Python、Node.js、.NET 等)的應用程式而設計
- 預裝內容的最小集合
- 沒有 suid 可執行文件
- 最小的套件管理器工具(安裝、更新和刪除)
平台 – 適用於在 RHEL 上運行的任何應用程式
- OpenSSL 統一加密堆疊
- 完整的 YUM 堆疊
- 包括有用的基本作業系統實用程式(tar、gzip、vi 等)
多服務-可以輕鬆地在一個容器中執行多個服務
- 配置為在啟動時執行 systemd
- 能夠在建置階段啟用服務
具有現成的程式語言運行環境的容器鏡像
除了允許您安裝程式語言支援的基礎映像之外,UBI 還包括預先建置映像,以及適用於多種程式語言的現成執行環境。 許多開發人員可以簡單地抓取圖像並開始開發他們正在開發的應用程式。
隨著 UBI 的推出,紅帽提供了兩套鏡像 - 基於 RHEL 7 和基於 RHEL 8。它們分別基於 Red Hat Software Collections (RHEL 7) 和 Application Streams (RHEL 8)。 這些運行時保持最新,並且按照標準每年最多接收四次更新,因此您始終運行最新、最穩定的版本。
以下是 UBI 7 容器鏡像清單:
以下是 UBI 8 的容器鏡像清單:
關聯包
使用現成的影像確實非常方便。 紅帽使它們保持最新狀態,並隨著 RHEL 新版本的發布以及關鍵 CVE 更新根據更新政策變得可用時進行更新
但有時,在創建應用程式時,您可能突然需要一些額外的套件。 或者,有時,為了使應用程式正常工作,您需要更新一個或另一個套件。 這就是為什麼 UBI 映像附帶一組可透過 yum 獲得的 RPM,並且使用快速且高度可用的內容交付網路進行分發(您已經獲得了軟體包!)。 當您在關鍵發佈點對 CI/CD 執行 yum 更新時,您可以確定它會起作用。
RHEL 是基礎
我們不厭其煩地重複 RHEL 是一切的基礎。 您知道紅帽的哪些團隊致力於創建基礎映像嗎? 例如這些:
- 工程團隊負責確保 glibc 和 OpenSSL 等核心庫以及 Python 和 Ruby 等語言運行時在容器中使用時提供一致的效能並可靠地運行工作負載。
- 產品安全團隊負責及時糾正圖書館和語言環境中的錯誤和安全問題,他們的工作有效性透過專門的指標進行評估
貨櫃健康指數等級 . - 由產品經理和工程師組成的團隊致力於添加新功能並確保較長的產品生命週期,讓您對自己的投資充滿信心。
紅帽企業 Linux 為容器提供了出色的主機和映像,但許多開發人員重視以各種格式使用系統的能力,其中一些格式可能超出了 Linux 系統支援的用例。 這就是通用 UBI 鏡像發揮作用的地方。
假設現在,在這個階段,您只是在尋找一個基礎鏡像來開始開發一個簡單的容器化應用程式。 或者您是否已經距離未來更近了,並從在容器引擎上運行的獨立容器轉向使用構建和認證在 OpenShift 上運行的 Operator 的雲原生歷史。 無論如何,全民基本收入將為此提供良好的基礎。
容器包括採用新包裝格式的作業系統用戶空間的輕量級版本。 UBI鏡像的發佈為容器化開發樹立了新的行業標準,使企業級容器可供任何使用者、獨立軟體開發人員和開源社群使用。 特別是,軟體開發人員可以使用單一的、經過驗證的基礎來標準化他們的產品,用於所有容器化應用程序,包括
如何開始處理影像
簡而言之,非常簡單。 Podman 不僅可以在 RHEL 上使用,還可以在 Fedora、CentOS 和其他幾個 Linux 發行版上使用。 您所要做的就是從以下存儲庫之一下載圖像,然後您就可以開始了。
對於 UBI 8:
podman pull registry.access.redhat.com/ubi8/ubi
podman pull registry.access.redhat.com/ubi8/ubi-minimal
podman pull registry.access.redhat.com/ubi8/ubi-init
對於 UBI 7:
podman pull registry.access.redhat.com/ubi7/ubi
podman pull registry.access.redhat.com/ubi7/ubi-minimal
podman pull registry.access.redhat.com/ubi7/ubi-init
好吧,請查看完整的通用基礎映像指南
來源: www.habr.com