您可以在加密的機密 Google Kubernetes Engine 節點上執行工作負載,加密使用中的 GPU 工作負載資料。本頁面說明安全工程師和作業人員如何提升加速工作負載 (例如 AI/機器學習工作) 中資料的安全性。您應該熟悉下列概念:
在機密 GKE 節點上執行 GPU 工作負載
如要為 GPU 工作負載要求機密 GKE 節點,請使用下列任一方法:
- 使用 GKE ComputeClasses,為 GPU 工作負載自動佈建機密 GKE 節點。您可以在 Autopilot 叢集和 Standard 叢集中使用這個方法。詳情請參閱「使用 ComputeClass 在機密 GKE 節點上執行 GPU 工作負載」一節。
- 為 Standard 叢集或節點集區手動設定機密 GKE 節點。詳情請參閱「在 GKE Standard 中手動設定機密 GKE 節點」一節。
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
需求條件和限制
無論您選擇哪種機密 GKE 節點設定方法,都必須符合下列所有規定:
- 節點必須位於支援 NVIDIA 機密運算的區域。詳情請參閱「查看支援的區域」。
- 節點只能使用一個 NVIDIA H100 80 GB GPU 和
a3-highgpu-1g
機器類型。 - 節點必須使用 Intel TDX 機密運算技術。
- 您必須在節點位置擁有先占 H100 80 GB GPU 的配額 (
compute.googleapis.com/preemptible_nvidia_h100_gpus
)。如要進一步瞭解如何管理配額,請參閱「查看及管理配額」。
除了符合這些條件外,您還必須符合特定條件,具體取決於您選擇的機密 GKE 節點設定方法,如下表所述:
設定方法 | 需求條件 | 限制 |
---|---|---|
ComputeClasses |
|
|
在標準模式中手動設定 |
|
|
必要的角色
如要取得建立機密 GKE 節點所需的權限,請要求管理員在 Google Cloud 專案中授予您下列 IAM 角色:
-
建立機密 GKE 節點:
Kubernetes Engine 叢集管理員 (
roles/container.clusterAdmin
) -
部署 GPU 工作負載:
Kubernetes Engine 開發人員 (
roles/container.developer
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
使用 ComputeClass 執行機密 GPU 工作負載
您可以在 ComputeClass 中定義機密 GKE 節點設定。ComputeClass 是 Kubernetes 自訂資源,可讓您以宣告方式設定 GKE 自動調度和排程的節點設定。只要 Autopilot 或 Standard 叢集執行 GKE 1.33.3-gke.1392000 以上版本,您就能按照本節中的步驟操作。
如要使用 ComputeClass 在機密 GKE 節點上執行 GPU 工作負載,請按照下列步驟操作:
將下列 ComputeClass 資訊清單儲存為 YAML 檔案:
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTECLASS_NAME spec: nodePoolConfig: confidentialNodeType: TDX priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - gpu: type: nvidia-h100-80gb count: 1 driverVersion: default spot: true activeMigration: optimizeRulePriority: true nodePoolAutoCreation: enabled: true whenUnsatisfiable: DoNotScaleUp
更改下列內容:
COMPUTECLASS_NAME
:ComputeClass 的名稱。ZONE1,ZONE2
:以半形逗號分隔的清單,列出要在其中建立節點的區域,例如['us-central1-a','us-central1-b']
。指定支援 Intel TDX 機密運算技術的區域。詳情請參閱「查看支援的區域」。
建立 ComputeClass:
kubectl apply -f PATH_TO_MANIFEST
請將
PATH_TO_MANIFEST
替換為 ComputeClass 資訊清單檔案的路徑。如要在機密 GKE 節點上執行 GPU 工作負載,請在工作負載資訊清單中選取 ComputeClass。舉例來說,請將下列 Deployment 資訊清單 (選取 ComputeClass 和 GPU) 儲存為 YAML 檔案:
apiVersion: apps/v1 kind: Deployment metadata: name: confidential-gpu-deployment labels: app: conf-gpu spec: selector: matchLabels: app: conf-gpu replicas: 1 template: metadata: labels: app: conf-gpu spec: nodeSelector: cloud.google.com/compute-class: COMPUTECLASS_NAME containers: - name: example-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: limits: cpu: "4" memory: "16Gi" nvidia.com/gpu: 1 requests: cpu: "4" memory: "16Gi"
將
COMPUTECLASS_NAME
換成您建立的 ComputeClass 名稱。建立 Deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
將
PATH_TO_DEPLOYMENT_MANIFEST
替換為 Deployment 資訊清單的路徑。
建立 GPU 工作負載時,GKE 會使用 ComputeClass 中的設定,建立附加 GPU 的機密 GKE 節點。
在 GKE Standard 中手動設定機密 GKE 節點
您可以在 Standard 模式的叢集或節點集區中,透過機密 GKE 節點執行 GPU 工作負載。如果是 GPU 工作負載,機密 GKE 節點必須使用 Intel TDX 機密運算技術。
在新 Standard 叢集中啟用機密 GKE 節點
您可以為整個標準叢集啟用機密 GKE 節點,這樣一來,您建立的每個 GPU 節點集區都會使用相同的機密運算技術。建立使用機密 GKE 節點的新 Standard 模式叢集,以執行 GPU 工作負載時,請務必指定下列叢集設定:
- 位置:支援 NVIDIA 機密運算的區域或可用區。 詳情請參閱「查看支援的區域」。
- 機密運算類型:Intel TDX
叢集版本:視您要如何安裝 GPU 驅動程式,選擇下列其中一個版本:
- 手動安裝 GPU 驅動程式:1.32.2-gke.1297000 以上版本。
- 自動安裝 GPU 驅動程式:1.33.3-gke.1392000 以上版本。
您可以選擇為 GKE 在叢集中建立的預設節點集區設定 GPU。不過,我們建議您為 GPU 使用獨立的節點集區,這樣叢集中至少會有一個節點集區可以執行任何工作負載。
詳情請參閱「在 Standard 叢集上啟用機密 GKE 節點」。
在 Standard 節點集區中使用機密 GKE 節點和 GPU
如果叢集未啟用機密 GKE 節點,您可以在特定新或現有的 GPU 節點集區中啟用機密 GKE 節點。控制層和節點集區必須符合「可用性」一節中的規定。設定節點集區時,您可以選擇自動或手動安裝 GPU 驅動程式。
如要建立使用機密 GKE 節點的新 GPU 節點集區,請選取下列其中一個選項:
主控台
在 Google Cloud 控制台中,前往「Kubernetes clusters」(Kubernetes 叢集) 頁面:
按一下要修改的標準模式叢集名稱。
按一下
「Add node pool」(新增節點集區)。系統會開啟「新增節點集區」頁面。在「Node pool details」(節點集區詳細資料) 窗格中,執行下列操作:
在導覽選單中,按一下「節點」。
在「設定節點設定」窗格中,執行下列操作:
- 在「Machine configuration」(機器設定) 區段中,按一下「GPU」。
- 在「GPU type」(GPU 類型) 選單中,選取「NVIDIA H100 80GB」。
- 在「Number of GPUs」(GPU 數量) 選單中,選取「1」。
- 確認未選取「啟用 GPU 共用功能」。
在「GPU 驅動程式安裝」部分,選取下列任一選項:
Google 管理:GKE 會自動安裝驅動程式。如果選取這個選項,請在「版本」下拉式清單中,選取下列其中一個驅動程式版本:
- 預設:安裝節點 GKE 版本的預設驅動程式版本。需要 GKE 1.33.3-gke.1392000 以上版本。
- 最新:為節點 GKE 版本安裝最新版驅動程式。需要 GKE 1.33.3-gke.1392000 以上版本。
使用者自行管理:略過自動安裝驅動程式。如果選取這個選項,必須 手動安裝相容的 GPU 驅動程式。需要 1.32.2-gke.1297000 以上版本。
在「Machine type」(機器類型) 部分中,確認機器類型為
a3-highgpu-1g
。選取「啟用 Spot VM 上的節點」或設定彈性啟動並排隊佈建。
準備好建立節點集區時,請按一下「建立」。
gcloud
您可以建立 GPU 節點集區,在 Spot VM 上執行機密 GKE 節點,或使用排隊佈建的彈性啟動。
建立 GPU 節點集區,在 Spot VM 上執行機密 GKE 節點:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --confidential-node-type=tdx --location=LOCATION \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --spot --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=DRIVER_VERSION \ --machine-type=a3-highgpu-1g
更改下列內容:
NODE_POOL_NAME
:新節點集區的名稱。CLUSTER_NAME
:現有叢集的名稱。LOCATION
:新節點集區的位置。 該位置必須支援在機密 GKE 節點中使用 GPU。NODE_LOCATION1,NODE_LOCATION2,...
:以逗號分隔的可用區清單,用於執行節點。這些區域必須支援使用 NVIDIA 機密運算。詳情請參閱「查看支援的區域」。DRIVER_VERSION
:要安裝的 GPU 驅動程式版本。請指定下列其中一個值:default
:為節點 GKE 版本安裝預設的驅動程式版本。需要 GKE 1.33.3-gke.1392000 以上版本。latest
:為節點 GKE 版本安裝最新版驅動程式。需要 GKE 1.33.3-gke.1392000 以上版本。disabled
:略過自動安裝驅動程式。如果您指定這個值,必須 手動安裝相容的 GPU 驅動程式。需要 1.32.2-gke.1297000 以上版本。
使用彈性啟動和排隊佈建功能,建立執行機密 GKE 節點的 GPU 節點集區:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --machine-type=a3-highgpu-1g --confidential-node-type=tdx \ --location=LOCATION \ --flex-start --enable-queued-provisioning \ --enable-autoscaling --num-nodes=0 --total-max-nodes=TOTAL_MAX_NODES \ --location-policy=ANY --reservation-affinity=none --no-enable-autorepair \ --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=DRIVER_VERSION
將
TOTAL_MAX_NODES
替換為節點集區可自動調度的節點數量上限。如要進一步瞭解彈性啟動搭配佇列佈建的設定選項,請參閱「使用彈性啟動搭配佇列佈建,執行大規模工作負載」。
如要更新現有的節點集區,改用 Intel TDX 機密運算技術,請參閱「更新現有的節點集區」。
手動安裝支援機密 GKE 節點的 GPU 驅動程式
如果您在建立或更新節點集區時,未啟用自動安裝驅動程式,就必須手動安裝支援 Confidential GKE 節點的 GPU 驅動程式。
這項變更需要重新建立節點,可能會導致執行中的工作負載中斷。如要瞭解這項特定變更的詳細資訊,請在「手動變更,使用節點升級策略重建節點,但不遵守維護政策」表格中,找出對應的資料列。如要進一步瞭解節點更新,請參閱「規劃節點更新中斷」。
如需操作說明,請參閱「手動安裝 NVIDIA GPU 驅動程式」一文中的「COS」分頁。
疑難排解
如需疑難排解資訊,請參閱排解 GKE 中的 GPU 問題。