關於節點集區自動建立功能

Google Kubernetes Engine (GKE) 可根據工作負載的設定,自動在叢集中建立及管理節點集區。本文說明節點集區自動建立功能的運作方式、調整資源配置參數和預設行為,並提供有助於提升可擴充性的建議。本文適用於叢集管理員,協助他們在標準模式叢集中減少手動管理基礎架構的相關成本。

您應該已熟悉下列概念:

在 Autopilot 模式中,GKE 一律會根據工作負載為您建立及管理節點和節點集區。您不需要手動為 Autopilot 叢集或標準叢集中的 Autopilot 工作負載設定節點集區自動建立功能。詳情請參閱 GKE Autopilot 總覽

什麼是節點集區自動建立功能?

在 GKE 中,節點集區是節點的邏輯群組。節點集區中的每個節點,都與該節點集區中的其他節點具有相同設定。節點集區自動建立功能是一種基礎架構自動調度機制,可讓 GKE 在叢集中建立符合工作負載需求的新節點集區。GKE 會管理這些自動建立的節點集區,執行更新節點中繼資料、在節點集區中建立及刪除節點,以及在不再需要節點集區時刪除整個節點集區等工作。節點集區自動建立功能是 GKE 叢集自動配置器的延伸功能,可自動調整個別節點集區中的節點。

節點集區自動建立功能可讓 GKE 自動縮減叢集規模,並移除叢集中的空白節點集區。您無法設定每個自動建立的節點集區必須擁有的節點數量下限,因為如果下限大於零,系統就無法移除空白節點集區。如果您的用途需要叢集一律執行最少數量的節點,請手動建立並啟用自動調度資源的節點集區

運作方式

節點集區自動建立功能擴充了 GKE 叢集自動調度器,讓 GKE 佈建新的節點集區,以滿足待處理 Pod 的硬體需求和資源要求。您可以透過下列方式定義硬體需求:

  • 使用 ComputeClasses,然後使用節點選取器在各種 Pod 中選取。我們建議使用這個方法,因為您可以集中定義多個工作負載可使用的通用節點設定。
  • 在 Pod 規格中,使用節點選取器或節點親和性要求特定 GKE 節點標籤。

GKE 會根據下列參數設定新的節點集區:

  • Pod 和容器中的 CPU、記憶體和暫時儲存空間資源要求,包括由 DaemonSet 管理的任何 Pod。
  • Pod 規格或 ComputeClass 中的 GPUTPU 要求。
  • 待處理 Pod 或 ComputeClass 規格中的硬體需求,例如機器類型或開機磁碟類型。
  • 具有相符節點選取器的待處理 Pod 規格中的容許度

GKE 會將自動建立的節點集區中,每個節點的資源容量設為大於或等於待處理 Pod 的資源要求。您必須確保資源要求足夠大,Pod 才能正常運作。如果 Pod 要求過低,GKE 將 Pod 排程到自動建立的節點後,Pod 就無法正常執行。

節點中繼資料設定

GKE 也會根據工作負載需求設定節點中繼資料 (例如標籤、註解和節點汙點),例如:

  • 如果您要求使用 N2 系列機器,GKE 會為每個節點新增 cloud.google.com/machine-family: n2 節點標籤。
  • 如果您在 Pod 中選取 ComputeClass,GKE 會新增節點標籤,並將 cloud.google.com/compute-class 鍵設為該 ComputeClass 的名稱。
  • 如果 Pod 具有容許條件和相同節點標籤的節點選取器,GKE 會將這些容許條件的節點 taint 新增至自動建立的節點。

刪除自動建立的節點集區

節點集區自動建立功能可讓叢集自動調度器建立新的節點集區和節點,以執行待處理的 Pod。如果自動建立的節點集區中 Pod 數量減少,叢集自動配置器會逐步縮減節點集區。如果可以,GKE 會排空節點集區中未充分利用的節點,將 Pod 整合到其他節點,然後移除空節點。

