Esegui il deployment dei carichi di lavoro dei container GPU

Questa pagina descrive come eseguire il deployment dei carichi di lavoro dei container GPU nello SKU ottimizzato per l'AI di Google Distributed Cloud (GDC) Sandbox.

Esegui il deployment dei carichi di lavoro dei container GPU

Lo SKU ottimizzato per l'IA di GDC Sandbox include quattro GPU NVIDIA H100 80GB HBM3 all'interno del cluster org-infra. Queste GPU sono accessibili utilizzando il nome della risorsa nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3. Questa sezione descrive come aggiornare una configurazione del contenitore per utilizzare queste GPU.

Le GPU nello SKU ottimizzato per l'AI della sandbox GDC sono associate a un progetto preconfigurato, "sandbox-gpu-project". Per utilizzare le GPU, devi eseguire il deployment del contenitore utilizzando questo progetto.

Prima di iniziare

  • Per eseguire comandi sul cluster di infrastruttura dell'organizzazione, assicurati di disporre del kubeconfig del cluster org-1-infra, come descritto in Utilizzare i cluster:

    • Configura ed esegui l'autenticazione con la riga di comando gdcloud e
    • genera il file kubeconfig per il cluster di infrastruttura dell'organizzazione e assegna il relativo percorso alla variabile di ambiente KUBECONFIG.
  • Per eseguire i carichi di lavoro, devi disporre del ruolo sandbox-gpu-admin. Per impostazione predefinita, il ruolo viene assegnato all'utente platform-admin. Puoi assegnare il ruolo ad altri utenti accedendo come platform-admin ed eseguendo il seguente comando:

    kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \
    --user=${USER} --namespace=sandbox-gpu-project
    

Configura un container per utilizzare le risorse GPU

  1. Aggiungi i campi .containers.resources.requests e .containers.resources.limits alla specifica del container per richiedere GPU per il carico di lavoro. Tutti i container all'interno di sandbox-gpu-project possono richiedere fino a un totale di 4 GPU nell'intero progetto. L'esempio seguente richiede una GPU come parte della specifica del container.

    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. I container richiedono anche autorizzazioni aggiuntive per accedere alle GPU. Per ogni container che richiede GPU, aggiungi le seguenti autorizzazioni alla specifica del container:

    securityContext:
    seLinuxOptions:
      type: unconfined_t
    
  2. Applica il file manifest del contenitore:

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