TKG 服務 提供 Kubernetes 工作負載叢集的自助生命週期管理。具有 主管 的 TKG 服務針對 vSphere 環境進行了最佳化,並與基礎結構 (包括 vCenter、ESXi、虛擬網路和雲端原生儲存) 整合。透過 TKG 服務,您可以佈建符合要求的 Kubernetes 叢集並維持上游並行性。

TKG 服務 包括多個與 vSphere IaaS control plane 整合的元件。
圖 1. TKG 服務 元件
TKG 服務元件

工作負載管理

工作負載管理是一個 VMware 解決方案,可在本機 vSphere 基礎結構上提供 Kubernetes 控制平面。啟用工作負載管理可允許您在 vSphere 環境中部署一或多個 主管。工作負載管理與 vCenter Server 綁定在一起,但單獨進行授權。

主管

主管 是一個 Kubernetes 叢集,可用作管理工作負載叢集的控制平面。您可以設定 主管,以支援開發人員佈建和運作 Tanzu Kubernetes Grid 叢集。

主管 部署:vSphere 叢集

在單一 vSphere 叢集上部署 主管 的傳統方法。vSphere 叢集是由 vCenter Server 管理的 ESXi 主機集合。必須為 vSphere 叢集設定特定功能以支援 主管,包括:
  • 由 vSphere Distributed Switch (VDS) 連線的多台 ESXi 主機
  • 已設定共用儲存區,例如 vSAN 或 NFS
  • 已啟用 vSphere HA 和全自動 DRS
  • 已啟用 Lifecycle manager
  • 已設定網路 (具有內嵌式負載平衡器的 NSX 或具有外部負載平衡器的 VDS)
從架構上看,對於 主管 上的 TKG 生產部署,應將執行 vCenter Server 的管理平面主機或叢集與將啟用 主管 的計算平面叢集分開。如果使用 vSphere 叢集來主控 vCenter Server,則此叢集不應啟用 DRS。如需詳細資料,請參閱 vCenter 說明文件

主管 部署:vSphere 區域

vSphere 8 引入了 vSphere 區域。可以將 vSphere 叢集指派給 vSphere 區域,為 主管 提供高可用性和 Fault Tolerance。透過跨 vSphere 區域部署 主管,可以在特定可用性區域中佈建 TKG 叢集。

在單一 vSphere 叢集上部署 主管 時,主管 與 vSphere 叢集之間存在一對一關聯性。在區域化 主管 部署中,主管 跨 3 個 vSphere 叢集延伸,能夠為 主管 上的 TKG 叢集提供高可用性和故障網域。

vSphere 管理員可建立三個 vSphere 區域,並將這些區域與一個 vSphere 叢集相關聯。在三個 vSphere 區域上部署 主管 時,除了要滿足 vSphere 叢集需求外,還要滿足一些特殊需求,包括:

  • 由 vSphere Distributed Switch (VDS) 連線的三個 vSphere 區域
  • 每個 vSphere 區域包含一個 vSphere 叢集
  • 主管 必須正好部署在三個 vSphere 區域上
  • vSphere 儲存區原則在 vSphere 區域上可用

vSphere 命名空間

vSphere 命名空間 是佈建了一或多個 Tanzu Kubernetes Grid 叢集的 主管 上的命名空間。對於每個 vSphere 命名空間,您可以設定角色型存取控制、持續性儲存區、資源限制、映像程式庫和虛擬機器類別。

TKG 服務

TKG 服務 是開放原始碼叢集 API 專案的實作,其定義了一組自訂資源和控制器,可用於管理 Kubernetes 叢集的生命週期。Tanzu Kubernetes Grid主管 的元件。

TKG 服務 具有三層控制器來管理 TKG 叢集的生命週期,包括 虛擬機器服務、叢集 API 和雲端提供者外掛程式。

