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.
- VMware Private AI Foundation with NVIDIA wird bereitgestellt und konfiguriert. Weitere Informationen finden Sie unter Bereitstellen von VMware Private AI Foundation with NVIDIA.
- Eine Inhaltsbibliothek mit Deep Learning-VMs wird dem Namespace für KI-Arbeitslasten hinzugefügt. Weitere Informationen finden Sie unter Erstellen einer Inhaltsbibliothek mit Deep Learning-VM-Images für VMware Private AI Foundation with NVIDIA.
Prozedur
- Melden Sie sich bei der Supervisor-Steuerungsebene an.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
- Ü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.
- 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
- 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
- Stellen Sie die Deep Learning-VM bereit.
kubectl apply -f example-dl-vm.yaml
- 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
- 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.