在 vSphere 叢集中啟用 vSphere with Tanzu 時,它會在 Hypervisor 層內建立 Kubernetes 控制平面。此層包含特定物件,讓您能夠在 ESXi 內執行 Kubernetes 工作負載。

圖 1. 主管叢集 一般架構
頂部具有 Tanzu Kubernetes Grid、中間有主管、底部有 ESXi、網路和儲存區的架構。vCenter Server 可對其進行管理。

針對 vSphere with Tanzu 啟用的叢集稱為 主管叢集。它在 SDDC 層的最上方執行,其中包含的 ESXi 用於計算資源、NSX-T Data Center 或 vSphere 網路,以及 vSAN 或其他共用儲存區解決方案。共用儲存區用於 vSphere 網繭 的持續性磁碟區、在 主管叢集 內執行的虛擬機器,以及 Tanzu Kubernetes 叢集中的網繭。建立主管叢集後,身為 vSphere 管理員,您可以在名為 vSphere 命名空間主管叢集中建立命名空間。身為 DevOps 工程師,您可以執行在 vSphere 網繭內執行的容器所組成的工作負載,並建立 Tanzu Kubernetes 叢集。

圖 2. 主管叢集架構
主管叢集架構。
  • Kubernetes 控制平面虛擬機器。在屬於 主管叢集 一部分的主機上,總共會建立三個 Kubernetes 控制平面虛擬機器。這三個控制平面虛擬機器會進行負載平衡,因為每個虛擬機器都有自己的 IP 位址。此外,會將浮動 IP 位址指派給其中一個虛擬機器。vSphere DRS 會判定 ESXi 主機上控制平面虛擬機器的確切放置,並在需要時進行移轉。vSphere DRS 還與控制平面虛擬機器上的 Kubernetes 排程器整合,以便 DRS 確定 vSphere 網繭 的放置。身為 DevOps 工程師,當您排程 vSphere 網繭 時,請求會進行一般的 Kubernetes 工作流程,然後進入 DRS,從而進行最終的放置決策。
  • Spherelet。系統會在每台主機上建立一個名為 Spherelet 的額外程序。它是原生移植到 ESXi 的一個 kubelet,並允許 ESXi 主機成為 Kubernetes 叢集的一部分。
  • Container Runtime Executive (CRX)。從 Hostd 和 vCenter Server 的觀點來看,CRX 類似於虛擬機器。CRX 包含與 Hypervisor 共同運作的半虛擬化 Linux 核心。CRX 使用與虛擬機器相同的硬體虛擬化技術,其周圍有虛擬機器界限。使用直接開機技術,可讓 CRX 的 Linux 客體在不需通過核心初始化的情況下啟動主要初始化程序。這可讓 vSphere 網繭 開機的速度幾乎與容器一樣快。
  • 叢集 API 和 VMware Tanzu™ Kubernetes Grid™ 服務是在主管叢集上執行的模組,並可啟用 Tanzu Kubernetes 叢集的佈建和管理。虛擬機器服務 模組負責部署及執行獨立虛擬機器以及構成 Tanzu Kubernetes 叢集的虛擬機器。

vSphere 命名空間

vSphere 命名空間 會設定使用 Tanzu Kubernetes Grid 服務 所建立的 vSphere 網繭Tanzu Kubernetes 叢集可執行的資源界限。最初建立時,命名空間在 主管叢集 內具有不受限制的資源。做為 vSphere 管理員,您可以設定 CPU、記憶體、儲存區的限制,以及可在命名空間內執行的 Kubernetes 物件數量。系統會在 vSphere中為每個命名空間建立一個資源集區。儲存區限制在 Kubernetes 中以儲存空間配額呈現。

圖 3. vSphere 命名空間
主管命名空間

若要提供命名空間的存取權給 DevOps 工程師,做為 vSphere 管理員,您可以將權限指派給與 vCenter Single Sign-On 相關聯的身分識別來源中可用的使用者或使用者群組。

建立命名空間並設定資源和物件限制以及權限和儲存區原則後,身為 DevOps 工程師,您可以存取命名空間以執行 Kubernetes 工作負載,並使用 Tanzu Kubernetes Grid 服務 建立 Tanzu Kubernetes 叢集。

Tanzu Kubernetes 叢集

Tanzu Kubernetes 叢集是由 VMware 封裝、簽署和支援的開放原始碼 Kubernetes 軟體的完整發行版本。在 vSphere with Tanzu 環境中,您可以使用 Tanzu Kubernetes Grid 服務主管叢集 上佈建 Tanzu Kubernetes 叢集。您可以使用 kubectl 和 YAML 定義以宣告方式叫用 Tanzu Kubernetes Grid 服務 API。

Tanzu Kubernetes 叢集位於 vSphere 命名空間 中。您可以使用與標準 Kubernetes 叢集的相同工具,以相同方式將工作負載和服務部署到 Tanzu Kubernetes 叢集。
圖 4. Tanzu Kubernetes 叢集的 vSphere with Tanzu 架構
TKG 叢集的架構。

設定了 vSphere 網路堆疊的 主管叢集

設定了 vSphere 網路堆疊的 主管叢集 僅支援執行使用 Tanzu Kubernetes Grid 服務 建立的 Tanzu Kubernetes 叢集。此外,該叢集還支援 vSphere 網路服務 和儲存區服務。

設定了 vSphere 網路堆疊的 主管叢集 不支援 vSphere 網繭 叢集。因此,Spherelet 元件在此類主管叢集中不可用,Kubernetes 網繭僅在 Tanzu Kubernetes 叢集內執行。此外,設定了 vSphere 網路堆疊的 主管叢集 也不支援 Harbor 登錄,因為該服務僅與 vSphere 網繭 搭配使用。

在設定了 vSphere 網路堆疊的叢集上建立的 vSphere 命名空間 也不支援執行 vSphere 網繭,而是僅支援執行 Tanzu Kubernetes 叢集。