如果自動建立的節點集區中沒有任何節點,GKE 就會刪除該節點集區。GKE 不會刪除您從節點集區自動建立功能排除的節點集區,例如手動建立的節點集區。如要進一步瞭解叢集自動配置器如何縮減節點集區,請參閱「叢集自動配置器的運作方式」。

GKE 擴縮偏好設定

GKE 自動調整基礎架構時,會套用下列偏好設定:

  • 減少浪費的運算資源:GKE 會使用叢集中現有自動建立節點集區的資源容量,判斷新節點集區要使用的機型。隨著叢集規模擴大,GKE 會優先為新的節點集區使用較大的機器類型,以便在節點集區的每個節點上執行更多 Pod。
  • 提升擴充性和延遲時間:GKE 一律會優先擴充現有的相容節點集區,而不是建立新的節點集區。叢集中的不同節點集區數量越多,這項偏好設定的強度就越高。當不同節點集區的數量接近支援的延遲和擴充性最佳化限制時,GKE 會降低建立新節點集區的優先順序。

這些優先順序可協助確保叢集大規模有效運用運算資源,例如在下列範例情境中:

  • 在節點集區數量較少且資源用量較低的叢集中,GKE 會更頻繁地建立新的節點集區,並為這些節點集區使用較小的機型。
  • 如果叢集有大量節點集區,資源用量就會偏高。GKE 建立新節點集區的頻率會降低,並為這些節點集區使用較大的機器類型,以便繼續排定 Pod,同時減緩叢集可擴充性和延遲限制的進展。

您可以手動控管 GKE 用於自動建立節點集區的執行個體大小下限,方法是使用具有 priorities.machineFamily 欄位的 ComputeClass,以及 priorities.minCores 欄位或 priorities.minMemoryGb 欄位。

啟用節點集區自動建立功能的方法

視叢集設定而定,GKE 可以自動為特定 ComputeClass 建立節點集區,或為使用相容設定的任何工作負載建立節點集區。

啟用方法
工作負載層級 (建議)

在 GKE 1.33.3-gke.1136000 以上版本中,您可以使用 ComputeClass 啟用節點集區自動建立功能,而不必使用叢集層級的節點自動佈建功能。GKE 只會為選取特定 ComputeClass 的工作負載建立新的節點集區,且這些 ComputeClass 必須啟用自動建立功能。叢集中的現有工作負載不受影響。

即使 GKE 版本早於 1.33.3-gke.1136000,我們仍建議使用 ComputeClass 要求及設定工作負載的基礎架構。ComputeClasses 提供獨特功能,讓您以靈活方式在叢集中調整擴充規模。詳情請參閱「關於自訂 ComputeClass」。

叢集層級

為整個叢集啟用節點自動佈建功能。您必須為叢集中的 CPU 和記憶體等資源設定限制。這些限制會套用至整個叢集。如要在 GKE 1.33.3-gke.1136000 之前的版本中啟用節點集區自動建立功能,必須進行叢集層級設定。

GKE 可以使用 Pod 規格中的 ComputeClass 或選取器,為叢集中任何待處理的工作負載建立新的節點集區。

這些設定方法並非互斥。您可以使用 ComputeClass,在採用節點自動佈建功能的叢集中自動建立節點集區。如果您同時使用這兩種方法在叢集中啟用節點集區自動建立功能,GKE 會依下列偏好順序,尋找要用於節點集區的設定值:

  1. ComputeClass 或 Pod 規格:如果您在 ComputeClass 或 Pod 規格中指定設定 (例如機器類型),GKE 會使用該設定。
  2. 叢集層級節點自動佈建預設值:如果 ComputeClass 或 Pod 規格中未指定設定,GKE 會檢查您是否在叢集中設定節點自動佈建的預設值。如果叢集層級有預設值,GKE 會使用該值。
  3. 叢集層級預設值:如果未在 ComputeClasses、Pod 規格中指定設定,或未將設定設為叢集層級節點自動佈建的預設值,GKE 會使用 Google Cloud 為叢集設定的預設值。

