Этот драйвер ресурса DRA в настоящее время находится в активной разработке и еще не предназначен для использования производства. Мы можем (иногда) решить протолкнуть коммиты на main , пока у нас не будет что -то более стабильное. Используйте свой собственный риск.
Документ и демонстрация поддержки DRA для графических процессоров, предоставленных этим репо, можно найти ниже:
| Документ | Демо |
|---|---|
В этом разделе описывается использование kind для демонстрации функциональности драйвера GPU GPU NVIDIA.
Сначала с тех пор, как мы запустим свою поддержку GPU, убедитесь, что будут выполнены следующие предпосылки:
kind установлен. Смотрите официальную документацию здесь.
Убедитесь, что в вашей системе установлен контейнер NVIDIA. Это можно сделать, следуя инструкциям здесь.
Настройте время выполнения контейнера NVIDIA в качестве времени выполнения Docker Docker :
sudo nvidia-ctk runtime configure --runtime=docker --set-as-defaultПерезапустите Docker, чтобы применить изменения:
sudo systemctl restart docker Установите опцию accept-nvidia-visible-devices-as-volume-mounts для true в файле /etc/nvidia-container-runtime/config.toml nvidia-container-runtime/config.toml для настройки времени выполнения контейнера nvidia для использования Moctions для выбора устройств для вклеивания в контейнер.
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=trueПокажите текущий набор графических процессоров на машине:
nvidia-smi -L Мы начинаем с первого клонирования этого репозитория и в cd в него. Все сценарии и примеры спецификаций POD, используемых в этой демонстрации, находятся в demo -подкаталог, так что найдите время, чтобы просмотреть различные файлы и посмотреть, что доступно:
git clone https://github.com/NVIDIA/k8s-dra-driver.git cd k8s-dra-driver Вот демонстрация, показывающая, как установить и настроить DRA, и запустите стручок в kind кластере на рабочей станции Linux.

Ниже приведены подробные, пошаговые инструкции.
Во -первых, создайте kind кластер для запуска демонстрации:
./demo/clusters/kind/create-cluster.shОтсюда мы создадим изображение для примера драйвера ресурса:
./demo/clusters/kind/build-dra-driver.sh Это также делает встроенные изображения доступными для kind .
Теперь мы устанавливаем драйвер DRA NVIDIA DRA:
./demo/clusters/kind/install-dra-driver.sh Это должно показать две стручки, работающие в пространстве имен 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
Наконец, вы можете запустить различные примеры, содержащиеся в папке demo/specs/quickstart . С самыми последними обновлениями для Kubernetes v1.31, только первые 3 примера в этой папке в настоящее время являются функциональными.
Вы можете запустить их следующим образом:
kubectl apply --filename=demo/specs/quickstart/gpu-test{1,2,3}.yamlПолучите статусы стручков. В зависимости от того, какие графические процессоры доступны, запуск первых трех примеров будет создавать выход, аналогичный следующему ...
Примечание: есть известная проблема с добрым. Вы можете увидеть ошибку, пытаясь заверить журнал работающего капсула в каком -то кластере: failed to create fsnotify watcher: too many open files. Проблема может быть решена путем увеличения значения для 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)
Удалите кластер, созданный в предыдущих шагах:
./demo/clusters/kind/delete-cluster.sh