部署 GPU 容器工作负载

本页面介绍了如何在 Google Distributed Cloud (GDC) Sandbox AI 优化 SKU 上部署 GPU 容器工作负载。

部署 GPU 容器工作负载

GDC Sandbox AI 优化 SKU 在组织基础架构集群中包含四个 NVIDIA H100 80GB HBM3 GPU。这些 GPU 可通过资源名称 nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3 进行访问。本部分介绍了如何更新容器配置以使用这些 GPU。

GDC Sandbox AI 优化 SKU 中的 GPU 与预配置的项目“sandbox-gpu-project”相关联。您必须使用此项目部署容器,才能使用 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 资源

  1. .containers.resources.requests.containers.resources.limits 字段添加到容器规范中,以请求工作负载所需的 GPU。沙盒 GPU 项目中的所有容器最多可以请求整个项目中的 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
    
  1. 容器还需要额外的权限才能访问 GPU。对于每个请求 GPU 的容器,请将以下权限添加到容器规范中:

    securityContext:
    seLinuxOptions:
      type: unconfined_t
    
  2. 应用容器清单文件:

    kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \
        -n sandbox-gpu-project \
        --kubeconfig ${KUBECONFIG}