Dieser DRA -Ressourcentreiber befindet sich derzeit in aktiver Entwicklung und ist noch nicht für die Produktionsnutzung konzipiert. Wir können (manchmal) beschließen, den Commits über main zu drücken, bis wir etwas Stabileres haben. Verwenden Sie auf eigenes Risiko.
Ein Dokument und eine Demo der DRA -Unterstützung für GPUs, die dieses Repo bereitstellt, finden Sie nachfolgend:
| Dokumentieren | Demo |
|---|---|
In diesem Abschnitt wird die kind der Funktionalität des NVIDIA GPU DRA -Treibers beschrieben.
Erstens, da wir mit GPU -Unterstützung eine Art starten, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
kind ist installiert. Siehe die offizielle Dokumentation hier.
Stellen Sie sicher, dass das NVIDIA -Container -Toolkit auf Ihrem System installiert ist. Dies kann durch Befolgen der Anweisungen hier erfolgen.
Konfigurieren Sie die NVIDIA -Container -Laufzeit als Standard -Docker -Laufzeit:
sudo nvidia-ctk runtime configure --runtime=docker --set-as-defaultStarten Sie Docker neu, um die Änderungen anzuwenden:
sudo systemctl restart docker true Sie die Option accept-nvidia-visible-devices-as-volume-mounts in der Datei /etc/nvidia-container-runtime/config.toml fest Container.
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=trueZeigen Sie den aktuellen Satz von GPUs auf der Maschine an:
nvidia-smi -L Wir beginnen zunächst zuerst dieses Repository und cd in ihn. Alle in dieser Demo verwendeten Skripte und Beispiel -POD -Spezifikationen befinden sich im demo -Unterverzeichnis. Nehmen Sie sich also einen Moment Zeit, um die verschiedenen Dateien zu durchsuchen und zu sehen, was verfügbar ist:
git clone https://github.com/NVIDIA/k8s-dra-driver.git cd k8s-dra-driver Hier ist eine Demo, die zeigt, wie Sie DRA installieren und konfigurieren und einen Pod in einer kind Cluster auf einer Linux -Workstation ausführen.

Im Folgenden finden Sie die detaillierten Schritt-für-Schritt-Anweisungen.
Erstellen Sie zunächst einen kind Cluster, um die Demo auszuführen:
./demo/clusters/kind/create-cluster.shVon hier aus erstellen wir das Bild für den Beispielressourcen -Treiber:
./demo/clusters/kind/build-dra-driver.sh Dies stellt auch die erstellten Bilder für den kind Cluster zur Verfügung.
Wir installieren jetzt den Nvidia GPU DRA -Treiber:
./demo/clusters/kind/install-dra-driver.sh Dies sollte zwei Pods zeigen, die im nvidia-dra-driver -Namespace laufen:
kubectl get pods -n nvidia-dra-driver NAME READY STATUS RESTARTS AGE
nvidia-k8s-dra-driver-kubelet-plugin-t5qgz 1/1 Running 0 44s
Schließlich können Sie die verschiedenen Beispiele ausführen, die im Ordner demo/specs/quickstart enthalten sind. Mit den neuesten Updates für Kubernetes v1.31 sind derzeit nur die ersten drei Beispiele in diesem Ordner funktionsfähig.
Sie können sie wie folgt ausführen:
kubectl apply --filename=demo/specs/quickstart/gpu-test{1,2,3}.yamlHolen Sie sich den Status der Schoten. Je nachdem, welche GPUs verfügbar sind, erzeugt die Ausführung der ersten drei Beispiele eine Ausgabe ähnlich wie folgt ...
Hinweis: Es gibt ein bekanntes Problem mit der Art. Möglicherweise sehen Sie einen Fehler, während Sie versuchen, das Protokoll eines laufenden Pod in dem Art -Cluster zu verkleinern: failed to create fsnotify watcher: too many open files. Das Problem kann gelöst werden, indem der Wert für fs.inotify.max_user_watches erhöht wird.
kubectl get pod -A -l app=pod NAMESPACE NAME READY STATUS RESTARTS AGE
gpu-test1 pod1 1/1 Running 0 34s
gpu-test1 pod2 1/1 Running 0 34s
gpu-test2 pod 2/2 Running 0 34s
gpu-test3 pod1 1/1 Running 0 34s
gpu-test3 pod2 1/1 Running 0 34s
kubectl logs -n gpu-test1 -l app=pod GPU 0: A100-SXM4-40GB (UUID: GPU-662077db-fa3f-0d8f-9502-21ab0ef058a2)
GPU 0: A100-SXM4-40GB (UUID: GPU-4cf8db2d-06c0-7d70-1a51-e59b25b2c16c)
kubectl logs -n gpu-test2 pod --all-containers GPU 0: A100-SXM4-40GB (UUID: GPU-79a2ba02-a537-ccbf-2965-8e9d90c0bd54)
GPU 0: A100-SXM4-40GB (UUID: GPU-79a2ba02-a537-ccbf-2965-8e9d90c0bd54)
kubectl logs -n gpu-test3 -l app=pod GPU 0: A100-SXM4-40GB (UUID: GPU-4404041a-04cf-1ccf-9e70-f139a9b1e23c)
GPU 0: A100-SXM4-40GB (UUID: GPU-4404041a-04cf-1ccf-9e70-f139a9b1e23c)
Entfernen Sie den in den vorhergehenden Schritten erstellten Cluster:
./demo/clusters/kind/delete-cluster.sh