Der VM-Dienst im Supervisor in vSphere with Tanzu ermöglicht Datenwissenschaftlern und DevOps-Ingenieuren die Bereitstellung und Ausführung von Deep Learning-VMs mithilfe der Kubernetes-API.

Als Datenwissenschaftler oder DevOps-Ingenieur verwenden Sie kubectl, um eine Deep Learning-VM in dem vom Cloud-Administrator konfigurierten Namespace bereitzustellen.

Voraussetzungen

Stellen Sie mit dem Cloud-Administrator sicher, dass die folgenden Voraussetzungen für die KI-fähige Infrastruktur erfüllt sind.

Prozedur

  1. Melden Sie sich bei der Supervisor-Steuerungsebene an.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
  2. Überprüfen Sie, ob alle erforderlichen VM-Ressourcen, wie z. B. VM-Klassen und VM-Images, im Namespace vorhanden sind.

    Weitere Informationen finden Sie unter Anzeigen der in einem Namespace verfügbaren VM-Ressourcen in vSphere with Tanzu.

  3. Bereiten Sie die YAML-Datei für die Deep Learning-VM vor.

    Verwenden Sie die vm-operator-api und legen Sie die OVF-Eigenschaften als ConfigMap-Objekt fest.

    Sie können beispielsweise eine YAML-Spezifikation example-dl-vm.yaml für eine Beispiel-Deep Learning-VM erstellen, auf der PyTorch ausgeführt wird.

    apiVersion: vmoperator.vmware.com/v1alpha1
    kind: VirtualMachine
    metadata:
      name: example-dl-vm
      namespace: vpaif-ns
      labels:
        app: example-dl-app
    spec:
      className: gpu-a30
      imageName: vmi-xxxxxxxxxxxxx
      powerState: poweredOn
      storageClass: tanzu-storage-policy
      vmMetadata:
        configMapName: example-dl-vm-config
        transport: OvfEnv
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: example-dl-vm-config
      namespace: vpaif-ns
    data:
      user-data: I2Nsb3VkLWNvbmZpZwogICAgd3JpdGVfZmlsZXM6CiAgICAtIHBhdGg6IC9vcHQvZGx2bS9kbF9hcHAuc2gKICAgICAgcGVybWlzc2lvbnM6ICcwNzU1JwogICAgICBjb250ZW50OiB8CiAgICAgICAgIyEvYmluL2Jhc2gKICAgICAgICBkb2NrZXIgcnVuIC1kIC1wIDg4ODg6ODg4OCBudmNyLmlvL252aWRpYS9weXRvcmNoOjIzLjEwLXB5MyAvdXNyL2xvY2FsL2Jpbi9qdXB5dGVyIGxhYiAtLWFsbG93LXJvb3QgLS1pcD0qIC0tcG9ydD04ODg4IC0tbm8tYnJvd3NlciAtLU5vdGVib29rQXBwLnRva2VuPScnIC0tTm90ZWJvb2tBcHAuYWxsb3dfb3JpZ2luPScqJyAtLW5vdGVib29rLWRpcj0vd29ya3NwYWNl
      vgpu-license: NVIDIA-client-configuration-token
      nvidia-portal-api-key: API-key-from-NVIDIA-licensing-portal
      password: password-for-vmware-user
    Hinweis: user-data ist der base64-codierte Wert für den folgenden cloud-init-Code:
    #cloud-config
        write_files:
        - path: /opt/dlvm/dl_app.sh
          permissions: '0755'
          content: |
            #!/bin/bash
            docker run -d -p 8888:8888 nvcr.io/nvidia/pytorch:23.10-py3 /usr/local/bin/jupyter lab --allow-root --ip=* --port=8888 --no-browser --NotebookApp.token='' --NotebookApp.allow_origin='*' --notebook-dir=/workspace
    apiVersion: vmoperator.vmware.com/v1alpha1
    kind: VirtualMachineService
    metadata:
      name: example-dl-vm
      namespace: vpaif-ns
    spec:
      ports:
      - name: ssh
        port: 22
        protocol: TCP
        targetPort: 22
      - name: junyperlab
        port: 8888
        protocol: TCP
        targetPort: 8888
      selector:
        app: example-dl-app
        type: LoadBalancer
  4. Wechseln Sie zum Kontext des vSphere-Namespace, der vom Cloud-Administrator erstellt wurde.

    Beispielsweise für einen Namespace mit dem Namen example-dl-vm-namespace.

    kubectl config use-context example-dl-vm-namespace
  5. Stellen Sie die Deep Learning-VM bereit.
    kubectl apply -f example-dl-vm.yaml
  6. Stellen Sie sicher, dass die VM erstellt wurde, indem Sie diese Befehle ausführen.
    kubectl get vm -n example-dl-vm.yaml
    kubectl describe virtualmachine example-dl-vm
    ping IP_address_returned_by_kubectl_describe
  7. Pingen Sie die IP-Adresse der virtuellen Maschine an, die vom angeforderten Netzwerkdienst zugewiesen wurde.

    Um die öffentliche Adresse und die Ports für den Zugriff auf die Deep Learning-VM abzurufen, rufen Sie die Details zum Lastausgleichsdienst ab, der erstellt wurde.

    kubectl get services
    NAME   TYPE           CLUSTER-IP              EXTERNAL-IP          PORT(S)                       AGE
    example-dl-vm   LoadBalancer   <internal-ip-address>   <public-IPaddress>   22:30473/TCP,8888:32180/TCP   9m40s
    

Der vGPU-Gasttreiber und die angegebene DL-Arbeitslast werden beim ersten Start der Deep Learning-VM installiert.

Sie können die Protokolle untersuchen oder das JupyterLab-Notizbuch öffnen, in dem einige der Bilder enthalten sind. Weitere Informationen finden Sie unter Deep Learning-Arbeitslasten in VMware Private AI Foundation with NVIDIA.