虛擬機器運算子
虛擬機器服務 控制器提供用於管理虛擬機器和相關聯 vSphere 資源的宣告式、Kubernetes 式 API。 虛擬機器服務 推出了虛擬機器類別的概念,代表抽象的可重複使用硬體組態。 TKG 服務 使用 虛擬機器服務 管理控制平面的生命週期和主控工作負載叢集的 worker 節點虛擬機器。
叢集 API
叢集 API 控制器為提供宣告式、Kubernetes 式的 API,用於叢集建立、組態和管理。叢集 API 的輸入包含描述叢集的資源、描述組成叢集之虛擬機器的一組資源,以及描述叢集附加元件的一組資源。
雲端提供者外掛程式
TKG 服務 佈建的工作負載叢集中包括與基礎 vSphere 命名空間 資源整合所需的元件。這些元件包括與 主管 整合的雲端提供者外掛程式。TKG 會使用雲端提供者外掛程式將持續性磁碟區的要求傳遞至與 VMware 雲端原生儲存 (CNS) 整合的 主管

Tanzu Kubernetes 版本

Tanzu Kubernetes 版本 提供由 VMware 簽署和支援的 Kubernetes 軟體發行版和附加元件以搭配 Tanzu Kubernetes Grid 叢集使用。

每個 Tanzu Kubernetes 版本 均作為虛擬機器範本 (OVA 檔案) 進行散佈。Tanzu Kubernetes Grid 使用 OVA 格式為 TKG 叢集建構虛擬機器節點。Tanzu Kubernetes 版本根據 Kubernetes 版本設定進行版本管理,並包含適用於 vSphere 基礎結構的作業系統自訂和最佳化。

如需 Tanzu Kubernetes 版本清單以及與 主管 的相容性,請參閱 Tanzu Kubernetes 版本說明。另請參閱 vSphere IaaS control plane 〈支援原則〉

內容程式庫

Tanzu Kubernetes 版本 可透過 vCenter 內容程式庫提供給 TKG 叢集。您可以建立已訂閱內容程式庫,並在 VMware 提供 TKR 時自動接收 TKR,或者使用本機內容程式庫並手動上傳 TKR。

TKG 服務 叢集元件

TKG 服務 叢集中執行的元件為產品的四個領域提供功能:驗證、儲存、網路和負載平衡。

驗證 Webhook

驗證 Webhook 在叢集中以網繭形式執行,以驗證使用者驗證 Token 的 Webhook。

TKG 叢集支援兩種驗證方式:使用 vCenter Single Sign-On 和使用支援 Open ID Connect (OIDC) 通訊協定的外部身分識別提供者。

TKG 在 主管 和 TKG 叢集節點上執行 Pinniped OIDC 用戶端。為 主管 設定外部 OIDC 提供者時,會自動設定 Pinniped 元件。

TKG 支援用於對 主管 進行驗證的各種用戶端,包括 kubectl 適用的 vSphere 外掛程式 和 Tanzu CLI。

容器儲存區介面 (CSI)

半虛擬化 CSI 外掛程式是一個在 TKG 叢集內執行並透過 主管 與 VMware 雲端原生儲存 (CNS) 整合的 Kubernetes 網繭。在 TKG 叢集中執行的 Kubernetes 網繭可以掛接三種類型的虛擬磁碟:暫時磁碟區、持續性磁碟區和容器映像。

暫時性儲存區

網繭需要暫時性儲存區來儲存暫時資料,如記錄、磁碟區和組態對應等 Kubernetes 物件。只要網繭存在,暫時性儲存區即會持續。暫時資料會在容器重新啟動之間保持不變,但一旦刪除網繭後,儲存暫時資料的虛擬磁碟就會消失。

持續性儲存區

TKG 利用 vSphere 儲存區原則架構定義儲存區類別和保留持續性磁碟區。TKG 叢集會將持續性磁碟區的要求傳遞至與 VMware 雲端原生儲存 (CNS) 整合的 主管。可以使用儲存區類別在叢集節點上動態佈建持續性磁碟區,也可以手動佈建。

容器映像儲存區

