Стадия жизненного цикла модуля: Общедоступная версия
У модуля есть требования для установки
v1.3.2 — 2026-09-23
Кратко: Релиз исправляет запуск воркера node-feature-discovery в стеке device plugin. Режим DRA не затронут.
Ключевые изменения
- Исправлена ошибка CrashLoopBackOff при запуске node-feature-discovery.
- Узлы получают лейблы
feature.node.kubernetes.io/pci-*. Без них device plugin и gpu-feature-discovery на узел не планировались.
Исправления
- Воркер node-feature-discovery не запускался
Контейнер работал от root со снятыми capabilities. Запустить собственный исполняемый файл он при этом не мог. Воркер уходил в CrashLoopBackOff. Узел оставался без лейблов node-feature-discovery. Device plugin и gpu-feature-discovery на такой узел не планировались. Воркер переведён на непривилегированного пользователя модуля.
Что учесть при обновлении
- Воркер собирает только источники local и pci
Источники cpu, kernel, system и другие отключены. Собственные NodeFeatureRule, опирающиеся на их признаки, на GPU-узлах перестанут срабатывать. Проверьте свои правила перед обновлением. Лейблыfeature.node.kubernetes.io/pci-*не изменились.
v1.3.1 — 2026-09-11
Кратко: Релиз закрывает найденные уязвимости. Поведение модуля не меняется.
Ключевые изменения
- Исправлены найденные уязвимости (CVE). Поведение модуля не меняется.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
v1.3.0 — 2026-09-04
Кратко: Релиз переводит DRA-режим в статус preview и делает его рекомендуемым способом работы с GPU. Добавлена поддержка карт MetaX. Требование модуля к Kubernetes снижено до 1.33. Улучшена работа с настройкой узлов для работы с GPU. Оптимизирована модель безопасности.
Ключевые изменения
- Для DRA-режима модуль не меняет настройки кластера, а только проверяет их состояние. Он сообщает, если нужные feature gates не включены. Для DRA-режима нужен Kubernetes 1.34. На Kubernetes 1.33 модуль тоже ставится и работает в режиме device plugin.
- Проблемы с настройкой GPU больше не блокируют подготовку узла. Узел конвергируется, а неисправность видна в метках узла, метрике и alert. Модуль не делает необратимых изменений на узлах, где DRA работать не сможет.
- Переработан механизм изоляции разделяемых GPU между namespace. Части разделяемой карты могут использовать только нагрузки внутри одного namespace. Конфликт отклоняется до размещения Pod’а, и планировщик берёт другое устройство. Раньше конфликт появлялся после размещения, и Pod оставался в
ContainerCreating. - Поддержаны GPU MetaX. Их можно использовать через DRA наравне с NVIDIA. Модуль устанавливает адаптер только на узлы с такими картами.
- Работать с GPU можно без прав
SuperAdmin. Доступ выдаётся штатными ролями DKP, без ручных ClusterRole.
Новый функционал
- Обнаружение неисправного хост-стека GPU на узле в DRA-режиме
Проверяются загрузка модуля ядра, соответствие версий модуля ядра и драйвера, работоспособность контейнерного toolkit. Результат публикуется в метках узлаnode.deckhouse.io/gpu-host-stack-errorиnode.deckhouse.io/gpu-host-stack-vendor. Он же виден в метрикеgpu_node_host_stack_unhealthy{node,vendor,reason}и в alertD8GpuNodeHostStackUnhealthy. - Доступ к GPU выдаётся штатными ролями DKP
Раньше ресурсы модуля не входили ни в одну роль платформы. Ниже уровняSuperAdminпользователь не мог даже посмотреть список классов GPU. Разработчик со своей ролью в namespace создаётResourceClaimиResourceClaimTemplate. Роль уровня просмотра читает ресурсы модуля и объекты DRA, включаяResourceSlice. Администратор управляетGPUClassиDeviceClass, а также обслуживает карты аннотациямиgpu.deckhouse.io/reclaimиgpu.deckhouse.io/unmanaged. Роли поставляются для обеих ролевых моделей DKP. Для текущей модели это шесть кумулятивных ClusterRoled8:user-authz:gpu:<level>. Для экспериментальной — роли администратора инфраструктуры и роли пользователя namespace. Отдельно поставляютсяd8:gpu:viewerиd8:gpu:deviceclass-editor. Их выдают черезClusterRoleBinding. Они дают доступ к кластерным объектам GPU, который роль пользователя namespace дать не может. - Адаптер MetaX в составе DRA-стека
Добавлена возможность использовать GPU MetaX для рабочих нагрузок. Поддерживаются вендорные правила валидации запросов. - Пространство имён модуля GPU подготовлено к политике Pod Security Standards
restricted
Каждый компонент, которому необходимо исключение, получил отдельныйSecurityPolicyException. Общее ослабление требований к политике безопасности на всё пространство больше не требуется.
Улучшения
- Проверка готовности DRA feature gates перед развёртыванием
Приdra.enabled=trueстек разворачивается только со всеми требуемыми gates. Готовность определяется по рантайм-состоянию kube-apiserver, а не по версии Kubernetes. При нехватке gates выставляются conditionFeatureGatesReady, метрикаgpu_dra_feature_gate_missingи alert. Проверка ограничивает только первое развёртывание стека. Уже развёрнутый стек не удаляется, а транзиентная недоступность gates не останавливает нагрузки. Так бывает при rolling-upgrade control-plane или чтении с другой реплики apiserver. В этом случае выставляется только alert. - Однозначное состояние карты в режиме VFIO-passthrough
Карта, отданная виртуальной машине, больше не остаётся в фазеInitializing. ВPhysicalGPU.statusпоявилось полеdriverBinding, а сама карта переходит в фазуPassthrough. Карту наvfio-pciбез заявки модуль помечает какOrphanedи поднимает alertD8GPUPhysicalGPUOrphaned. Вернуть карту вычислительному драйверу или скрыть её от модуля можно аннотациямиgpu.deckhouse.io/reclaimиgpu.deckhouse.io/unmanaged. - Необратимая часть подготовки узла ограничена
Это правка параметров загрузки ядра для IOMMU и привязка карты кvfio-pci. При первом включении с подтверждённо отключёнными gates они не применяются. Параметры загрузки ядра меняются только на узле с GPU поддерживаемого вендора. Раньше параметры правились и перезагрузка запрашивалась на каждом bare-metal узле группы, даже без GPU. Обратимые шаги применяются без изменений: containerd, sysctl, метки. - Проверки узла разделены по вендорам GPU
Выполняются только проверки вендоров, найденных на PCI-шине. Список поддерживаемых вендоров стал единым источником данных для ConfigMapgpu-supported-vendorsи скрипта проверки узла.
Исправления
- DRA-режим: удалён mutating webhook
resourceclaimnamespace.gpu.deckhouse.io
Он дописывал CEL-селектор вspecобъектовResourceClaimиResourceClaimTemplate. Этотspecиммутабелен. Отрендеренный манифест мог разойтись с сохранённым объектом. Повторное применение отвергалось с ошибкойspec: field is immutable. Это касалось Helm-релиза, GitOps-контроллера и module applier. - DRA-режим: устранена проблема с параметром
settings.dra.allowCrossNamespaceSharing
Параметр не влиял на поведение размещения. Значение доставлялось только вgpu-controllerи влияло лишь на регистрацию вебхука. Компонент, применяющий политику, его не получал. Шаблоны DaemonSet читали настройку не по документированному пути. На узел передавалось значение по умолчанию. - Требование модуля к Kubernetes снижено с 1.34 до 1.33
Порог 1.34 относится к DRA-режиму. В режиме device plugin модуль ставится на кластер 1.33. - Проверка GPU-узла больше не прерывает настройку узла
Шаг выполняется рано, до настройки kubelet. При отсутствии драйвера или контейнерного toolkit он завершался с ошибкой, и bashible прекращал настройку узла целиком. Шаг всегда завершается успешно, а результат виден в метках узла. - Устранено ложное срабатывание alert
D8GPUControlPlaneControllerTargetAbsent
Правила и дашборды DRA-стека не применяются на кластерах с device plugin. Раньше alert срабатывал там, где DRA-контроллера и не должно быть, а дашборды дублировались. - Исправлены права компонентов DRA-стека
Контроллер получил доступ к тому API событий, в который пишет. Доступ к ConfigMap сужен до нужных объектов.
Обновления безопасности
- Исправлены найденные уязвимости (CVE). Обновлены компоненты модуля и образы обоих стеков.
Несовместимые изменения
- Модуль больше не включает DRA feature gates
Hook иNodeGroupConfiguration, выполнявшие это, удалены. Без требуемых gates приdra.enabled=trueDRA-стек не развернётся. Модуль сообщит о нехватке через condition, метрику и alert.
Что учесть при обновлении
- Перед обновлением с
dra.enabled=trueпроверьте требуемые DRA feature gates
Без них DRA-стек после обновления не развернётся. Список gates и порог Kubernetes 1.34 приведены в разделе «Предварительные требования для DRA-режима». Уже развёрнутый стек обновление не удаляет. - Изоляция разделяемых GPU проверяется на узле, а не в admission
Отказ приходит до размещения Pod’а. Он виден как conditionBindingFailed=Trueс reasonNamespaceConflictвResourceClaim.status.devices. Планировщик выбирает другое устройство. Раньше конфликт появлялся наNodePrepareResources, уже после размещения. Выглядело это как длительное состояниеContainerCreating. Ограничение действует на уровне placement. Разные MIG-партиции одной карты остаются доступны разным namespace. Диагностику ищите вResourceClaim.status.devices, а не в логах admission. - Ранее созданные
ResourceClaimTemplateс дописанным селектором нужно пересоздать
Удаление вебхука их не исправляет, ихspecиммутабелен. Пересоздайте такие объекты их владельцем. Для Helm-релиза: удалите объект и выполнитеhelm upgrade. Иначе состояниеManifestsApplyFailedсохранится. - На узлах с неисправным хост-стеком GPU появятся alerts
D8GpuNodeHostStackUnhealthy
Так бывает при несовпадении версийnvidia-container*. Так бывает и при модуле DKMS, не собранном под текущее ядро. Это обнаружение уже существующих неисправностей. Конвергенция таких узлов не блокируется. С них снимается признак готовностиnode.deckhouse.io/gpu-setup-complete. Компоненты GPU-стека на такие узлы не размещаются. - Перед выключением модуля верните карты из VFIO-passthrough вычислительному драйверу
Используйте аннотациюgpu.deckhouse.io/reclaim. Выключение модуля не снимает привязку драйвера. Карта наvfio-pciостанется на нём и после удаления модуля. Для возврата потребуется перезагрузка узла.
Известные ограничения
- MetaX: только карта целиком
Адаптер MetaX поддерживает выделение карты целиком. Разделение на партиции и совместное использование доступны для NVIDIA. Заявка с долей карты MetaX отклоняется на этапе подготовки. - Состояние хост-стека GPU не пересчитывается непрерывно
Проверка выполняется при bootstrap узла, смене конфигурации и перезагрузке. Неисправность, возникшая между этими моментами, попадёт в метки и alert только на следующем прогоне.
Документация
- Документация модуля переработана
Обзор, настройки, архитектура, FAQ, использование и глоссарий согласованы между собой. Режимы DRA и device plugin описаны как взаимоисключающие. DRA описан как рекомендуемый режим. Он в статусе Preview и включается явно. Без дополнительной настройки работает режим device plugin. Добавлены страницы: глоссарий, описаниеGPUClass, набор манифестов, обучающий сценарий и раздел об использовании. Страница с примерами удалена, её содержание перенесено в новые разделы. В разделе «Предварительные требования для DRA-режима» описаны оба порога Kubernetes и шесть требуемых feature gates. В FAQ добавлена диагностика ситуации «GPU-нагрузки не работают при установленных драйвере и toolkit». - Справочник ресурсов приведён в соответствие со схемой
Добавлено русское описаниеGPUClass. ОписаниеPhysicalGPUобновлено по текущей схеме.
Зависимости
- Требования к платформе: Deckhouse >= 1.75, Kubernetes >= 1.33. Прежний порог Kubernetes — 1.34. DRA-режим по-прежнему требует Kubernetes >= 1.34. Это проверяется в рантайме.
v1.2.8 — 2026-08-31
Кратко: Сервисный релиз линии 1.2.x с обновлениями метаданных безопасности и зависимостей. Поведение развёрнутого GPU-стека не меняется.
Ключевые изменения
- Отчётность по безопасности образов модуля стала точнее: образы могут поставлять VEX-метаданные для уязвимостей, которые заведомо не затрагивают поставляемые бинарные файлы.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
- Добавлены VEX-метаданные для уязвимостей, недостижимых в поставляемых бинарных файлах модуля, чтобы уменьшить ложные срабатывания проверок уязвимостей для затронутых образов.
v1.2.7 — 2026-08-31
Кратко: Исправлено объявление корневого типа в OpenAPI-схеме конфигурации модуля. Deckhouse валидирует значения модуля gpu по схеме.
Ключевые изменения
- Валидация значений конфигурации модуля
gpuработает корректно. Корень OpenAPI-схемы объявлен как объект. Этого требует Deckhouse.
Исправления
- Исправлено объявление корневого типа в OpenAPI-схеме конфигурации модуля. Корень объявлен как объект. Deckhouse проверяет значения модуля
gpuпо схеме. Раньше он считал корень схемы неизвестным полем.
v1.2.6 — 2026-08-30
Кратко: Технический релиз линии 1.2.x. Обновление меняет только механику сборки образов и не влияет на поведение развёрнутого GPU-стека.
Ключевые изменения
- Технический релиз: разворачиваемые манифесты, набор образов и версии компонентов не меняются, поэтому действий от оператора не требуется.
v1.2.5 — 2026-08-29
Кратко: Сервисный релиз линии 1.2.x с обновлениями безопасности. Поведение GPU-нагрузок не меняется, действий от оператора не требуется.
Ключевые изменения
- Исправлены найденные уязвимости в образах модуля без изменения разворачиваемых GPU-стеков и их конфигурационного контракта.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
v1.2.4 — 2026-07-17
Кратко: Технический релиз линии 1.2.x.
Ключевые изменения
- Технический релиз: изменений, влияющих на эксплуатацию, нет. Обновление безопасно и не требует действий.
v1.2.3 — 2026-07-17
Кратко: Обновление безопасности линии 1.2.x.
Ключевые изменения
- Устранены найденные уязвимости в поставляемых образах.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
v1.2.2 — 2026-07-17
Кратко: Технический релиз линии 1.2.x.
Ключевые изменения
- Технический релиз: изменений, влияющих на эксплуатацию, нет. Обновление безопасно и не требует действий.
v1.2.1 — 2026-07-15
Кратко: Исправления VFIO-passthrough, работы с GPUClass и метрики утилизации GPU.
Ключевые изменения
- VFIO-passthrough работает корректно: устройство привязывается к нагрузке.
- Метрика утилизации GPU публикуется — панели мониторинга показывают нагрузку на карты.
Исправления
- Исправлена привязка устройств для VFIO-passthrough.
- Исправлена работа с ресурсом
GPUClass. - Исправлена метрика утилизации GPU.
v1.2.0 — 2026-07-01
Кратко: Появился ресурс GPUClass — декларативное описание классов GPU для DRA-стека.
Ключевые изменения
- Добавлен ресурс GPUClass (
gpuclasses.gpu.deckhouse.io): классы GPU описываются декларативно, и нагрузка запрашивает класс, а не конкретную карту. - Выбор устройства для DRA-заявки стал предсказуемым: неполные варианты размещения больше не участвуют в выборе.
Новый функционал
- Ресурс GPUClass (
gpuclasses.gpu.deckhouse.io). Это декларативное описание классов GPU для DRA-стека.
Исправления
- Устранены конфликты размещения DRA-заявок: синтетические (неполные) варианты размещения больше не учитываются при выборе устройства.
- Исправлено проставление владельца (ownership) для ресурсов
PhysicalGPU. Объекты больше не остаются бесхозными.
v1.1.2 — 2026-06-11
Кратко: Изоляция DRA-нагрузок от невыделенных устройств узла и исправление имён дашбордов.
Ключевые изменения
- Запрошенные через DRA GPU больше не пересекаются с невыделенными устройствами узла. Нагрузка не может задеть карту, которая ей не выдана.
Исправления
- Изоляция DRA-нагрузок: запрошенные через DRA GPU больше не пересекаются с невыделенными устройствами на узле.
- Исправлены имена дашбордов мониторинга — дашборды находятся в Grafana под ожидаемыми названиями.
v1.1.1 — 2026-06-10
Кратко: Совместное использование GPU в DRA-режиме (MPS и Time-Slicing), автоматическая переконфигурация MIG с перезагрузкой узла и поддержка VFIO-passthrough.
Ключевые изменения
- В DRA-режиме появилось совместное использование GPU: режимы MPS и Time-Slicing включаются частичным запросом ресурса, без ручной настройки узла.
- Переконфигурация MIG с перезагрузкой узла выполняется автоматически и согласованно. Оператору не нужно вручную вытеснять нагрузки и останавливать обращения к драйверу.
- Поддержан VFIO-passthrough: GPU можно целиком передать виртуальной машине.
- Нагрузка больше не видит внутри контейнера чужие GPU узла. Исправление важно для узлов с несколькими картами.
Новый функционал
- Совместное использование GPU для DRA-нагрузок в режимах MPS и Time-Slicing. Частичный запрос ресурса (
sharePercent) автоматически включает совместное использование физической карты. - Автоматическая оркестрация переконфигурации MIG с перезагрузкой узла. Узел согласованно выводится из-под нагрузки. Обращения к GPU-драйверу и DCGM ставятся на паузу на время repartition. Вмешательство оператора не требуется.
- Поддержка VFIO-passthrough для GPU.
Исправления
- Видимость GPU внутри контейнера ограничена только выделенными устройствами. Это актуально на узлах с несколькими GPU. Раньше нагрузка видела там все карты.
- Для каждого выделения возвращаются корректные идентификаторы CDI. Это важно для нагрузок с несколькими устройствами и для сценариев sharing и partitioning.
- Восстановление подготовки устройств после сбоев. «Зависшие» завершённые заявки очищаются, ошибки привязки типизированы. Повтор выполняется корректно.
- Добавлены метрики, которых не было на дашборде GPU.
Документация
- Добавлены базовые сценарии использования GPU — от эксклюзивного выделения до совместного использования и MIG.
v1.1.0 — 2026-05-22
Кратко: Добавлен DRA-стек (Dynamic Resource Allocation) как альтернатива стеку device plugin. Минимальная версия Kubernetes для модуля поднята до 1.34.
Ключевые изменения
- Появился DRA-стек (Dynamic Resource Allocation). Он включается опцией
dra.enabled=true. GPU выделяются черезResourceClaim, а не через расширенные ресурсы узла. - Поведение по умолчанию не меняется. При
dra.enabled=falseразворачивается стек device plugin, как в 1.0.x. - Минимальная версия Kubernetes для модуля поднята с 1.32 до 1.34. На более старых кластерах модуль установить или обновить нельзя.
Новый функционал
- DRA-режим включается опцией
dra.enabled=true. Вместо стека на базе NVIDIA GPU Operator модуль разворачивает компонентыgpu-controller,gpu-node-agent,dra-pluginиnvidia-adapter. GPU узлов описываются ресурсомPhysicalGPU.
Исправления
- Улучшена логика конфигурации MIG (
mig-parted), добавлена поддержка ОС со старой версией glibc. - Исправлен интервал повторных попыток при настройке MIG. При временной неготовности карты настройка больше не забрасывается.
- Откачена конфигурация automount, приводившая к избыточным правам у подов стека.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
Несовместимые изменения
- Минимальная версия Kubernetes для модуля — 1.34, была 1.32. На кластерах 1.32 и 1.33 установка и обновление модуля будут отклонены проверкой требований.
Что учесть при обновлении
- Перед обновлением убедитесь, что кластер на Kubernetes 1.34 или новее. Если кластер старее, оставайтесь на линии 1.0.x. Она продолжает получать исправления и обновления безопасности.
- Включайте DRA-режим осознанно. Делайте это на новых установках или после проверки на тестовом кластере. Опция
dra.enabled=trueзаменяет весь GPU-стек узла, а не дополняет его.
Зависимости
- Требования к платформе: Deckhouse >= 1.75, Kubernetes >= 1.34 (было >= 1.32).
v1.0.4 — 2026-06-10
Кратко: Технический релиз линии сопровождения 1.0.x.
Ключевые изменения
- Технический релиз: изменений, влияющих на эксплуатацию, нет. Обновление безопасно и не требует действий.
v1.0.3 — 2026-06-02
Кратко: Обновление безопасности линии сопровождения 1.0.x.
Ключевые изменения
- Устранены найденные уязвимости в поставляемых образах.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
v1.0.2 — 2026-05-14
Кратко: Исправления конфигурации MIG, в том числе на ОС со старой версией glibc, и устранение найденных уязвимостей.
Ключевые изменения
- Конфигурация MIG применяется корректно на ОС со старой версией glibc. Раньше на таких узлах разбиение карты не доводилось до конца.
- Устранены найденные уязвимости в поставляемых образах.
Исправления
- Улучшена логика конфигурации MIG (
mig-parted), добавлена поддержка ОС со старой версией glibc. - Исправлен скрипт
nvidia-mig-manager. Из-за него разбиение карты могло не применяться.
Обновления безопасности
- Исправлены найденные уязвимости (CVE).
v1.0.1 — 2026-04-17
Кратко: Технический релиз линии сопровождения 1.0.x.
Ключевые изменения
- Технический релиз: изменений, влияющих на эксплуатацию, нет. Обновление безопасно и не требует действий.
v1.0.0 — 2026-04-01
Кратко: Первый релиз модуля gpu: запуск и эксплуатация нагрузок на NVIDIA GPU в Deckhouse Kubernetes Platform на стеке device plugin.
Ключевые изменения
- Модуль
gpuдоступен для эксплуатации. GPU-узлы включаются секциейspec.gpuв целевомNodeGroup. После этого модуль разворачивает на них стек device plugin на базе NVIDIA GPU Operator. - Поддержаны три режима выделения GPU: эксклюзивный, Time-Slicing и MIG (Multi-Instance GPU).
- Мониторинг GPU через DCGM с готовыми дашбордами Grafana работает из коробки.
Новый функционал
- Поддержка MIG (Multi-Instance GPU): физическая карта делится на изолированные партиции, каждая выдаётся нагрузке как отдельное устройство.
- Мониторинг GPU через DCGM и DCGM-exporter: метрики утилизации, температуры и памяти доступны в Prometheus и на дашбордах Grafana.
- Автоматическое обнаружение узлов с GPU через Node Feature Discovery — вручную размечать узлы не требуется.
Зависимости
- Требования к платформе: Deckhouse >= 1.75, Kubernetes >= 1.32.
- Компоненты стека device plugin в поставке. NVIDIA device plugin 0.17.4, Node Feature Discovery 0.17.3, NVIDIA Container Toolkit 1.18.2. DCGM 4.2.3, DCGM-exporter 4.2.3, nvidia-mig-manager 0.12.3.