Damit Entwickler KI-/ML-Arbeitslasten auf TKG-Dienstclustern bereitstellen können, erstellen Sie als Cluster-Operator einen oder mehrere Kubernetes-Cluster und installieren Sie die NVIDIA-Netzwerk- und GPU-Operatoren auf diesen Clustern.

Schritt 1 für Operatoren: Überprüfen der Voraussetzungen

Bei diesen Anweisungen wird davon ausgegangen, dass der vSphere-Administrator die Umgebung für NVIDIA GPU eingerichtet hat. Weitere Informationen finden Sie unter vSphere-Administrator-Workflow für die Bereitstellung von KI-/ML-Arbeitslasten auf TKGS-Clustern.

Bei diesen Anweisungen wird davon ausgegangen, dass Sie die NVIDIA AI Enterprise (NVAIE)-Edition des GPU-Operators installieren, der für die Verwendung mit vSphere IaaS control plane vorkonfiguriert und optimiert ist. Der NVAIE GPU Operator unterscheidet sich vom GPU-Operator, der im öffentlichen NGC-Katalog verfügbar ist. Weitere Informationen finden Sie unter NVIDIA AI Enterprise.

Bei diesen Anweisungen wird davon ausgegangen, dass Sie eine Version des NVAIE GPU-Operators und des vGPU-Treibers verwenden, die über ein passendes VIB für ESXi verfügt. Weitere Informationen finden Sie unter NVIDIA GPU Operator-Versionsverwaltung.

Bei der Bereitstellung des TKG-Clusters müssen Sie die Ubuntu-Edition des TKR verwenden. Mit TKG auf vSphere 8 Supervisor wird die Ubuntu-Edition in der Cluster-YAML über eine Anmerkung angegeben.

Schritt 2 für Operatoren: Bereitstellen eines TKGS-Clusters für NVIDIA vGPU

VMware bietet native TKGS-Unterstützung für virtuelle NVIDIA GPUs auf NVIDIA GPU-zertifizierten Servern mit NVIDIA GPU-Operator und NVIDIA-Netzwerkoperator. Sie installieren diese Operatoren in einem TKGS-Arbeitslastcluster. Führen Sie die folgenden Schritte aus, um einen TKGS-Cluster zum Hosten von vGPU-Arbeitslasten bereitzustellen.
  1. Installieren Sie den Kubernetes-CLI-Tools für vSphere.

    Weitere Informationen finden Sie unter Installieren des Kubernetes-CLI-Tools für vSphere.

  2. Authentifizieren Sie sich mithilfe des vSphere-Plug-In für kubectl beim Supervisor.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
    Hinweis: Der FQDN kann nur verwendet werden, wenn Supervisor damit aktiviert ist.
  3. Führen Sie mithilfe von kubectl einen Kontextwechsel zum vSphere-Namespace durch, den der vSphere-Administrator für den TKGS vGPU-Cluster erstellt hat.
    kubectl config get-contexts
    kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
  4. Rufen Sie den Namen der benutzerdefinierten VM-Klasse mit dem vGPU-Profil ab, das der vSphere-Administrator erstellt hat.
    kubectl get virtualmachineclass
    Hinweis: Die VM-Klasse muss an den Ziel- vSphere-Namespace gebunden werden.
  5. Rufen Sie TKR NAME für die Ubuntu-Tanzu Kubernetes-Version ab, die der vSphere-Administrator über die Inhaltsbibliothek synchronisiert und dem vSphere-Namespace hinzugefügt hat.
    kubectl get tkr
  6. Erstellen Sie die YAML für die Bereitstellung des vGPU-fähigen TKG-Clusters.
    1. Geben Sie an, welche Bereitstellungs-API für TKGS-Cluster verwendet werden soll: v1alpha3-API oder v1beta1-API: APIs für die TKG-Cluster-Bereitstellung.
    2. Abhängig von der ausgewählten API finden Sie entsprechende Informationen im Ubuntu-Beispiel für diese API.
      Hinweis: Sie müssen ein Ubuntu-Betriebssystem-Image verwenden. Photon OS kann nicht verwendet werden.
    3. Verwenden Sie die Informationen, die Sie aus der Ausgabe der vorhergehenden Befehle abgerufen haben, um die Spezifikation des TKGS-Clusters anzupassen.
  7. Stellen Sie den Cluster bereit, indem Sie den folgenden kubectl-Befehl ausführen.
    kubectl apply -f CLUSTER-NAME.yaml
    Beispiel:
    kubectl apply -f tkg-gpu-cluster-1.yaml
  8. Überprüfen Sie die Clusterbereitstellung.
    Überwachen Sie die Bereitstellung von Clusterknoten mithilfe von kubectl.
    kubectl get tanzukubernetesclusters -n NAMESPACE
  9. Melden Sie sich beim TKGS vGPU-Cluster mithilfe des vSphere-Plug-In für kubectl an.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  10. Überprüfen Sie den Cluster.
    Verwenden Sie die folgenden Befehle zum Überprüfen des Clusters:
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources

Schritt 3 für Operatoren: Installieren des NVIDIA-Netzwerkoperators

