Per consentire agli sviluppatori di distribuire carichi di lavoro AI/ML nei cluster TKG Service, l'operatore del cluster può creare uno o più cluster Kubernetes e installare gli operatori di rete e GPU NVIDIA in ogni cluster.

Passaggio 1 dell'operatore: verificare i prerequisiti

Queste istruzioni presuppongono che l'amministratore di vSphere abbia configurato l'ambiente per NVIDIA GPU. Vedere Workflow per l'amministratore di vSphere sulla distribuzione dei carichi di lavoro AI/ML nei cluster TKGS.

Queste istruzioni presuppongono che si stia installando l'edizione NVIDIA AI Enterprise (NVAIE) dell'operatore GPU, che è preconfigurata e ottimizzato per l'utilizzo con vSphere IaaS control plane. L'operatore GPU NVAIE è diverso dall'operatore GPU disponibile nel catalogo NGC pubblico. Per ulteriori informazioni, vedere NVIDIA AI Enterprise.

Queste istruzioni presuppongono che si stia utilizzando una versione dell'operatore GPU NVAIE e del driver vGPU che disponga di un VIB corrispondente per ESXi. Per ulteriori informazioni, vedere Versioni dell'operatore GPU NVIDIA.

Quando si esegue il provisioning del cluster TKG, è necessario utilizzare l'edizione Ubuntu di TKR. Con TKG nel Supervisore di vSphere 8, l'edizione di Ubuntu viene specificata nel codice YAML del cluster utilizzando l'annotazione.

Passaggio 2 dell'operatore: eseguire il provisioning di un cluster TKG per NVIDIA vGPU

VMware offre supporto TKGS nativo per GPU virtuali NVIDIA nei server certificati NVIDIA GPU con operatore NVIDIA GPU e operatore di rete NVIDIA. Questi operatori vengono installati in un cluster del carico di lavoro TKGS. Per eseguire il provisioning di un cluster TKGS per l'hosting dei carichi di lavoro vGPU, completare i passaggi seguenti.
  1. Installare Strumenti CLI Kubernetes di vSphere.

    Vedere Installazione di Strumenti CLI Kubernetes di vSphere..

  2. Utilizzando Plug-in vSphere per kubectl, eseguire l'autenticazione con Supervisore.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
    Nota: Il nome di dominio completo può essere utilizzato solo se Supervisore è abilitato con il nome di dominio completo.
  3. Utilizzando kubectl, passare al contesto dell'istanza di Spazio dei nomi vSphere creata dall'amministratore di vSphere per il cluster vGPU TKGS.
    kubectl config get-contexts
    kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
  4. Ottenere il nome della classe della macchina virtuale personalizzata con il profilo vGPU creato dall'amministratore di vSphere.
    kubectl get virtualmachineclass
    Nota: La classe della macchina virtuale deve essere associata allo Spazio dei nomi vSphere di destinazione.
  5. Recuperare il valore di TKR NAME per l'istanza di Ubuntu Release di Tanzu Kubernetes che l'amministratore di vSphere ha sincronizzato dalla libreria dei contenuti e ha aggiunto in Spazio dei nomi vSphere.
    kubectl get tkr
  6. Creare il file YAML per il provisioning del cluster TKG abilitato per vGPU.
    1. Decidere quale API di provisioning del cluster TKGS si intende utilizzare, ovvero l'API v1alpha3 o l'API v1beta1: API di provisioning del cluster TKG.
    2. In base all'API scelta, fare riferimento all'esempio di Ubuntu per tale API.
      Nota: È necessario utilizzare un'immagine del sistema operativo Ubuntu. Non è possibile utilizzare il sitema operativo Photon.
    3. Utilizzare le informazioni raccolte dall'output dei comandi precedenti per personalizzare la specifica del cluster TKGS.
  7. Eseguire il provisioning del cluster eseguendo il comando kubectl seguente.
    kubectl apply -f CLUSTER-NAME.yaml
    Ad esempio:
    kubectl apply -f tkg-gpu-cluster-1.yaml
  8. Verificare il provisioning del cluster.
    Monitorare la distribuzione dei nodi del cluster mediante kubectl.
    kubectl get tanzukubernetesclusters -n NAMESPACE
  9. Accedere al cluster vGPU TKGS utilizzando Plug-in vSphere per kubectl.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  10. Verificare il cluster.
    Utilizzare i comandi seguenti per verificare il cluster:
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources

Passaggio 3 dell'operatore: installare l'operatore della rete NVIDIA

