En esta página se describe cómo desplegar cargas de trabajo de contenedores de GPU en la SKU optimizada para IA de Google Distributed Cloud (GDC) Sandbox.
Desplegar cargas de trabajo de contenedores de GPU
La SKU de GDC Sandbox optimizada para IA incluye cuatro GPUs NVIDIA H100 de 80 GB HBM3 en el clúster org-infra. Se puede acceder a estas GPUs mediante el nombre de recurso
nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3
. En esta sección se describe cómo actualizar la configuración de un contenedor para usar estas GPUs.
Las GPUs de la SKU optimizada para IA de GDC Sandbox están asociadas a un proyecto preconfigurado, "sandbox-gpu-project". Para usar las GPUs, debes implementar el contenedor con este proyecto.
Antes de empezar
Para ejecutar comandos en el clúster de infraestructura de la organización, asegúrate de tener el archivo kubeconfig del clúster
org-1-infra
, tal como se describe en Trabajar con clústeres:- Configurar y autenticar con la línea de comandos
gdcloud
- Genera el archivo kubeconfig del clúster de infraestructura de la organización y asigna su ruta a la variable de entorno
KUBECONFIG
.
- Configurar y autenticar con la línea de comandos
Para ejecutar las cargas de trabajo, debes tener asignado el rol
sandbox-gpu-admin
. De forma predeterminada, el rol se asigna al usuarioplatform-admin
. Para asignar el rol a otros usuarios, inicia sesión comoplatform-admin
y ejecuta el siguiente comando:kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project
Configurar un contenedor para que use recursos de GPU
Añade los campos
.containers.resources.requests
y.containers.resources.limits
a la especificación del contenedor para solicitar GPUs para la carga de trabajo. Todos los contenedores del proyecto sandbox-gpu-project pueden solicitar hasta un total de 4 GPUs en todo el proyecto. En el siguiente ejemplo se solicita una GPU como parte de la especificación del contenedor.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
Los contenedores también requieren permisos adicionales para acceder a las GPUs. Por cada contenedor que solicite GPUs, añade los siguientes permisos a la especificación del contenedor:
securityContext: seLinuxOptions: type: unconfined_t
Aplica el archivo de manifiesto del contenedor:
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}