本文說明如何選取特定運算類別,在 Google Kubernetes Engine (GKE) Autopilot 叢集中執行具有獨特硬體需求的工作負載。閱讀本文前,請務必先熟悉 GKE Autopilot 中的運算類別概念。
Autopilot 運算級別總覽
Autopilot 提供運算類別,專門用於執行有特定硬體需求的工作負載。這些運算類別適用於機器學習和 AI 工作等工作負載,或執行即時高流量資料庫。
這些運算級別是 Compute Engine 機器系列的子集,可提供比預設 Autopilot 一般用途運算級別更高的彈性。舉例來說,Scale-Out
類別會關閉多執行緒並行功能,讓每個 vCPU 都是一個實體核心。
您可以根據個別 Pod 的需求,將一般 Autopilot Pod 或 Spot Pod 設定為要求由這些運算類別支援的節點。您也可以在支援該架構的運算類別中,要求特定 CPU 架構,例如 Arm。
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
- 確認您有 GKE Autopilot 叢集,且執行 GKE 1.24.1-gke.1400 以上版本。
在 Autopilot Pod 中要求運算級別
如要指示 Autopilot 將 Pod 放置在特定運算類別上,請在 nodeSelector 或 node 親和性規則中指定cloud.google.com/compute-class
標籤,如下列範例所示:nodeSelector
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi"
根據用途將 COMPUTE_CLASS
換成運算類別名稱,例如 Scale-Out
。如果選取 Performance
,您也可以在節點選取器中選取 Compute Engine 機器系列。如果未指定機器系列,GKE 會根據區域供應情形使用 C4 機器系列。如需操作說明,請參閱「以最佳效能執行 CPU 密集型工作負載」。
nodeAffinity
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: terminationGracePeriodSeconds: 25 containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi" ephemeral-storage: "1Gi" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/compute-class operator: In values: - "COMPUTE_CLASS"
根據用途將 COMPUTE_CLASS
替換為運算類別名稱,例如 Scale-Out
。如果選取 Performance
,您也可以在節點選取器中選取 Compute Engine 機器系列。如果未指定機器系列,GKE 會根據區域可用性使用 C4 機器系列。如需操作說明,請參閱「以最佳效能執行 CPU 密集型工作負載」。
您也可以為 Spot Pod 要求特定運算類別。
指定資源要求
選擇運算類別時,請務必根據所選類別的資源要求下限和上限,為 Pod 指定資源要求。如果要求低於下限,Autopilot 會自動調高要求。不過,如果要求數量超過上限,Autopilot 就不會部署 Pod,並會顯示錯誤訊息。
選擇 CPU 架構
部分運算類別支援多個 CPU 架構。舉例來說,Scale-Out
類別同時支援 Arm 和 x86 架構。如果未要求特定架構,Autopilot 會佈建具有指定運算級別預設架構的節點。如果 Pod 需要使用其他架構,請在節點選取器或節點親和性規則中,連同運算類別要求一併要求該架構。您要求使用的運算類別必須支援您指定的 CPU 架構。
如需操作說明,請參閱「在 Arm 架構上部署 Autopilot Pod」。