舉例來說,假設 GKE 嘗試尋找要用於自動建立節點集區的機型。上述偏好設定順序的適用情形如下:

  1. GKE 會檢查 Pod 規格或 Pod 的 ComputeClass 是否指定機器類型。
  2. 如果 Pod 規格或 ComputeClass 未指定機器類型,GKE 會檢查您是否在叢集中為節點自動佈建設定預設機器類型。
  3. 如果未設定節點自動佈建的預設機型,GKE 會使用叢集的預設機型。

在大多數情況下,我們建議您只使用 ComputeClass 啟用方法。下列各節將詳細說明這些設定方法,包括任何限制和注意事項。

使用 ComputeClass 在工作負載層級啟用

如要為叢集中的任何 ComputeClass 啟用節點集區自動建立功能,請在 ComputeClass 規格中使用下列其中一個欄位:

  • nodePoolAutoCreation:讓 GKE 視需要自動建立節點集區。您仍可與節點集區互動。GKE 只會實作您設定的設定或限制。
  • autopilot:在 Autopilot 模式下執行選取這個 ComputeClass 的工作負載。與 Autopilot 叢集類似,GKE 會全面管理節點,並實作各種 Autopilot 限制和設定。如果您使用 autopilot 欄位,則可略過這份文件。詳情請參閱「關於 Standard 叢集中的 Autopilot 模式工作負載」。

在符合下列條件的叢集中,您可以在 ComputeClass 中使用這些欄位,不必在叢集層級啟用節點自動佈建功能:

  • 使用 GKE 1.33.3-gke.1136000 以上版本。
  • 已在搶鮮版發布管道註冊。

如果您在 ComputeClass 中設定自動建立節點集區,但未啟用叢集的節點自動佈建功能,GKE 只會為使用 ComputeClass 的工作負載建立新的節點集區。其他工作負載不受影響。

下列 ComputeClass 資訊清單會為使用 ComputeClass 的任何 Pod 啟用節點集區自動建立功能:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: example-computeclass
spec:
  priorities:
  - machineFamily: n4
  - machineFamily: c4
  whenUnsatisfiable: ScaleUpAnyway
  nodePoolAutoCreation:
    enabled: true

在叢集層級啟用節點自動佈建功能

如要為整個叢集啟用節點集區自動建立功能,請使用 Google Kubernetes Engine API 為叢集啟用節點自動佈建功能。節點自動佈建功能可讓 GKE 根據 Pod 規格或 ComputeClass 設定,視需要為叢集中的任何工作負載建立新的節點集區。GKE 不會管理叢集中的任何現有節點集區,但您可以在為叢集啟用節點自動佈建功能後,將個別節點集區標示為自動佈建。

在下列情況中啟用節點自動佈建功能:

  • 您希望 GKE 在執行 1.33.3-gke.1136000 之前的 GKE 版本的叢集中,自動建立節點集區。
  • 您想手動設定叢集範圍的資源限制。如果 GKE 版本早於 1.33.3-gke.1136000,即使使用 ComputeClasses,也必須設定叢集範圍的資源限制。

  • 您想使用 ComputeClasses 不支援的特定功能或設定。

  • 您想為整個叢集設定預設節點設定值。

啟用節點自動佈建功能後,您可以使用 Google Cloud CLI 或 YAML 設定檔,為各種節點設定設定預設值。

使用節點自動佈建功能設定叢集層級的資源限制

為整個叢集啟用節點自動佈建功能時,您也必須設定叢集中 CPU、記憶體、GPU 和 TPU 等資源的限制。這些限制適用於叢集中的所有資源容量總和,包括手動建立的節點集區和 ComputeClass。如果作業會超出其中一項資源限制,GKE 就不會建立新節點或節點集區。