L'operatore della rete NVIDIA utilizza le risorse personalizzate di Kubernetes e il framework dell'operatore per ottimizzare la rete per la vGPU. Per ulteriori informazioni, vedere Operatore della rete NVIDIA.
  1. Verificare di aver effettuato l'accesso al cluster del carico di lavoro vGPU TKGS e che il contesto sia impostato sullo spazio dei nomi del cluster del carico di lavoro vGPU TKGS.

    Se necessario, fare riferimento alle istruzioni Passaggio 2 dell'operatore: eseguire il provisioning di un cluster TKG per NVIDIA vGPU.

  2. Installare Helm facendo riferimento alla documentazione di Helm.
  3. Recuperare il grafico Helm dell'operatore della rete NVIDIA.
    helm fetch https://helm.ngc.nvidia.com/nvaie/charts/network-operator-v1.1.0.tgz --username='$oauthtoken' --password=<YOUR API KEY> --untar
  4. Creare un file YAML per i valori della configurazione.
    vi values.yaml
  5. Popolare il file values.yaml con le informazioni seguenti.
    deployCR: true
     ofedDriver:
      deploy: true
     rdmaSharedDevicePlugin:
      deploy: true
      resources:
       - name: rdma_shared_device_a
       vendors: [15b3]
       devices: [ens192]
  6. Installare l'operatore della rete NVIDIA utilizzando il comando seguente.
    helm install network-operator -f ./values.yaml -n network-operator --create-namespace --wait network-operator/

Passaggio 4 dell'operatore: installare l'operatore della GPU NVIDIA

NVIDIA fornisce un operatore GPU preconfigurato per i clienti di NVIDIA AI Enterprise. Queste istruzioni presuppongono che si stia utilizzando questa versione preconfigurata dell'operatore della GPU. Queste istruzioni si basano sulle istruzioni fornite da NVIDIA per l'Installazione dell'operatore GPU ma sono state aggiornate per TKG in vSphere 8.

Completare i passaggi seguenti per installare l'operatore GPU NVIDIA AI Enterprise nel cluster TKG di cui è stato eseguito il provisioning.
  1. Verificare di aver effettuato l'accesso al cluster del carico di lavoro vGPU TKGS e che il contesto sia impostato sullo spazio dei nomi del cluster del carico di lavoro vGPU TKGS.

    Se necessario, fare riferimento alle istruzioni Passaggio 2 dell'operatore: eseguire il provisioning di un cluster TKG per NVIDIA vGPU.

  2. Installare Helm facendo riferimento alla documentazione di Helm, se non è già installato.
  3. Creare lo spazio dei nomi Kubernetes gpu-operator.
    kubectl create namespace gpu-operator
  4. Creare un file di configurazione della licenza di vGPU vuoto.
    sudo touch gridd.conf
  5. Generare e scaricare un token di licenza del client NLS.

    Fare riferimento alla sezione 4.6 relativa alla generazione di un token di configurazione del client in NVIDIA License System User Guide.

  6. Rinominare il token di licenza del client NLS scaricato in client_configuration_token.tok.
  7. Creare l'oggetto ConfigMap licensing-config nello spazio dei nomi gpu-operator.
    Includere il file di configurazione della licenza vGPU ( gridd.conf) e il token di licenza del client NLS ( *.tok) in questa ConfigMap
    kubectl create configmap licensing-config \
        -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
  8. Creare un segreto di pull dell'immagine per il registro privato che contiene il driver di grafica del software NVIDIA vGPU containerizzato per Linux da utilizzare con l'operatore GPU NVIDIA.
    Creare il segreto di pull dell'immagine nello spazio dei nomi gpu-operator con il nome del segreto del registro ngc-secret e il nome del registro privato nvcr.io/nvaie. Includere la chiave API NGC e l'indirizzo e-mail nei campi indicati.
    kubectl create secret docker-registry ngc-secret \
    --docker-server=‘nvcr.io/nvaie’ \
    --docker-username=‘$oauthtoken’ \
    --docker-password=<YOUR_NGC_API_KEY> \
    --docker-email=<YOUR_EMAIL_ADDRESS> \
    -n gpu-operator
  9. Scaricare il grafico di Helm per la versione 2.2 dell'operatore GPU NVAIE.
    Sostituire YOUR API KEY.
    helm fetchhttps://helm.ngc.nvidia.com/nvaie/charts/gpu-operator-2-2-v1.11.1.tgz--username=‘$oauthtoken’ \
    --password=<YOUR API KEY>
  10. Installare la versione 2.2 dell'operatore GPU NVAIE nel cluster TKG.
    helm install gpu-operator ./gpu-operator-2-2-v1.11.1.tgz -n gpu-operator

Passaggio 5 dell'operatore: distribuire un carico di lavoro AI/ML

Il catalogo di NVIDIA GPU Cloud offre diverse immagini di container predefinite che è possibile utilizzare per eseguire carichi di lavoro AI/ML nei cluster di Tanzu Kubernetes abilitati per vGPU. Per ulteriori informazioni sulle immagini disponibili, vedere la documentazione di NGC.