借助 Google Distributed Cloud (GDC) Sandbox AI Optimized SKU,您可以在支持 GPU 的容器中运行加速 AI 和计算密集型应用。在本文档中,您将配置容器资源请求和安全设置,以便在专用 NVIDIA H100 GPU 上部署工作负载。
部署 GPU 容器工作负载
GDC Sandbox AI 优化型 SKU 在 org-infra 集群中包含四个 NVIDIA H100 80GB HBM3 GPU。您可以使用资源名称 nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3 访问这些 GPU。本部分介绍了如何更新容器配置以使用这些 GPU。
GDC Sandbox AI 优化型 SKU 中的 GPU 与预配置的项目“sandbox-gpu-project”(仅存在于 GDC Sandbox AI 优化型 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}