選擇基本的 CPU 平台


本頁面說明如何為 Google Kubernetes Engine (GKE) 叢集中的節點指定最低 CPU 平台。

為什麼要選擇最低 CPU 平台?

如果您需要特定 CPU 功能和規格 (例如高基本頻率或最佳化電源管理功能),指定最低 CPU 平台就很有用。

在繪圖、遊戲和數據分析產業中,某些需要大量進階運算的工作負載可以利用不同 CPU 平台功能組所提供的特定功能,像是 AVX-2 和 AVX-512 等。選擇特定的 CPU 平台可以大幅提升執行速度和效能。藉由指定最低 CPU 平台,您的工作負載能以更加合乎預期的方式實現上述效益,同時可以確保您的節點不會使用到其工作負載不適用的 CPU 平台。

如何選擇平台

下表說明如何根據 GKE 的使用方式選擇最低 CPU 平台:

範圍 說明 支援的叢集設定
工作負載層級 (建議)

在 Pod 規格中選擇最低平台。 GKE 會依下列方式排定這些 Pod:

  • Autopilot:GKE 會在搭載指定平台或更新版本的節點上排定 Pod。
  • 標準:GKE 只會在具有指定平台的節點上排定 Pod。舉例來說,如果現有 Intel Ice Lake 節點集區,且新 Pod 要求至少使用 Intel Cascade Lake,GKE 會建立新的 Intel Cascade Lake 節點集區,即使 Intel Ice Lake 是更先進的平台也一樣。
  • 搭載 GKE 1.25 以上版本的 Autopilot。
  • Standard 叢集,並啟用節點自動佈建功能,且執行 GKE 1.23 以上版本。

節點和叢集層級 建立新的 Standard 模式叢集或節點集區時,請選擇最低 CPU 平台。這項設定不支援節點自動佈建。 如需操作說明,請直接前往「在節點集區層級選擇最低 CPU 平台」。 新的標準叢集或節點集區

定價

您可以選擇最低 CPU 平台,不需額外付費。

事前準備

開始之前,請確認你已完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update,取得最新版本。

查看 CPU 平台可用性

可用的 CPU 平台會因節點執行的運算區域而異。即使使用 Autopilot 叢集或區域 Standard 叢集,也應檢查區域中可用的 CPU 平台。

如要查看特定區域的可用平台,請執行下列指令:

gcloud compute zones describe COMPUTE_ZONE

COMPUTE_ZONE 替換為區域名稱,例如 us-central1-a。如果您使用區域叢集類型,請指定該區域中的區域名稱。

輸出結果會與下列內容相似:

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

使用這些值要求最低 CPU 平台時,請將平台名稱中的空格換成底線。例如 AMD_Milan

在工作負載層級選擇最低 CPU 平台

如果您使用 GKE Autopilot 叢集或 GKE Standard 叢集搭配節點自動佈建功能,可以在 Pod 規格中選擇最低 CPU 平台。部署工作負載時,GKE 只會將這些 Pod 排定至具有指定平台或更新版本的節點。建議您採用這個方法。

Autopilot

在 Autopilot 中,要求最低 CPU 平台和運算類別。運算類別必須支援 CPU 平台。Autopilot 支援為 Balanced 運算級別選取最低 CPU 平台。如要查看各個運算類別適用的 CPU 平台清單,請參閱「何時該使用特定運算類別」。

將下列資訊清單儲存為 min-cpu.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

更改下列內容:

  • PLATFORM:CPU 平台的名稱,例如 AMD_Milan。平台名稱區分大小寫,且必須以底線分隔
  • COMPUTE_CLASS:運算類別的名稱,必須為 Balanced

標準

在啟用節點自動佈建功能的 Standard 叢集中,一併要求 CPU 平台和 Compute Engine 機器系列。機器系列必須支援 CPU 平台。如需各個機器系列支援的平台清單,請參閱 Compute Engine CPU 平台