Der NVIDIA-Netzwerkoperator nutzt benutzerdefinierte Kubernetes-Ressourcen und das Operator-Framework, um das Netzwerk für vGPU zu optimieren. Weitere Informationen finden Sie unter NVIDIA-Netzwerkoperator.
  1. Stellen Sie sicher, dass Sie beim TKGS vGPU-Arbeitslastcluster angemeldet sind und dass der Kontext auf den Namespace des TKGS vGPU-Arbeitslastclusters festgelegt ist.

    Beachten Sie gegebenenfalls die Anweisungen unter Schritt 2 für Operatoren: Bereitstellen eines TKGS-Clusters für NVIDIA vGPU.

  2. Installieren Sie Helm und beachten Sie dabei die Helm-Dokumentation.
  3. Rufen Sie das Helm-Diagramm des NVIDIA-Netzwerkoperators ab.
    helm fetch https://helm.ngc.nvidia.com/nvaie/charts/network-operator-v1.1.0.tgz --username='$oauthtoken' --password=<YOUR API KEY> --untar
  4. Erstellen Sie eine YAML-Datei für die Konfigurationswerte.
    vi values.yaml
  5. Befüllen Sie die Datei values.yaml mit den folgenden Informationen.
    deployCR: true
     ofedDriver:
      deploy: true
     rdmaSharedDevicePlugin:
      deploy: true
      resources:
       - name: rdma_shared_device_a
       vendors: [15b3]
       devices: [ens192]
  6. Installieren Sie den NVIDIA-Netzwerkoperator mithilfe des folgenden Befehls.
    helm install network-operator -f ./values.yaml -n network-operator --create-namespace --wait network-operator/

Schritt 4 für Operatoren: Installieren des NVIDIA GPU-Operators

NVIDIA stellt Kunden einen vorkonfigurierten GPU-Operator für NVIDIA AI Enterprise zur Verfügung. Bei diesen Anweisungen wird davon ausgegangen, dass Sie diese vorkonfigurierte Version des GPU-Operators verwenden. Diese Anweisungen basieren auf den Anweisungen von NVIDIA zum Installieren des GPU-Operators, wurden aber für TKG auf vSphere 8 aktualisiert.

Führen Sie die folgenden Schritte aus, um den GPU-Operator NVIDIA AI Enterprise in dem von Ihnen bereitgestellten TKG-Cluster zu installieren.
  1. Stellen Sie sicher, dass Sie beim TKGS vGPU-Arbeitslastcluster angemeldet sind und dass der Kontext auf den Namespace des TKGS vGPU-Arbeitslastclusters festgelegt ist.

    Beachten Sie gegebenenfalls die Anweisungen unter Schritt 2 für Operatoren: Bereitstellen eines TKGS-Clusters für NVIDIA vGPU.

  2. Installieren Sie Helm gegebenenfalls unter Verwendung der Helm-Dokumentation.
  3. Erstellen Sie den Kubernetes-Namespace gpu-operator.
    kubectl create namespace gpu-operator
  4. Erstellen Sie eine leere vGPU-Lizenzkonfigurationsdatei.
    sudo touch gridd.conf
  5. Generieren Sie ein NLS-Clientlizenztoken und laden Sie es herunter.

    Weitere Informationen finden Sie in Abschnitt 4.6. Generieren eines Clientkonfigurationstokens des Benutzerhandbuchs zum NVIDIA-Lizenzsystem.

  6. Benennen Sie das NLS-Clientlizenztoken um, das Sie nach client_configuration_token.tok heruntergeladen haben.
  7. Erstellen Sie das ConfigMap-Objekt licensing-config im Namespace gpu-operator.
    Berücksichtigen Sie die Konfigurationsdatei für die vGPU-Lizenz ( gridd.conf) und das NLS-Clientlizenztoken ( *.tok) in dieser ConfigMap.
    kubectl create configmap licensing-config \
        -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
  8. Erstellen Sie einen geheimen Schlüssel zum Abrufen von Images für die private Registrierung, die den containerisierten NVIDIA vGPU-Softwaregrafiktreiber für Linux zur Verwendung mit NVIDIA GPU Operator enthält.
    Erstellen Sie einen geheimen Schlüssel zum Abrufen von Images im Namespace gpu-operator mit dem Namen des Registrierungsgeheimschlüssels ngc-secret und dem Namen der privaten Registrierung nvcr.io/nvaie. Schließen Sie den NGC-API-Schlüssel und die E-Mail-Adresse in die angegebenen Felder ein.
    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. Laden Sie das Helm-Diagramm für NVAIE GPU Operator, Version 2.2 herunter.
    Ersetzen Sie „IHR API-SCHLÜSSEL“.
    helm fetchhttps://helm.ngc.nvidia.com/nvaie/charts/gpu-operator-2-2-v1.11.1.tgz--username=‘$oauthtoken’ \
    --password=<YOUR API KEY>
  10. Installieren Sie NVAIE GPU Operator, Version 2.2 im TKG-Cluster.
    helm install gpu-operator ./gpu-operator-2-2-v1.11.1.tgz -n gpu-operator

Schritt 5 für Operatoren: Bereitstellen einer KI-/ML-Arbeitslast

Der NVIDIA GPU-Cloud-Katalog enthält mehrere standardmäßige Container-Images, die Sie zum Ausführen von KI-/ML-Arbeitslasten auf Ihren vGPU-fähigen Tanzu Kubernetes-Clustern verwenden können. Weitere Informationen zu den verfügbaren Images finden Sie in der Dokumentation zu NGC.