Kubernetes 網繭內的容器使用包含要執行之軟體的映像。網繭會將其容器使用的映像掛接為映像虛擬磁碟。當網繭完成其生命週期時,該映像虛擬磁碟會與網繭中斷連結。Kubelet 負責從映像登錄提取容器映像,並將其轉換成虛擬磁碟,以便在網繭內執行。

容器網路介面 (CNI)

容器網路介面外掛程式是提供網繭網路的 CNI 外掛程式。

TKG 叢集支援以下容器網路介面 (CNI) 選項:Antrea (預設) 和 Calico。此外,TKG 還提供了 Antrea NSX 已路由 CNI 以實作可路由網繭網路。

下表概述 TKG 叢集網路功能及其實作。

表 1. TKG 服務 叢集網路
端點 提供者 說明
網繭連線 Antrea 或 Calico 網繭的容器網路介面。Antrea 使用 Open vSwitch。Calico 將 Linux 橋接器與 BGP 結合使用。
服務類型:ClusterIP Antrea 或 Calico 僅可從叢集內存取的預設 Kubernetes 服務類型。
服務類型:NodePort Antrea 或 Calico 允許透過 Kubernetes 網路 Proxy 在每個 worker 節點上開啟的連接埠進行外部存取。
網路原則 Antrea 或 Calico 控制所選網繭和網路端點允許進出的流量。Antrea 使用 Open vSwitch。Calico 使用 Linux IP 資料表。
雲端提供者實作
雲端提供者實作可讓您建立 Kubernetes 負載平衡器和入口服務。
表 2. TKG 負載平衡
端點 提供者 說明
服務類型:LoadBalancer

NSX 內嵌式負載平衡器 (NSX 網路堆疊的一部分)

NSX Advanced Load Balancer (單獨安裝以與 VDS 網路搭配使用)

HAProxy (單獨安裝以與 VDS 網路搭配使用)

對於 NSX 內嵌式負載平衡器,每個服務類型定義對應一個虛擬伺服器。

對於 NSX Advanced Load Balancer,請參閱本說明文件中的該章節。

對於 HAProxy,請參閱本說明文件中的該章節。

備註: 某些負載平衡功能並非在每個受支援的負載平衡器類型 (如靜態 IP) 上都可用。
叢集入口 第三方入口控制器 為輸入網繭流量提供路由。可以使用任何第三方入口控制器,如 Contour

TKG 服務 叢集 API

TKG 服務 提供了兩個 API,用於佈建和管理 TKG 叢集的生命週期。
  • Tanzu Kubernetes 叢集的 API 版本 v1alpha3
  • 以 ClusterClass 為基礎的叢集 API 版本 v1beta1

透過 v1alpha3 API,您可以建立 TanzuKubernetesCluster 類型的一致 Kubernetes 叢集。此類型的叢集預先設定了一般預設值,不僅可以快速佈建,還可以自訂。透過 v1beta1 API,您可以建立 Cluster 類型的 Kubernetes 叢集,該叢集以 VMware 提供的預設 ClusterClass 為基礎。

備註: 若要將 vSphere IaaS control plane 從 vSphere 7 升級到 vSphere 8,TKG 叢集必須執行 v1alpha2 API。 v1alpha2 API 在 v7.0 Update 3 中引入。v1alpha1 API 已棄用。如需詳細資訊,請參閱:

TKG 服務 叢集用戶端

vSphere 8 主管 上的 TKG 支援透過多個用戶端介面佈建、監控和管理 TKG 叢集。
  • 用於設定 主管 並監控已部署 TKG 叢集的 vSphere Client
  • 使用 vCenter Single Sign-On 透過 主管 和 TKG 叢集進行驗證的 kubectl 適用的 vSphere 外掛程式
  • 用於以宣告方式佈建和管理 TKG 叢集的生命週期,並與 主管 互動的 kubectl
  • 在容器登錄中推送和提取映像的 vSphere Docker 認證協助程式
  • 用於透過命令佈建叢集並用於安裝 Tanzu 套件的 Tanzu CLI
  • 用於管理 TKG 叢集的 Tanzu Mission Control Web 介面。