Использование групп узлов c GPU без предустановленных драйверов
Вы можете использовать группы узлов Managed Service for Kubernetes для рабочих нагрузок на видеопроцессорах (GPU) без предустановленных драйверов. Приложение GPU Operator
Чтобы подготовить кластер и группу узлов Managed Service for Kubernetes без предустановленных драйверов к запуску рабочих нагрузок:
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
. -
Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
-
Создайте кластер Managed Service for Kubernetes любой подходящей конфигурации. При создании укажите группы безопасности, подготовленные ранее.
-
Создайте группу узлов на платформе с GPU и включите опцию Не устанавливать драйверы GPU. Укажите группы безопасности, подготовленные ранее.
-
Установите kubectl
и настройте его на работу с созданным кластером.
Установите GPU Operator
-
Установите менеджер пакетов Helm
версии не ниже 3.8.0. -
Установите GPU Operator:
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia && \ helm repo update && \ helm install \ --namespace gpu-operator \ --create-namespace \ --set driver.version=<версия_драйвера> \ gpu-operator nvidia/gpu-operator
Где
driver.version
— версия драйвера NVIDIA®. Вы можете не указывать параметр с версией драйвера, в этом случае будет установлена версия по умолчанию .Примечание
Для платформы группы узлов Managed Service for Kubernetes
AMD EPYC™ with NVIDIA® Ampere® A100
(gpu-standard-v3
) используйте версию драйвера515.48.07
.
Проверьте правильность установки драйверов
Получите логи пода nvidia-driver-daemonset
:
DRIVERS_POD_NAME="$(kubectl get pods --namespace gpu-operator | grep nvidia-driver-daemonset | awk '{print $1}')" && \
kubectl --namespace gpu-operator logs "${DRIVERS_POD_NAME}"
Они должны содержать сообщение об успешной установке драйвера, например:
Defaulted container "nvidia-driver-ctr" out of: nvidia-driver-ctr, k8s-driver-manager (init)
DRIVER_ARCH is x86_64
Creating directory NVIDIA-Linux-x86_64-535.54.03
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 535.54.03
...
Loading NVIDIA driver kernel modules...
+ modprobe nvidia
+ modprobe nvidia-uvm
+ modprobe nvidia-modeset
...
Done, now waiting for signal
Теперь вы можете запускать рабочие нагрузки с GPU согласно руководству Запуск рабочих нагрузок с GPU.
Удалите созданные ресурсы
Некоторые ресурсы платные. Удалите ресурсы, которые вы больше не будете использовать, во избежание списания средств за них:
- Удалите кластер Kubernetes.
- Если вы создавали сервисные аккаунты, удалите их.