只有在叢集中啟用節點自動佈建功能時,才需要設定這些叢集層級的資源限制。在符合下列條件的叢集中,您可以在 ComputeClass 中使用節點集區自動建立功能,不必啟用節點自動佈建功能:

  • 使用 GKE 1.33.3-gke.1136000 以上版本。
  • 已在搶鮮版發布管道註冊。

如果叢集符合這些規定,建議您只使用 ComputeClass 設定自動建立的節點集區。

自動建立的節點集區的預設設定

您可以指定預設值,讓 GKE 在工作負載層級或叢集層級,套用至自動建立的節點集區。

  • 工作負載層級的預設設定:您可以使用 ComputeClass 規格中的 spec.nodePoolConfig 欄位和 spec.priorityDefaults 欄位,為特定節點設定預設值。這些預設值只會套用至 GKE 為該 ComputeClass 建立的節點集區。
  • 叢集層級的預設設定:設定節點自動佈建功能時,您可以為自動建立的節點集區設定預設值。如要指定預設值,請使用 gcloud CLI 或 YAML 設定檔。

這些設定預設值的方法不會互相排斥。如果您為 ComputeClass 中的特定設定和整個叢集設定預設值,GKE 會使用 ComputeClass 的值。如果 ComputeClass 未指定該設定的值,GKE 會改用叢集層級的預設值。

使用設定檔設定叢集層級預設設定

啟用節點自動佈建功能後,您可以使用 YAML 設定檔,為自動建立的節點集區指定叢集層級的預設設定。您可以在單一設定檔中指定多項設定。部分進階設定 (例如自動修復設定) 只能使用設定檔指定。

  • 下列範例設定檔會為任何自動建立的新節點集區啟用節點自動修復和自動升級功能:

    management:
      autoRepair: true
      autoUpgrade: true
    
  • 下列範例設定檔會為節點自動佈建功能設定叢集範圍的資源限制,並設定多項預設設定:

    resourceLimits:
      - resourceType: 'cpu'
        minimum: 4
        maximum: 10
      - resourceType: 'memory'
        maximum: 64
      - resourceType: 'nvidia-tesla-t4'
        maximum: 4
    management:
      autoRepair: true
      autoUpgrade: true
    shieldedInstanceConfig:
      enableSecureBoot: true
      enableIntegrityMonitoring: true
    diskSizeGb: 100
    

    這個設定檔會設定下列預設值:

將設定檔套用至叢集後,GKE 只會將檔案中的設定用於叢集中自動建立的新節點集區。您在檔案中指定的新設定或修改後的設定,不會套用至 GKE 在叢集中建立的現有節點集區。如果您更新先前為叢集設定的值,GKE 會將新值用於所有新的節點集區。舉例來說,如果您先前將預設機器系列設為 N2,並在設定檔中將值更新為 N4,則所有新的節點集區都會使用 N4 機器類型。

如要進一步瞭解如何使用叢集層級設定檔,請參閱「使用節點自動佈建設定檔設定」。

節點集區自動建立功能的使用案例

以下各節說明節點集區自動建立功能的常見用途和支援的硬體。如要進一步瞭解其他用途和支援的設定,請參閱特定用途的說明文件。

選取機器系列或機型

您可以透過下列其中一種方式,為 GKE 選取 Compute Engine 機型系列或機型,供自動建立的節點集區使用:

  • ComputeClasses:使用 machineFamilymachineType 優先順序規則
  • Pod 規格:針對機器系列,使用 cloud.google.com/machine-family 節點標籤的節點選取器。如要使用機器類型,請同時使用 cloud.google.com/machine-familynode.kubernetes.io/instance-type 節點標籤。詳情請參閱「選取機器系列或機器類型」。

如果未明確選取機器,GKE 會使用 E2 系列機器,或是與工作負載要求的硬體相容的機器類型。舉例來說,GKE 會使用 GPU 機器類型處理 GPU,並使用專用機器處理 TPU 資源

