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-default
Starten 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=true
Zeigen 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.sh
Von 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}.yaml
Holen 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