Ce pilote de ressource DRA est actuellement en cours de développement actif et n'est pas encore conçu pour une utilisation en production. Nous pouvons (parfois) décider de pousser les engins sur main jusqu'à ce que nous ayons quelque chose de plus stable. Utiliser à vos risques et périls.
Un document et une démo de la prise en charge de la DRA pour les GPU fournis par ce dépôt peuvent être trouvés ci-dessous:
| Document | Démo |
|---|---|
Cette section décrit l'utilisation kind pour démontrer la fonctionnalité du pilote NVIDIA GPU DRA.
D'abord, car nous allons lancer le genre avec le support GPU, assurez-vous que les conditions préalables suivantes sont remplies:
kind est installé. Voir la documentation officielle ici.
Assurez-vous que la boîte à outils Nvidia Container est installée sur votre système. Cela peut être fait en suivant les instructions ici.
Configurez l'exécution du conteneur Nvidia en tant que Docker Runtime par défaut :
sudo nvidia-ctk runtime configure --runtime=docker --set-as-defaultRedémarrez Docker pour appliquer les modifications:
sudo systemctl restart docker Définissez l'option accept-nvidia-visible-devices-as-volume-mounts true le fichier /etc/nvidia-container-runtime/config.toml pour configurer le runtime de conteneur NVIDIA pour utiliser des supports de volume pour sélectionner des appareils dans un rejet dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans un injection dans une récipient.
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=trueAfficher l'ensemble actuel des GPU sur la machine:
nvidia-smi -L Nous commençons par le premier clonage de ce référentiel et cd y glissons. Tous les scripts et les exemples de spécifications de pod utilisés dans cette démo sont dans le sous-répertoire demo , alors prenez un moment pour parcourir les différents fichiers et voir ce qui est disponible:
git clone https://github.com/NVIDIA/k8s-dra-driver.git cd k8s-dra-driver Voici une démonstration montrant comment installer et configurer DRA, et exécuter un pod dans un cluster kind sur une station de travail Linux.

Voici les instructions détaillées et étape par étape.
Tout d'abord, créez un cluster kind pour exécuter la démo:
./demo/clusters/kind/create-cluster.shDe là, nous allons construire l'image pour l'exemple de pilote de ressource:
./demo/clusters/kind/build-dra-driver.sh Cela rend également les images construites à la disposition du cluster kind .
Nous installons maintenant le pilote NVIDIA GPU DRA:
./demo/clusters/kind/install-dra-driver.sh Cela devrait montrer deux pods exécutés dans l'espace de noms nvidia-dra-driver :
kubectl get pods -n nvidia-dra-driver NAME READY STATUS RESTARTS AGE
nvidia-k8s-dra-driver-kubelet-plugin-t5qgz 1/1 Running 0 44s
Enfin, vous pouvez exécuter les différents exemples contenus dans le dossier demo/specs/quickstart . Avec les mises à jour les plus récentes pour Kubernetes v1.31, seuls les 3 premiers exemples de ce dossier sont actuellement fonctionnels.
Vous pouvez les exécuter comme suit:
kubectl apply --filename=demo/specs/quickstart/gpu-test{1,2,3}.yamlObtenez les statuts des pods. Selon les GPU disponibles, l'exécution des trois premiers exemples produira une sortie similaire à ce qui suit ...
Remarque: il y a un problème connu avec Kind. Vous pouvez voir une erreur tout en essayant de rédiger le journal d'un pod en cours d'exécution dans le cluster de type: failed to create fsnotify watcher: too many open files. Le problème peut être résolu en augmentant la valeur de fs.inotify.max_user_watches .
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)
Supprimez le cluster créé dans les étapes précédentes:
./demo/clusters/kind/delete-cluster.sh