要求機型系列或機型時,請確保其他節點選取器和 Pod 資源要求與指定的機器相容。舉例來說,您無法同時要求使用 GPU 和 N2 機器系列。

支援的機器系列

您可以在 ComputeClass 或工作負載中,明確要求任何支援的 Compute Engine 機型系列或機型。節點集區自動建立功能僅支援特定 GKE 版本中的下列機器系列:

  • Z3 系列機型:1.29 以上版本。
  • C4 系列機型
    • 1.28.15-gke.1159000 以上版本。
    • 1.29.10-gke.1227000 以上版本。
    • 1.30.3-gke.1225000 以上版本。
  • C4A 機型系列
    • 1.28.15-gke.1344000 以上版本。
    • 1.29.11-gke.1012000 以上版本。
    • 1.30.7-gke.1136000 以上版本。
    • 1.31.3-gke.1056000 以上版本。
  • C4D 機器系列: 1.32.3-gke.1717000 以上版本。
  • N4 機器系列:1.29.3 以上版本。

所有 GKE 版本都支援其他機器系列。

選取 GPU

您可以透過下列任一方式,為自動建立的節點集區要求 GPU:

  • ComputeClasses
    1. 使用 gpu 優先順序規則設定 GPU。
    2. 在 Pod 中要求 GPU 資源。
  • 廣告連播規格
    1. 為節點自動佈建功能設定全叢集 GPU 限制。
    2. 使用節點選取器設定 GPU。
    3. 在 Pod 中要求 GPU 資源。

GKE 會選取足夠大的 GPU 機器類型,以支援 GPU 數量。您選取的 GPU 數量會影響節點的 CPU 和記憶體容量。

選取 Cloud TPU

您可以透過下列任一方式,為自動建立的節點集區要求 Cloud TPU 資源:

單一主機 TPU 配量節點集區多主機 TPU 配量節點集區都支援自動調度資源和自動建立節點集區。如要自動建立節點集區,GKE 會建立單一主機或多主機 TPU 配量節點集區,並使用符合待處理工作負載需求的 TPU 版本和拓撲。

Cloud TPU 的 GKE 版本需求

節點集區自動建立功能僅支援特定 GKE 版本中的下列 Cloud TPU:

  • Cloud TPU v5p
    • 1.28.7-gke.1020000 以上版本。
    • 1.29.2-gke.1035000 以上版本。
  • TPU Trillium:1.31.1-gke.1146000 以上版本。

所有 GKE 版本都支援其他 Cloud TPU 類型。

Cloud TPU 節點集區自動調度資源

GKE 會透過下列方式,自動擴展或縮減使用叢集自動調整程式的 Cloud TPU 節點集區 (自動建立或手動建立):

  • 單一主機 TPU 配量節點集區:GKE 會在現有節點集區中新增或移除 TPU 節點。節點集區可能包含介於零和節點集區大小上限之間的任意數量的 TPU 節點,而節點集區大小上限是由 --max-nodes--total-max-nodes 自動調度資源旗標決定。節點集區中的所有 TPU 節點都具有相同的機器類型和拓撲。如要進一步瞭解如何建立單一主機 TPU 節點集區,請參閱「建立節點集區」。
  • 多主機 TPU 配量節點集區:GKE 會以不可分割的方式,將節點集區從零擴充至滿足 TPU 拓撲所需的節點數量。舉例來說,如果 TPU 節點集區的機器類型為 ct5lp-hightpu-4t,拓撲為 16x16,則節點集區一律會有 64 個節點或零個節點。如果節點集區中沒有 TPU 工作負載,GKE 就會縮減節點集區。如要縮減節點集區,GKE 會排除所有已排定的 Pod,並移除節點集區中的所有節點。如要進一步瞭解如何建立多主機 TPU 節點集區,請參閱「建立節點集區」。

Cloud TPU 節點集區設定

