天天看點

OPENSHIFT CONTAINER PLATFORM 架構

1.1. OpenShift Container Platform 簡介

OpenShift Container Platform 是用于開發和運作容器化應用程式的平台。它旨在允許支援的應用程式和資料中心從少量機器和應用程式擴充到為數百萬用戶端服務的數千台機器。

OpenShift Container Platform 以 Kubernetes 為基礎,為大規模電信、流視訊、遊戲、銀行和其他應用提供引擎技術,您可以将容器化應用程式從單一雲擴充到内部和多雲環境。

1.1.1. 關于 Kubernetes

Kubernetes 是一個開源容器編配引擎,用于自動化容器化應用程式的部署、擴充和管理。Kubernetes 的一般概念比較簡單:

• 從一個或多個 worker 節點開始,以運作容器工作負載。

• 從一個或多個 master 節點管理這些工作負載的部署。

• 将容器嵌套在稱為 Pod 的部署單元中。使用 Pod 可以為容器提供額外的中繼資料,并可在單個部署實體中對多個容器進行分組。

• 建立特殊種類的資産。例如,服務由一組 Pod 及定義了通路方式的政策來表示。此政策可使容器連接配接到所需的服務,即便容器沒有用于服務的特定 IP 位址。複制控制器(replication controller)是另一種特殊資産,用于訓示一次需要運作多少個 Pod 副本。您可以使用此功能來自動擴充應用程式,以适應其目前的需求。

短短數年,Kubernetes 已在大量的雲和本地環境中被采用。借助開源開發模型,擁護和可以通過為元件(如網絡、存儲和身份驗證)實施不同的技術來擴充 Kubernetes 的功能。

1.1.2. 容器化應用程式的好處

1.1.2.1. 作業系統的好處

容器使用不含核心的小型專用 Linux 作業系統。它們的檔案系統、網絡、cgroups、程序表和命名空間與主機 Linux 系統分開,但容器可以在必要時與主機無縫內建。容器以 Linux 為基礎,是以可以利用快速創新的開源開發模型帶來的所有優勢。

因為每個容器都使用專用的作業系統,是以您能夠在同一主機上部署需要沖突軟體依賴項的不同應用程式。每個容器都帶有各自的依賴軟體,并且管理自己的接口,如網絡和檔案系統,是以應用程式無需争用這些資産。

1.1.2.2. 部署和擴充優勢

如果您在應用程式的主要版本之間進行滾動更新,則可以持續改進應用程式,既不會造成停機,又能仍然保持與目前版本的相容性。

您還可以與現有版本一起部署和測試應用程式的新版本。在部署了目前版本的同時,還部署應用程式的新版本。容器通過測試後,隻要部署更多新容器并删除舊容器便可。

由于應用程式的所有軟體依賴項都在容器本身内解決,是以資料中心的每台主機上都能使用通用作業系統。您無需逐一為應用主機配置特定的作業系統。當資料中心需要更多容量時,您可以部署另一個通用主機系統。

同樣,擴充容器化應用程式也很簡單。OpenShift Container Platform 提供了一種簡單的、标準方式的容器化服務擴充功能。例如,如果将應用程式建構為一組微服務,而非大型的單體式應用程式,您可以分别擴充各個微服務來滿足需求。有了這一能力,您可以隻擴充需要的服務,而不是整個應用程式,進而在使用最少資源的前提下滿足應用程式需求。

1.1.3. OpenShift Container Platform 概述

OpenShift Container Platform 為 Kubernetes 帶來企業級增強,具體包括以下所列:

• 混合雲部署。您可以将 OpenShift Container Platform 叢集部署到各種公有雲平台或資料中心中。

• 內建了紅帽技術。OpenShift Container Platform 中的主要元件源自 Red Hat Enterprise Linux 和相關的紅帽技術。OpenShift Container Platform 得益于紅帽企業級優質軟體的嚴格測試和認證計劃。

• 開源開發模型。開發以開放方式完成,源代碼可從公共軟體存儲庫中獲得。這種開放協作促進了快速創新和開發。

雖然 Kubernetes 擅長管理應用程式,但它并未指定或管理平台級要求或部署過程。強大而靈活的平台管理工具和流程是 OpenShift Container Platform 4.4 具備的重要優勢。

1.1.3.1. 定制作業系統

OpenShift Container Platform 使用 Red Hat Enterprise Linux CoreOS (RHCOS),這是一款面向容器的作業系統,結合了 CoreOS 和 Red Hat Atomic Host 作業系統的一些最佳特性和功能。RHCOS 是專門為從 OpenShift Container Platform 運作容器化應用程式而設計的,能夠與新工具配合,提供快速安裝、基于 Operator 的管理和簡化的更新。

