Fare riferimento a questo argomento delta se si utilizza NVIDIA Delegate Licensing Server (DLS) per l'account aziendale NVIDIA AI Enterprise.

Appendice operatore del cluster per la distribuzione di carichi di lavoro AI/ML nei cluster TKG

NVIDIA fornisce un nuovo sistema NVIDIA Licensing Server (NLS) denominato DLS, acronimo di Delegate Licensing Server. Per ulteriori informazioni, fare riferimento alla documentazione di NVIDIA.

Se si utilizza DLS per l'account NVAIE, i passaggi per la preparazione e la distribuzione dell'operatore della GPU NVAIE sono diversi da quelli documentati qui: Workflow dell'operatore del cluster per la distribuzione di carichi di lavoro AI/ML nei cluster di TKG. In particolare, i passaggi 9 e 10 vengono modificati come indicato di seguito.

Passaggio 9 dell'operatore: preparazione all'installazione dell'operatore della GPU NVAIE

Completare i passaggi seguenti per preparare l'installazione dell'operatore GPU utilizzando un DLS.
  1. Crea un Secret.
    kubectl create secret docker-registry registry-secret \
      --docker-server=<users private NGC registry name> 
      --docker-username='$oauthtoken' \
      --docker-password=ZmJj…………Ri \
      --docker-email=<user-email-address> -n gpu-operator-resources
    
    Nota: La password è la chiave API utente precedentemente creata nel portale NVIDIA GPU Cloud (NGC).
  2. Recuperare un token client dal server DLS.

    Un utente che desidera utilizzare una licenza vGPU deve ottenere un token dal server delle licenze DLS denominato "Client token". Il meccanismo per eseguire questa operazione si trova nella documentazione NVIDIA.

  3. Creare un oggetto ConfigMap nel cluster TKG utilizzando il token client.

    Inserire il file Client token in un file in <path>/client_configuration_token.tok.

    Eseguire quindi il comando seguente:

    kubectl delete configmap licensing-config -n gpu-operator-resources; > gridd.conf
    kubectl create configmap licensing-config \
      -n gpu-operator-resources --from-file=./gridd.conf --from-file=./client_configuration_token.tok
    
    Nota: Il file grid.conf utilizzato da DLS è vuoto. Tuttavia, sono necessari entrambi i parametri "--from-file".

Passaggio 10 dell'operatore: installare l'operatore della GPU NVAIE

Eseguire i passaggi seguenti per installare l'operatore della GPU NVAIE utilizzando un DLS. Per ulteriori istruzioni, fare riferimento alla documentazione dell'operatore della GPU.
  1. Installare l' operatore della GPU NVAIE nel cluster TKG.
    • Installare Helm facendo riferimento alla documentazione di Helm.
    • Aggiungere il repository Helm gpu-operator.
      helm repo add nvidia https://nvidia.github.io/gpu-operator
    • Installare l'operatore della GPU utilizzando Helm.
      export PRIVATE_REGISTRY="<user’s private registry name>"
      export OS_TAG=ubuntu20.04
      export VERSION=470.63.01
      export VGPU_DRIVER_VERSION=470.63.01-grid
      export NGC_API_KEY=Zm……………Ri  <- The user’s NGC AP Key
      export REGISTRY_SECRET_NAME=registry-secret
      
      helm show chart .
      kubectl delete crd clusterpolicies.nvidia.com
      helm install gpu-operator . -n gpu-operator-resources \
        --set psp.enabled=true \
        --set driver.licensingConfig.configMapName=licensing-config \
        --set operator.defaultRuntime=containerd \
        --set driver.imagePullSecrets={$REGISTRY_SECRET_NAME} \
        --set driver.version=$VERSION \
        --set driver.repository=$PRIVATE_REGISTRY \
        --set driver.licensingConfig.nlsEnabled=true
      
  2. Verificare che DLS abbia funzionato.

    Da un pod DaemonSet del driver NVIDIA distribuito dall'operatore GPU, eseguire il comando di nvidia-smi per verificare che DLS funzioni.

    Eseguire innanzitutto il comando seguente per accedere al pod e attivare una sessione della shell:
    kubectl exec -it nvidia-driver-daemonset-cvxx6 nvidia-driver-ctr -n gpu-operator-resources – bash
    Ora è possibile eseguire il comando per verificare la configurazione di DLS.
    nvidia-smi

    Se DLS è configurato correttamente, questo comando dovrebbe restituire "Licensed" nell'output.