設計工作負載區隔

本文概要說明 Google Distributed Cloud (GDC) 實體隔離環境中的工作負載管理。本文涵蓋下列主題:

雖然我們建議採用某些工作負載部署設計,但您不一定要完全按照規定執行。每個 GDC 宇宙都有獨特的需求和考量,必須逐一滿足。

工作負載部署位置

在 GDC 平台上,部署虛擬機器 (VM) 工作負載和容器工作負載的操作不同。本節將介紹兩者的差異,以及部署各項資源的位置。

VM 型工作負載

您可以建立 VM 來代管以 VM 為基礎的工作負載。您可以選擇多種 VM 機器類型和大小,盡可能滿足 VM 型工作負載的需求。您必須在專案中建立 VM,專案可以包含許多 VM 和 VM 工作負載。詳情請參閱 VM 總覽

如果專案只包含以 VM 為基礎的工作負載,則不需要 Kubernetes 叢集。 因此,您不需要為以 VM 為基礎的工作負載佈建 Kubernetes 叢集。

容器型工作負載

您可以將容器型工作負載部署至 Kubernetes 叢集中的 Pod。Kubernetes 叢集可附加至一或多個專案,但不是專案的子項資源。建議您只在適當的部署環境中,將叢集附加至專案。舉例來說,實際工作環境工作負載的叢集會附加至實際工作環境工作負載的專案。

在 Kubernetes 叢集內排程 Pod 時,GDC 會採用一般的 Kubernetes 排程、搶占和逐出概念。叢集內排程 Pod 的最佳做法會因工作負載需求而異。

如要進一步瞭解 Kubernetes 叢集,請參閱 Kubernetes 叢集總覽。如要瞭解如何在 Kubernetes 叢集中管理容器,請參閱容器工作負載總覽

設計 Kubernetes 叢集的最佳做法

本節將介紹設計 Kubernetes 叢集的最佳做法:

為每個部署環境建立獨立叢集

除了為每個部署環境建立個別專案,我們也建議您為每個部署環境設計個別的 Kubernetes 叢集。為每個環境分別建立 Kubernetes 叢集和專案,即可隔離生產環境和非生產環境工作負載的資源耗用量、存取政策、維護事件和叢集層級設定變更。

下圖顯示多個工作負載的 Kubernetes 叢集設計範例,這些工作負載涵蓋專案、叢集、部署環境和機器類別。

GDC 設定

這個範例架構假設部署環境中的工作負載可以共用叢集。每個部署環境都有一組獨立的 Kubernetes 叢集。然後將專案指派給適當部署環境的 Kubernetes 叢集。Kubernetes 叢集可能會進一步細分為多個節點集區,以滿足不同機器類別的需求。

此外,設計多個 Kubernetes 叢集有助於進行下列容器作業:

  • 您將部分工作負載固定在特定 Kubernetes 版本,因此在不同版本中維護不同的叢集。
  • 您有一些工作負載需要不同的叢集設定,例如備份政策,因此您建立多個具有不同設定的叢集。
  • 您會平行執行叢集副本,以利進行破壞性版本升級或藍綠部署策略。
  • 您建構的實驗性工作負載可能會節流 API 伺服器,或導致叢集內的其他單點故障,因此您會將其與現有工作負載隔離。

下圖顯示的範例中,由於有上一節所述的容器作業等需求,因此每個部署環境都設定了多個叢集。

GDC 設定

減少建立的叢集數量

為有效運用資源,建議您設計最少數量的 Kubernetes 叢集,以滿足部署環境和容器作業的分隔需求。每個額外叢集都會產生額外的資源耗用量,例如需要額外的控制層節點。因此,與多個小型叢集相比,執行許多工作負載的大型叢集能更有效率地運用基礎運算資源。

如果有多個設定類似的叢集,監控叢集容量和規劃跨叢集依附元件時,會增加維護負擔。

如果叢集即將達到容量上限,建議您在叢集中新增節點,而不是建立新叢集。

在叢集中建立較少的節點集區

為有效運用資源,建議您在 Kubernetes 叢集中設計較少但較大的節點集區。

如果您需要排定 Pod,但這些 Pod 需要的機器類別與其他 Pod 不同,設定多個節點集區就相當實用。為工作負載所需的每個機器類別建立節點集區,並將節點容量設為自動調度,以有效運用運算資源。