Google Distributed Cloud (GDC) 沙箱 AI 最佳化 SKU 可讓您在啟用 GPU 的容器中,執行加速 AI 和運算密集型應用程式。在本文件中,您將設定容器資源要求和安全性設定,在專屬 NVIDIA H100 GPU 上部署工作負載。
部署 GPU 容器工作負載
GDC Sandbox AI Optimized SKU 包含 org-infra 叢集中的四個 NVIDIA H100 80GB HBM3 GPU。您可以使用資源名稱 nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3 存取這些 GPU。本節說明如何更新容器設定,以便使用這些 GPU。
GDC Sandbox AI Optimized SKU 中的 GPU 與預先設定的專案「sandbox-gpu-project」相關聯 (僅存在於 GDC Sandbox AI Optimized SKU 執行個體)。您必須在 org-1-infra 叢集內使用這項專案部署容器,才能使用 GPU。
事前準備
如要對組織基礎架構叢集執行指令,請務必取得
org-1-infra叢集的 kubeconfig,詳情請參閱「使用叢集」:- 使用
gdcloud指令列進行設定和驗證, - 為組織基礎架構叢集產生 kubeconfig 檔案,並將其路徑指派給環境變數
KUBECONFIG。
- 使用
如要執行工作負載,您必須具備
sandbox-gpu-admin角色。根據預設,這個角色會指派給platform-admin使用者。如要將角色指派給其他使用者,請以platform-admin身分登入,並執行下列指令:kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project如要允許網路流量傳送至容器,您必須具備專案網路政策。詳情請參閱「建立網路政策」。
設定容器以使用 GPU 資源
在容器規格中加入
.containers.resources.requests和.containers.resources.limits欄位,為工作負載要求 GPU。sandbox-gpu-project 中的所有容器,在整個專案中最多可要求 4 個 GPU。以下範例要求一個 GPU 做為容器規格的一部分。apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
容器也需要額外權限才能存取 GPU。針對每個要求 GPU 的容器,新增
.containers.securityContext,將unconfined_t類型的securityContext.seLinuxOptions授予容器。apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 securityContext: seLinuxOptions: type: unconfined_t套用容器資訊清單檔案:
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}