Alauda Build of NVIDIA DRA Driver for GPUs
Содержание
ВведениеПредварительные требованияУстановкаУстановите NVIDIA driver на GPU nodesУстановите NVIDIA Container ToolkitВключите CDI в containerdВключите DRA в KubernetesСкачайте плагин кластераЗагрузите плагин кластераУстановите Alauda Build of NVIDIA DRA Driver for GPUsПроверьте настройку DRAПроверьте установкуЗапустите workload для проверкиВведение
Dynamic Resource Allocation (DRA) — это функция Kubernetes, которая предоставляет более гибкий и расширяемый способ запроса и выделения аппаратных ресурсов, таких как GPU. В отличие от традиционных device plugin, которые поддерживают только простое подсчитывание одинаковых ресурсов, DRA обеспечивает точный выбор устройств на основе их атрибутов и возможностей.
Alauda Build of NVIDIA DRA Driver for GPUs поставляется как плагин кластера, который добавляет upstream NVIDIA DRA driver в ваш кластер ACP, позволяя workloads запрашивать GPU через объекты ResourceClaim и ResourceClaimTemplate.
Предварительные требования
- NVIDIA driver v565+ установлен на каждом GPU node.
- Kubernetes v1.32+.
- ACP v4.1+.
- Доступ администратора кластера к целевому кластеру ACP.
- CDI включен в базовой container runtime, такой как containerd.
- DRA и соответствующие API groups включены в кластере.
В разделах ниже описано, как включить CDI и DRA, если они еще не настроены.
Установка
Установите NVIDIA driver на GPU nodes
См. NVIDIA CUDA Installation Guide for Linux.
Установите NVIDIA Container Toolkit
См. NVIDIA Container Toolkit installation guide.
Включите CDI в containerd
CDI (Container Device Interface) предоставляет стандартный механизм, с помощью которого производители устройств могут описать все, что требуется для предоставления доступа к конкретному ресурсу — например, GPU — помимо простого имени устройства.
CDI включен по умолчанию в containerd 2.0 и более поздних версиях. Для более ранних версий (начиная с 1.7.0) его необходимо активировать вручную.
Следующие шаги требуются только на GPU nodes, где работает containerd v1.7.x.
-
Отредактируйте файл конфигурации containerd:
Добавьте или измените следующий раздел:
NOTEДостаточно установить
enable_cdi = true. Значенияcdi_spec_dirsпо умолчанию в containerd уже включают/etc/cdiи/var/run/cdi, куда NVIDIA Container Toolkit записывает свои CDI specs. Указывайтеcdi_spec_dirsявно только в том случае, если toolkit настроен на запись specs в другое место. -
Перезапустите containerd и убедитесь, что он работает корректно:
-
Проверьте, что CDI включен:
Если появляются соответствующие строки журнала, CDI был успешно включен.
Включите DRA в Kubernetes
DRA включен по умолчанию в Kubernetes 1.34 и более поздних версиях. Для более ранних версий (начиная с 1.32) его необходимо активировать вручную.
Следующие шаги применимы к Kubernetes 1.32–1.33. Примените изменения control plane на всех master nodes, а изменение kubelet — на всех nodes.
-
Отредактируйте манифест
kube-apiserverв/etc/kubernetes/manifests/kube-apiserver.yaml.Для Kubernetes 1.32:
Для Kubernetes 1.33:
-
Отредактируйте манифест
kube-controller-managerв/etc/kubernetes/manifests/kube-controller-manager.yaml: -
Отредактируйте манифест
kube-schedulerв/etc/kubernetes/manifests/kube-scheduler.yaml: -
Отредактируйте конфигурацию kubelet в
/var/lib/kubelet/config.yamlна всех nodes:Перезапустите kubelet:
Скачайте плагин кластера
Плагин кластера Alauda Build of NVIDIA DRA Driver for GPUs можно получить в Customer Portal. Для получения дополнительной информации обратитесь в Customer Support.
Загрузите плагин кластера
Загрузите скачанный пакет с помощью командной строки violet. Подробнее см. Upload Packages.
Установите Alauda Build of NVIDIA DRA Driver for GPUs
-
Добавьте метку каждому GPU node, чтобы на него был запланирован
nvidia-dra-driver-gpu-kubelet-plugin:WARNINGНа одном и том же node можно задать только одну из следующих меток:
gpu=on,nvidia-device-enable=pgpuилиnvidia-device-enable=pgpu-dra. -
Перейдите в Administrator > Marketplace > Cluster Plugins, переключитесь на целевой кластер и разверните плагин кластера Alauda Build of NVIDIA DRA Driver for GPUs.
Проверьте настройку DRA
-
Проверьте pods драйвера DRA и controller:
Вывод должен быть похож на следующий:
-
Проверьте объекты
ResourceSlice:Для GPU node вывод должен быть похож на следующий:
Проверьте установку
В этом разделе предполагается, что вы выполнили все шаги установки выше и что все соответствующие GPU components работают и находятся в состоянии Ready. Следующий workload подтверждает, что Alauda Build of NVIDIA DRA Driver for GPUs работает end to end.
Запустите workload для проверки
-
Создайте спецификацию workload. Настройте селектор
expressionтак, чтобы он соответствовалproductName, указанному в вашем собственном выводеResourceSlice: -
Примените спецификацию:
-
Просмотрите журналы контейнера:
В выводе должен отображаться UUID GPU изнутри контейнера, например: