Этот драйвер ресурса 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