Damit Entwickler KI-/ML-Arbeitslasten auf TKGS-Clustern bereitstellen können, konfigurieren Sie als Cluster-Operator die Kubernetes-Umgebung zur Unterstützung von NVIDIA vGPU-Vorgängen.
Cluster-Operator-Workflow für die Bereitstellung von KI-/ML-Arbeitslasten auf TKGS-Clustern
Schritt | Aktion | Verknüpfen |
---|---|---|
0 | Überprüfen der Systemanforderungen. |
Weitere Informationen finden Sie unter Schritt 0 für Operatoren: Überprüfen der Systemanforderungen. |
1 | Herunterladen von kubectl und des vSphere-Plug-Ins für Kubectl auf die lokale Arbeitsstation. | Weitere Informationen finden Sie unter Schritt 1 für Operatoren: Installieren der Kubernetes-CLI-Tools für vSphere auf Ihrer Arbeitsstation. |
2 | Verwenden von kubectl zum Anmelden beim Supervisor-Cluster, der .kube/config mit dem Kontext für den neuen Supervisor-Cluster befüllt. | Weitere Informationen finden Sie unter Schritt 2 für Operatoren: Anmelden beim Supervisor-Cluster. |
3 | Verwenden von kubectl zum Durchführen eines Kontextwechsels zum vSphere-Namespace. | Weitere Informationen finden Sie unter Schritt 3 für Operatoren: Wechseln des Kontexts zum vSphere-Namespace. |
4 | Verwenden von kubectl zum Auflisten von VM-Klassen und Sicherstellen, dass die NVIDIA vGPU-fähige Klasse vorhanden ist. | Weitere Informationen finden Sie unter Schritt 4 für Operatoren: Abrufen der benutzerdefinierten VM-Klasse für vGPU-Arbeitslasten. |
5 | Verwenden von kubectl zum Auflisten der verfügbaren Tanzu Kubernetes-Versionen und Sicherstellen, dass das Ubuntu-Image vorhanden ist. | Weitere Informationen finden Sie unter Schritt 5 für Operatoren: Abrufen der Ubuntu Tanzu Kubernetes-Version für GPU-Knoten. |
6 | Erstellen der YAML-Spezifikation zur Bereitstellung des GPU-fähigen TKGS-Clusters, Angeben der TKR-Version und der VM-Klasse. | Weitere Informationen finden Sie unter Schritt 6 für Operatoren: Erstellen der YAML für die Bereitstellung des vGPU-fähigen TKGS-Clusters. |
7 | Bereitstellen des TKGS-Clusters. | Weitere Informationen finden Sie unter Schritt 7 für Operatoren: Bereitstellen des TKGS-Clusters. |
8 | Anmelden beim Cluster und Überprüfen der Bereitstellung. | Weitere Informationen finden Sie unter Schritt 8 für Operatoren: Anmelden beim TKGS-Cluster und Überprüfen der Bereitstellung. |
9 | Vorbereiten der Installation des NVAIE GPU-Operators durch Erstellung bestimmter vorausgesetzter Objekte im TKGS-Cluster, einschließlich Namespaces, Rollenbindungen, geheimer Image-Schlüssel und Lizenz-Configmaps. | Weitere Informationen finden Sie unter Schritt 9 für Operatoren: Vorbereiten der Installation des NVAIE GPU-Operators. |
10 | Installieren des NVAIE GPU-Operators im Cluster. | Weitere Informationen finden Sie unter Schritt 10 für Operatoren: Installieren des NVIDIA GPU-Operators im Cluster. |
11 | Bereitstellen von KI-/ML-Arbeitslasten im vGPU-fähigen TKGS-Cluster. | Weitere Informationen finden Sie unter Schritt 11 für Operatoren: Bereitstellen einer KI-/ML-Arbeitslast. |
Schritt 0 für Operatoren: Überprüfen der Systemanforderungen
Anforderung | Beschreibung |
---|---|
Der vSphere-Administrator hat die Umgebung für NVIDIA vGPU eingerichtet |
|
TKR Ubuntu-OVA | Tanzu Kubernetes-Version Ubuntu
|
TKG-Clusterbereitsteller | Tanzu Kubernetes Grid-Dienst API-Version: |
NVIDIA GPU-Operator |
GPU-Operator v1.8.0 |
NVIDIA GPU-Treiber-Container |
|
Schritt 1 für Operatoren: Installieren der Kubernetes-CLI-Tools für vSphere auf Ihrer Arbeitsstation
Laden Sie die Kubernetes-CLI-Tools für vSphere herunter und installieren Sie sie.
Bei Verwendung von Linux können Sie folgenden Befehl zum Herunterladen der Tools ausführen.
curl -LOk https://${SC_IP}/wcp/plugin/linux-amd64/vsphere-plugin.zip unzip vsphere-plugin.zip mv -v bin/* /usr/local/bin/
Weitere Anleitungen finden Sie unter Herunterladen und Installieren von Kubernetes-CLI-Tools für vSphere.
Schritt 2 für Operatoren: Anmelden beim Supervisor-Cluster
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
Schritt 3 für Operatoren: Wechseln des Kontexts zum vSphere-Namespace
kubectl config get-contexts
kubectl config use-context TKGS-GPU-CLUSTER-NAMESPACE
Schritt 4 für Operatoren: Abrufen der benutzerdefinierten VM-Klasse für vGPU-Arbeitslasten
kubectl get virtualmachineclassbindings
Schritt 5 für Operatoren: Abrufen der Ubuntu Tanzu Kubernetes-Version für GPU-Knoten
kubectl get tanzukubernetesreleases
kubectl get tkr
Schritt 6 für Operatoren: Erstellen der YAML für die Bereitstellung des vGPU-fähigen TKGS-Clusters
Erstellen Sie die YAML-Datei für die Bereitstellung eines Tanzu Kubernetes-Clusters.
Beginnen Sie mit einem der folgenden Beispiele. Verwenden Sie die anhand der Ausgabe der vorhergehenden Befehle gesammelten Informationen, um die Clusterspezifikation anzupassen. Ziehen Sie bei Bedarf die vollständige Liste der Konfigurationsparameter hinzu: TKGS-v1alpha2-API für die Bereitstellung von Tanzu Kubernetes-Clustern.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: #cluster name name: tkgs-cluster-gpu-a100 #target vsphere namespace namespace: tkgs-gpu-operator spec: topology: controlPlane: replicas: 3 #storage class for control plane nodes #use `kubectl describe storageclasses` #to get available pvcs storageClass: vwt-storage-policy vmClass: guaranteed-medium #TKR NAME for Ubuntu ova supporting GPU tkr: reference: name: 1.20.8---vmware.1-tkg.1 nodePools: - name: nodepool-a100-primary replicas: 3 storageClass: vwt-storage-policy #custom VM class for vGPU vmClass: class-vgpu-a100 #TKR NAME for Ubuntu ova supporting GPU tkr: reference: name: 1.20.8---vmware.1-tkg.1 - name: nodepool-a100-secondary replicas: 3 vmClass: class-vgpu-a100 storageClass: vwt-storage-policy #TKR NAME for Ubuntu ova supporting GPU tkr: reference: name: 1.20.8---vmware.1-tkg.1 settings: storage: defaultClass: vwt-storage-policy network: cni: name: antrea services: cidrBlocks: ["198.51.100.0/12"] pods: cidrBlocks: ["192.0.2.0/16"] serviceDomain: managedcluster.local
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkc namespace: tkg-ns-auto spec: distribution: fullVersion: v1.20.8+vmware.1-tkg.1 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy tkr: reference: name: v1.20.8---vmware.1-tkg.1 vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: k8s-storage-policy tkr: reference: name: v1.20.8---vmware.1-tkg.1 vmClass: vmclass-vgpu volumes: - capacity: storage: 50Gi mountPath: /var/lib/containerd name: containerd - capacity: storage: 50Gi mountPath: /var/lib/kubelet name: kubelet - name: nodepool-1 replicas: 1 storageClass: vwt-storage-policy vmClass: best-effort-medium
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: annotations: labels: run.tanzu.vmware.com/tkr: v1.20.8---vmware.1-tkg.1 name: tkgs-gpu-direct-rdma namespace: tkgs-ns spec: settings: network: cni: name: antrea pods: cidrBlocks: - 192.168.0.0/16 serviceDomain: cluster.local services: cidrBlocks: - 10.96.0.0/12 topology: controlPlane: replicas: 3 storageClass: tkgs-storage-policy vmClass: guaranteed-medium tkr: reference: name: v1.20.8---vmware.1-tkg.1 nodePools: - name: workers replicas: 5 storageClass: tkgs-storage-policy vmClass: claire-gpu-direct-rdma volumes: - capacity: storage: 50Gi mountPath: /var/lib/containerd name: containerd - capacity: storage: 50Gi mountPath: /var/lib/kubelet name: kubelet tkr: reference: name: v1.20.8---vmware.1-tkg.1
Schritt 7 für Operatoren: Bereitstellen des TKGS-Clusters
kubectl apply -f CLUSTER-NAME.yamlBeispiel:
kubectl apply -f tkgs-gpu-cluster-1.yaml
kubectl get tanzukubernetesclusters -n NAMESPACE
Schritt 8 für Operatoren: Anmelden beim TKGS-Cluster und Überprüfen der Bereitstellung
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME \ --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
kubectl cluster-info
kubectl get nodes
kubectl get namespaces
kubectl api-resources
Schritt 9 für Operatoren: Vorbereiten der Installation des NVAIE GPU-Operators
- Erstellen Sie den Kubernetes-Namespace
gpu-operator-resources
. Es empfiehlt sich, immer alles in diesem Namespace bereitzustellen.kubectl create ns gpu-operator-resources
- Erstellen Sie Rollenbindungen.
Für Tanzu Kubernetes-Cluster ist die Pod-Sicherheitsrichtlinie aktiviert.
Erstellen Sie die Datei rolebindings.yaml.apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: psp:vmware-system-privileged:default namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: psp:vmware-system-privileged subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: system:nodes - apiGroup: rbac.authorization.k8s.io kind: Group name: system:serviceaccounts
Wenden Sie die Rollenbindung an.kubectl apply -f rolebindings.yaml
Erstellen Sie die Datei post-rolebindings.yaml.apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: psp:vmware-system-privileged:gpu-operator-resources namespace: gpu-operator-resources roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: psp:vmware-system-privileged subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:serviceaccounts
Wenden Sie die Rollenbindung an:kubectl apply -f post-rolebindings.yaml
- Erstellen Sie einen geheimen Image-Schlüssel mit NGC-Anmeldedaten, die von Docker zum Abrufen von Container-Images aus dem NVIDIA GPU-Cloud-Katalog verwendet werden können.
kubectl create secret docker-registry registry-secret \ --docker-server=server-name --docker-username='$oauthtoken' \ --docker-password=<place_holder> \ --docker-email=email-name -n gpu-operator-resources
- Erstellen Sie eine Configmap für den NVIDIA-Lizenzserver.
kubectl create configmap licensing-config -n gpu-operator-resources --from-file=gridd.conf
Der Befehl
gridd.conf
verweist auf die Adresse des NVIDIA-Lizenzservers, wie z. B.:# Description: Set License Server Address # Data type: string # Format: "<address>" ServerAddress=<place_holder>
Schritt 10 für Operatoren: Installieren des NVIDIA GPU-Operators im Cluster
- Installieren Sie Helm und beachten Sie dabei die Helm-Dokumentation.
- Fügen Sie das Helm-Repository
gpu-operator
hinzu.helm repo add nvidia https://nvidia.github.io/gpu-operator
- Installieren Sie den NVAIE GPU-Operator, indem Sie folgenden Befehl ausführen.
Ersetzen Sie Umgebungsvariablenwerte gegebenenfalls durch Werte, die Ihrer Umgebung entsprechen.
export PRIVATE_REGISTRY="private/registry/path" export OS_TAG=ubuntu20.04 export VERSION=460.73.01 export VGPU_DRIVER_VERSION=460.73.01-grid export NGC_API_KEY=ZmJjMHZya...LWExNTRi export REGISTRY_SECRET_NAME=registry-secret helm install nvidia/gpu-operator \ --set driver.repository=$PRIVATE_REGISTRY \ --set driver.version=$VERSION \ --set driver.imagePullSecrets={$REGISTRY_SECRET_NAME} \ --set operator.defaultRuntime=containerd \ --set driver.licensingConfig.configMapName=licensing-config
Schritt 11 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.