您可以使用 vSphere with Tanzu 將 vSphere 轉換為在 Hypervisor 層上以原生方式執行 Kubernetes 工作負載的平台。在 vSphere 叢集上啟用時,vSphere with Tanzu 提供直接在 ESXi 主機上執行 Kubernetes 工作負載,以及在專用資源集區內建立上游 Kubernetes 叢集的功能。

現今應用程式堆疊的挑戰

現今的分散式系統是由一般會執行大量 Kubernetes 網繭和虛擬機器的多個微服務組成。不基於 vSphere with Tanzu 的一般堆疊由基礎虛擬環境組成,其中 Kubernetes 基礎結構部署在虛擬機器內,Kubernetes 網繭也分別執行於這些虛擬機器中。有三個不同的角色會運作堆疊的每個部分,即應用程式開發人員、Kubernetes 叢集管理員,以及 vSphere 管理員。

圖 1. 現今的應用程式堆疊
具有 3 層的堆疊 - Kubernetes 工作負載、Kubernetes 叢集、虛擬環境。管理它們的角色有 3 個 - 開發人員、叢集管理員、vSphere 管理員。
不同的角色間對於彼此的環境不具可見度也無法控制:
  • 身為應用程式開發人員,您可以執行 Kubernetes 網繭,以及部署和管理以 Kubernetes 為基礎的應用程式。您對於執行數百個應用程式的整個堆疊不具可見度。
  • 身為 DevOps 工程師,您只能控制 Kubernetes 基礎結構,而無需使用工具來管理或監控虛擬環境,以及解決任何與資源相關的問題和其他問題。
  • 做為 vSphere 管理員,您對於基礎虛擬環境擁有完全控制權,但對於 Kubernetes 基礎結構、虛擬環境中不同 Kubernetes 物件的放置,以及它們耗用資源的方式不具可見度。

對完整堆疊的作業可能有挑戰性,因為它們需要所有三個角色之間的通訊。在堆疊的不同層之間缺乏整合也會帶來挑戰。例如,Kubernetes 排程器對於 vCenter Server 詳細目錄不具可見度,因此無法智慧地放置網繭。

vSphere with Tanzu 如何提供協助?

vSphere with Tanzu 會直接在 Hypervisor 層上提供 Kubernetes 控制平面。身為 vSphere 管理員,您可以為工作負載管理啟用現有的 vSphere 叢集,從而在屬於該叢集的 ESXi 主機內建立 Kubernetes 層。已啟用工作負載管理的叢集稱為 主管叢集

圖 2. vSphere with Tanzu

具有工作負載的 vSphere with Tanzu 堆疊位於頂部,虛擬環境堆疊位於底部。管理它們的角色有兩個:開發人員和 vSphere 管理員。
在 Hypervisor 層上擁有 Kubernetes 控制平面可在 vSphere 中啟用下列功能:
  • 身為 vSphere 管理員,您可以在 主管叢集 上建立命名空間 (稱為 vSphere 命名空間),並為其設定指定數量的記憶體、CPU 和儲存區。將 vSphere 命名空間 提供給 DevOps 工程師。
  • 身為 DevOps 工程師,您可以使用vSphere 命名空間內的共用資源集區在相同平台上執行包含 Kubernetes 容器的工作負載。在 vSphere with Tanzu 中,容器會在名為 vSphere 網繭 的特殊類型虛擬機器內執行。您也可以部署一般虛擬機器。
  • 做為 DevOps 工程師,您可以在命名空間內建立和管理多個 Kubernetes 叢集,並使用 Tanzu Kubernetes Grid 服務 管理其生命週期。使用 Tanzu Kubernetes Grid 服務 建立的 Kubernetes 叢集稱為 Tanzu Kubernetes 叢集。
  • 身為 vSphere 管理員,您可以使用 vSphere Client 管理和監控 vSphere 網繭、虛擬機器和 Tanzu Kubernetes 叢集。
  • 身為 vSphere 管理員,您對於在不同命名空間內執行的 vSphere 網繭、虛擬機器和 Tanzu Kubernetes 叢集、它們在環境中的放置,以及它們耗用資源的方式具有完整可見度。

在 Hypervisor 層上執行 Kubernetes 時,也會減輕 vSphere 管理員和 DevOps 團隊之間的協作,因為這兩個角色都處理相同的物件。

什麼是工作負載?

vSphere with Tanzu 中,工作負載是以下列其中一種方式部署的應用程式:

  • 由在 vSphere 網繭 和/或一般虛擬機器內執行的容器組成的應用程式。
  • 使用 VMware Tanzu™ Kubernetes Grid™ 服務 部署的 Tanzu Kubernetes 叢集。
  • 於使用 VMware Tanzu™ Kubernetes Grid™ 服務 部署的 Tanzu Kubernetes 叢集內執行的應用程式。