GKE 會使用 Pod 或 ComputeClass 中的設定,判斷 TPU 節點的設定。以下資訊清單是 Deployment 規格的範例,該規格會在 Pod 規格中要求 TPU。如果已啟用叢集層級的節點自動佈建設定,這個 Deployment 會觸發節點集區自動建立作業。建立這個 Deployment 範例時,GKE 會建立節點集區,其中包含拓撲為 2x2x2 的 TPU v4 區塊,以及兩部 ct4p-hightpu-4t 機器。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tpu-workload
  labels:
    app: tpu-workload
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-tpu
  template:
    metadata:
      labels:
        app: nginx-tpu
    spec:
      nodeSelector:
        cloud.google.com/gke-tpu-accelerator: tpu-v4-podslice
        cloud.google.com/gke-tpu-topology: 2x2x2
        cloud.google.com/reservation-name: my-reservation
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            google.com/tpu: 4
          limits:
            google.com/tpu: 4
        ports:
        - containerPort: 80

在這個資訊清單中,下列欄位定義了 TPU 設定:

  • cloud.google.com/gke-tpu-accelerator:TPU 版本和類型。舉例來說,您可以使用下列任一方法:
    • 搭配 tpu-v4-podslice 的 TPU v4
    • 搭配 tpu-v5-lite-podslice 的 TPU v5e。
    • 使用 tpu-v5p-slice 的 TPU v5p。
    • 使用 tpu-v6e-slice 的 TPU Trillium (v6e)。
  • cloud.google.com/gke-tpu-topology:TPU 配量中的 TPU 晶片數量和實體排列方式。詳情請參閱「選擇拓撲」。
  • limits.google.com/tpu:TPU VM 上的 TPU 晶片數量。大多數設定只有一個正確值。詳情請參閱「GKE 中的 TPU 運作方式」。
  • cloud.google.com/reservation-name:要用於取得 TPU 資源的容量預留名稱。如果省略此欄位,工作負載就不會使用任何預訂。

自動建立的節點集區設定取決於 TPU 類型、TPU 拓撲和您選取的 TPU 晶片數量。如要預測節點集區類型、大小和設定,請執行下列操作:

  1. 在「選擇拓撲」中,針對指定的 TPU 類型 (例如 TPU TrilliumTPU v5e),篩選表格中的「標準」
  2. 使用您指定的值來識別節點集區設定,如下所示:
    1. gke-tpu-topology:在表格中找出「拓撲」值相同的資料列。
    2. limits:在表格中,將「TPU 晶片數量」的值除以「VM 數量」的值。在表格中找出與指定值結果值相同的資料列。

舉例來說,假設您要求使用 2x4 拓撲的 tpu-v6e-slice (TPU Trillium)。在這個情境中,您會篩選「選擇拓撲」表格,找出 TPU Trillium。接著,找出與指定設定對應的資料列,如下所示:

  • gke-tpu-topology:TPU Trillium 的 2x4 拓撲有以下設定:
    • 單一主機 TPU 配量節點集區,在一個執行個體中具有八個 TPU 晶片。ct6e-standard-8t
    • 多主機 TPU 配量節點集區,其中八個 TPU 晶片分布在兩個 ct6e-standard-4t 執行個體中。
  • limits:由於 TPU Trillium 的 2x4 拓撲有多種選項,因此您在 limits 欄位中指定的值取決於所需的節點集區類型,如下所示:
    • 單一主機 TPU 配量節點集區:指定 limits.google.com/tpu: 8,即可取得具有八個 TPU 晶片和一個 VM 的節點集區。所有八個晶片都連結至該 VM。
    • 多主機 TPU 配量節點集區:指定 limits.google.com/tpu: 4,取得具有八個 TPU 晶片和兩個 VM 的節點集區。每個 VM 都有 4 個晶片。

選取 Spot VM

