Доступно с ограничениями в редакциях:  Certified Core/CSE Lite (1.73), Certified Pro/CSE Pro (1.73)

Доступно без ограничений в редакциях:  Core, Ultimate/EE

Входит в расширения:  Управление GPU

Стадия жизненного цикла модуля: Общедоступная версия

У модуля есть требования для установки

Перед включением модуля убедитесь, что ваш кластер соответствует требованиям.

Отключение модуля требует подтверждения, поскольку убирает поддержку GPU из кластера и может привести к реконфигурации оборудования.

Перед отключением удалите GPU-нагрузки с узлов. При удалении хук pre-delete удаляет все объекты PhysicalGPU в кластере и ждёт до 600 секунд, чтобы gpu-controller успел снять свои финалайзеры до удаления CRD. Если хук истёк по таймауту, проверьте объекты с зависшими финалайзерами:

d8 k get physicalgpus -A

DRA-режим находится в статусе Preview: он доступен для использования, но его параметры и поведение ещё могут измениться в следующих релизах.

По умолчанию режим DRA для модуля отключён, и модуль работает в режиме Device Plugin. Рекомендуем использовать модуль в режиме DRA: для этого при применении ModuleConfig явно включите его в параметре dra. Перед включением убедитесь, что кластер соответствует требованиям для DRA-режима.

Пример включения модуля в режиме DRA:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: gpu
spec:
  enabled: true
  version: 1
  settings:
    dra:
      enabled: true

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули» откройте модуль gpu и включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля
  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля gpu:

    d8 system module enable gpu
  • С помощью ModuleConfig gpu.

    Установите spec.enabled в true или false в ModuleConfig gpu (при необходимости создайте его).

    Пример манифеста для включения модуля gpu:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: gpu
    spec:
      enabled: true

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули» откройте модуль gpu и включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация» или укажите настройки модуля в формате YAML на вкладке «YAML» без ключа верхнего уровня settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig gpu на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль gpu), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig gpu (подробнее о настройке Deckhouse Platform читайте в документации), выполнив следующую команду:

    d8 k edit mc gpu

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig gpu, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>

    Пример файла манифеста ModuleConfig gpu:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: gpu
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела «Параметры» ниже.

Как сменить канал обновлений модуля…

Чтобы сменить канал обновлений модуля, выполните действия из раздела Как сменить канал обновлений для модуля?.

Требования

К версии Kubernetes: 1.33 и выше.

К версии Deckhouse Platform: 1.75 и выше.

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.dra
      объект
      Настройки режима DRA (Dynamic Resource Allocation).

      По умолчанию: {}

      • settings.dra.allowCrossNamespaceSharing
        булевый

        Разрешает MPS и time-slicing разделять один GPU между рабочими нагрузками из разных неймспейсов.

        По умолчанию выключено: соседи по одному shared-устройству делят MPS-сервер и неквотируемый пул памяти, поэтому сбой или неограниченная аллокация затрагивают всех на этом устройстве. Это граница арендатора и радиуса поражения, а не механизм защиты памяти — для настоящей изоляции нужны MIG-партиции либо passthrough целой карты.

        Ограничение действует на уровне placement, поэтому разные MIG-партиции одной GPU остаются доступны разным неймспейсам.

        Применяется на ноде: pre-bind conflict predicate отклоняет аллокацию до bind, а vendor-адаптер перепроверяет на prepare. Отказ виден как condition BindingFailed=True с reason NamespaceConflict в ResourceClaim.status.devices.

        По умолчанию: false

      • settings.dra.enabled
        булевый

        Включает режим DRA (Dynamic Resource Allocation) для управления GPU.

        DRA-режим находится в статусе Preview: он доступен для использования, но его параметры и поведение ещё могут измениться в следующих релизах.

        DRA — рекомендуемый способ управления GPU в этом модуле; режим включается явно, а по умолчанию модуль работает в режиме Device Plugin. В режиме DRA рабочая нагрузка запрашивает целые GPU, MIG-партиции и разделяемые части GPU через API Kubernetes ResourceClaim вместо extended-ресурса nvidia.com/gpu.

        Переключает управление GPU со стека на основе NVIDIA device plugin (NFD, GFD, nvidia-device-plugin) на режим DRA и отключает стек Device Plugin.

        Требуется Kubernetes ≥ 1.34 и версия Deckhouse, включающая необходимые feature gates для DRA. Модуль никогда не включает feature gates самостоятельно: если они отсутствуют, DRA-стек не разворачивается, а модуль сообщает об этом через условие FeatureGatesReady. Подробнее — в документации по архитектуре модуля.

        По умолчанию: false

    • settings.logLevel
      строка
      Уровень логирования компонентов оператора.

      По умолчанию: Info

      Допустимые значения: Trace, Debug, Info, Error

      Пример:

      logLevel: Info