將下列資訊清單儲存為 min-cpu.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

更改下列內容:

  • PLATFORM:CPU 平台的名稱,例如 AMD_Milan。平台名稱區分大小寫,且必須以底線分隔
  • MACHINE_FAMILY:機器家族的名稱,例如 n2d

部署工作負載:

kubectl apply -f min-cpu.yaml

節點在整個生命週期中都會維持使用同一個平台,除非指定的 CPU 平台已遭到淘汰,在這種情況下,您的節點會在較新的平台上執行。

在節點集區層級選擇最低 CPU 平台

對於沒有節點自動佈建功能的 GKE Standard 叢集,您可以在建立新叢集或節點集區時,指定最低 CPU 平台。只有在無法使用工作負載層級設定時,才應採用這個方法。這項設定不會影響節點自動佈建。

gcloud

如要使用 gcloud CLI 建立使用最低 CPU 平台的新節點集區,請設定 --min-cpu-platform 標記並指定 CPU 平台名稱:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --min-cpu-platform PLATFORM

更改下列內容:

  • POOL_NAME:新節點集區的名稱。
  • CLUSTER_NAME:叢集名稱。
  • CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。為地區叢集提供地區,或為區域叢集提供區域。
  • PLATFORM:要在節點集區中執行的 CPU 平台,例如 "Intel Broadwell"

控制台

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在叢集清單中,按一下您要修改的叢集名稱。

  3. 按一下 「Add Node Pool」(新增節點集區)

  4. 視需要設定節點集區。

  5. 按一下導覽窗格中的「Nodes」(節點)

  6. 在「機器設定」下方,

  7. 在「系列」下拉式清單中,選取機器類型

  8. 在「Machine type」(機器類型) 下拉式清單中,選取「Custom」(自訂)

  9. 視需要選取「核心」和「記憶體」

  10. 按一下「CPU 平台和 GPU」

  11. 在「CPU Platform」(CPU 平台) 下拉式清單中,選取最低平台。

  12. 點選「建立」

API

minCpuPlatform 屬性包含在要求主體的 nodeConfig 欄位中。minCpuPlatform 的值必須為平台的名稱,例如 Intel HaswellIntel BroadwellIntel Sandy Bridge

舉例來說,下列要求會建立執行 Intel Broadwell 平台的新節點集區:

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

更改下列內容:

  • PROJECT_ID:您的專案 ID。
  • COMPUTE_REGION:叢集的區域
  • CLUSTER_NAME:叢集名稱。
  • POOL_NAME:新節點集區的名稱。

如果您在建立叢集時指定平台,最低 CPU 平台設定會套用至新叢集中的預設節點集區。

替代方案

您也可以使用下列方法,在 GKE 中選取最低 CPU 平台:

替代方案

叢集層級旗標

--autoprovisioning-min-cpu-platform 旗標

限制

以下限制適用於所有選取最低 CPU 平台的方法:

  • 適用所有 Compute Engine 最低 CPU 平台限制
  • 特定 CPU 平台的可用性因區域而異。
  • E2 機器類型不支援最低 CPU 平台。您必須選取不同的機器類型。
  • Autopilot 叢集僅支援為Balanced運算級別選取平台,不支援預設或 Scale-Out 運算級別。
  • 如果 Autopilot 工作負載要求超過 80 個 vCPU,則最低 CPU 平台必須為 Intel Ice Lake 或更新版本。如果您指定的平台較不先進,Pod 可能會無限期處於 Pending 狀態。

叢集或節點集區最低 CPU 平台設定有以下限制:

如果您選取的最低 CPU 平台比區域的預設 CPU 平台還舊,或是所選平台不再提供使用,GKE 會檢查是否有費用相同但較新的平台。如果較新的平台費用相同,GKE 就會使用較新的平台建立節點。如果沒有價格相同但較新的平台,叢集或節點集區的建立作業就會失敗。

後續步驟