您可以透過下列任一方式,為自動建立的節點集區選取Spot VM

  • ComputeClasses:在優先順序規則中使用 spot 欄位。
  • Pod 規格:針對具有 NoSchedule 效果的 cloud.google.com/gke-spot="true" 節點標籤使用容許度。為 cloud.google.com/gke-spot=truecloud.google.com/gke-provisioning=spot 節點標籤新增節點選取器。或者,您也可以在容許條件和節點選取器中使用 cloud.google.com/gke-preemptible 節點標籤,選取先占 VM。不過,我們強烈建議改用 Spot VM。

暫存空間設定

GKE 會將節點開機磁碟的一部分用於 Pod 暫時性儲存空間。您可以透過下列任一方式,自訂 GKE 用於自動建立節點的開機磁碟大小:

  • ComputeClasses:在優先順序規則中使用 storage.bootDiskSizestorage.bootDiskType 欄位。您可以為不同的 ComputeClass 設定不同的開機磁碟設定。
  • Pod 規格:使用叢集層級設定檔中的 diskSizeGbdiskType 欄位。使用這個方法時,您無法控制個別 Pod 的開機磁碟大小和類型。

詳情請參閱「自訂開機磁碟」。如果您未明確修改開機磁碟設定,預設值為容量 100 GiB 的 pd-balanced 磁碟區。

只有在節點的可分配暫時性儲存空間大於或等於待處理 Pod 的暫時性儲存空間要求時,GKE 才會建立新的節點集區。如果節點的可分配暫時性儲存空間小於暫時性儲存空間要求,GKE 就不會建立新的節點集區,Pod 也會維持待處理狀態。GKE 不會根據 Pod 臨時儲存空間要求,動態調整開機磁碟大小。

工作負載區隔

您可以要求特定 Pod 一律在叢集中與其他 Pod 分開的節點上執行。GKE 會使用節點汙點,防止其他工作負載在這些節點上執行。您可以透過下列方式,在自動建立的節點集區中設定工作負載分離:

  • ComputeClasses:GKE 為特定 ComputeClass 建立的節點,只能執行選取該 ComputeClass 的 Pod。您不需要修改 Pod 規格。您可以使用 Pod 間相依性和反相依性,分隔 ComputeClass 中的 Pod。
  • Pod 規格:如果為叢集啟用節點自動佈建功能,您可以使用 Pod 規格中的欄位設定工作負載區隔。在節點集區自動建立期間,如果符合下列所有條件,GKE 可能會建立具有標籤和 taint 的節點集區:
    • Pod 會使用節點選取器要求自訂節點標籤鍵和值。您無法使用系統節點標籤來區分工作負載。
    • Pod 的容許條件適用於相同的節點標籤鍵。
    • 容許效果為 NoScheduleNoExecute 或未指定。

如要進一步瞭解如何設定這些欄位和限制,請參閱「在 GKE 中設定工作負載分離」。

限制

  • 叢集自動配置器的所有限制也適用於節點集區自動建立功能。
  • 如果叢集的節點集區總數超過 200 個,自動調度資源期間的延遲時間可能會增加。任何會觸發建立新節點集區的設定 (例如工作負載分離或使用多個 ComputeClass),都會增加這個數字。如要進一步瞭解叢集限制,請參閱「規劃大型叢集」中的限制和最佳做法
  • 啟用節點自動佈建時,您為叢集設定的任何資源限制,也會套用至 GKE 為 ComputeClass 建立的節點集區。
  • ComputeClasses 不支援下列設定:
    • 突波升級或藍綠升級。
    • 節點完整性和安全啟動。
  • 如要在 GKE 1.33.3-gke.1136000 之前的版本中,為 ComputeClass 啟用節點集區自動建立功能,您也必須啟用叢集層級的節點自動佈建功能。這項限制不適用於 GKE 1.33.3-gke.1136000 以上版本。

不支援的設定

GKE 不會建立使用下列設定的新節點集區:

叢集自動調度器可以調整使用這些設定的現有節點集區中的節點。

後續步驟