RHCOS 包括:

• Ignition,OpenShift Container Platform 将其用作首次啟動系統配置來進行機器的初次上線和配置。

• CRI-O,Kubernetes 的原生容器運作時實作,可與作業系統緊密內建來提供高效和優化的 Kubernetes 體驗。CRI-O,提供用于運作、停止和重新開機容器的工具。它完全取代了 OpenShift Container Platform 3 中使用的 Docker Container Engine。

• Kubelet,Kubernetes 的主要節點代理,負責啟動和監視容器。

在 OpenShift Container Platform 4.4 中,所有 control plane 都需要使用 RHCOS。但 compute(計算)機器(也被稱為 worker )可以使用 Red Hat Enterprise Linux (RHEL) 做為作業系統。如果選擇使用 RHEL worker,與将 RHCOS 用于所有叢集機器相比,您必須執行更多的系統維護。

1.1.3.2. 簡化的安裝和更新流程

使用 OpenShift Container Platform 4.4 時,如果您擁有具有正确權限的帳戶,通過運作單個指令并提供幾個值,就能在支援的雲中部署生産叢集。如果使用支援的平台,您還可以自定義雲安裝或在資料中心中安裝叢集。

1.1.3.3. 其他主要功能

Operator 既是 OpenShift Container Platform 4.4 代碼庫的基本單元,又是部署供應用程式使用的應用程式和軟體元件的便捷方式。在 OpenShift Container Platform 中,Operator 可充當平台的基礎,不再需要手動更新作業系統和 control plane 應用程式。OpenShift Container Platform Operator(如 Cluster Version Operator 和 Machine Config Operator)允許對這些關鍵元件進行簡化的叢集範圍内管理。

Operator Lifecycle Manager (OLM) 和 OperatorHub 提供了相應的工具,可用于存儲 Operator 并将其分發給開發和部署應用程式的人員。

Red Hat Quay Container Registry 是一個 Quay.io 容器 registry,為 OpenShift Container Platform 叢集提供大多數容器鏡像和 Operator。Quay.io 是 Red Hat Quay 的一個公共 registry 版本,可存儲數百萬鏡像和标簽。

OpenShift Container Platform 中的其他 Kubernetes 增強功能包括軟體定義網絡 (SDN)、身份驗證、日志聚合、監視和路由方面的改進。OpenShift Container Platform 還提供功能齊全的 web 控制台和自定義 OpenShift CLI (oc) 界面。

1.1.3.4. OpenShift Container Platform 生命周期

下圖顯示了 OpenShift Container Platform 的基本生命周期:

• 建立 OpenShift Container Platform 叢集

• 管理叢集

• 開發和部署應用程式

• 擴充應用程式

• 圖 1.1. OpenShift Container Platform 進階概述

1.1.4. OpenShift Container Platform 對網際網路和 Telemetry 的通路

在 OpenShift Container Platform 4.4 中,您需要通路網際網路來安裝叢集。預設運作的 Telemetry 服務提供有關叢集健康狀況和成功更新的名額,這也需要通路網際網路。如果您的叢集連接配接到網際網路,Telemetry 會自動運作,而且叢集會注冊到 Red Hat OpenShift Cluster Manager(OCM)。

确認 Red Hat OpenShift Cluster Manager 清單正确後,可以由 Telemetry 自動維護,也可以使用 OCM 手動維護,使用訂閱監控 來跟蹤帳戶或多叢集級别的 OpenShift Container Platform 訂閱。

您必須具有以下網際網路通路權限:

• 通路 Red Hat OpenShift Cluster Manager 頁面,以下載下傳安裝程式并執行訂閱管理。如果叢集可以通路網際網路,并且沒有禁用 Telemetry,該服務會自動授權您的叢集。

• 通路 Quay.io,以擷取安裝叢集所需的軟體包。

• 擷取執行叢集更新所需的軟體包。

重要

如果您的叢集無法直接通路網際網路,則可以在置備的某些類基礎架構上執行受限網絡安裝。在此過程中,您要下載下傳所需的内容,并使用它在鏡像 registry(mirror registry) 中填充安裝叢集并生成安裝程式所需的軟體包。對于某些安裝類型,叢集要安裝到的環境不需要通路網際網路。在更新叢集之前,您要更新鏡像 registry(mirror registry) 的内容。