Сервис развивается: тестируем формат, собираем идеи, улучшаем сервис. Есть идеи? Написать
Войти
Дайджесты новостей
Архитектура платформы NVIDIA AICR с генерацией декларативных рецептов для GPU-кластеров Kubernetes в пиксель-арт стиле

NVIDIA AICR: стандартизация GPU-кластеров Kubernetes через проверенные рецепты и криптографические аттестации

Платформа NVIDIA AI Cluster Runtime решает проблему несовместимости GPU-кластеров Kubernetes: генерация версионированных декларативных рецептов под связку ядра, драйверов и GPU Operator, автоматический экспорт в манифесты Argo CD, Flux или Helmfile, а также сквозная валидация узлов с криптографической аттестацией.

NVIDIA AICR: стандартизация GPU-кластеров Kubernetes через проверенные рецепты и криптографические аттестации

Развертывание кластеров для машинного обучения сопровождается высокими рисками несовместимости компонентов. Эксплуатация ускорителей NVIDIA H100, A100 или L40S требует слаженной работы сложного технологического стека. Несовпадение минорных версий ядра Linux, драйверов графических процессоров, оператора GPU в Kubernetes, рантайма контейнеров и библиотек вычислений приводит к скрытым сбоям, ошибкам компиляции модулей DKMS или падению пропускной способности тензорных ядер.

Исторически инженеры решали эту проблему вручную: наборы параметров Helm values сохранялись в инструкциях, передавались между проектами и тестировались методом проб и ошибок на арендованном оборудовании. Открытый проект NVIDIA AI Cluster Runtime (AICR) предлагает системный подход: перевод конфигурации GPU-кластера на язык строгих версионированных декларативных рецептов с экспортом в системы GitOps и сквозным криптографическим подтверждением надежности.

Архитектурная модель: генератор конфигураций вместо менеджера инфраструктуры

Платформа NVIDIA AICR (репозиторий NVIDIA/aicr) представляет собой генератор конфигурационных артефактов и утилит аудита. Она не занимается выделением виртуальных серверов в облаке (provisioning) и не управляет control plane оркестратора. Продукт развертывается поверх готового кластера Kubernetes, предоставляя CLI aicr, демон aicrd, Go SDK и диагностические задания.

В основу положена концепция декларативного манифеста рецепта — recipe.yaml. Вместо ручного подбора версий инженер формирует спецификацию по пяти критериям:

  • облачный сервис (--service: AWS EKS, Google GKE, Azure AKS, OpenShift или Kind);
  • модель ускорителя (--accelerator: H100, H200, B200, A100, L40S или RTX);
  • дистрибутив ОС узлов (--os: например, Ubuntu);
  • профиль нагрузки (--intent: распределенное обучение training либо инференс inference);
  • слой оркестрации задач (--platform: Kubeflow, Ray или Slurm).

Внутренний механизм сопоставляет критерии с библиотекой наложений (overlays). Конфигурация компонуется снизу вверх: базовые значения дополняются облачными адаптерами, параметрами конкретного GPU, настройками ОС и оптимизациями под профиль нагрузки. Манифест точно фиксирует согласованные версии NVIDIA GPU Operator, модулей Node Feature Discovery (NFD), драйверов прямого доступа к памяти GPUDirect RDMA и подсистем мониторинга.

Критерии можно передать тремя путями: флагами командной строки, конфигурационным файлом --config либо через снимок кластера --snapshot. Снимок считывает метки узлов Kubernetes (например, nvidia.com/gpu.product) или опрашивает идентификаторы PCI, исключая ручную инвентаризацию. Неподдерживаемое оборудование фиксируется описательно, но не включается в целевой рецепт.

Экспорт артефактов в контуры GitOps: Argo CD, Flux и Helmfile

После компиляции рецепта исключается ручное применение манифестов. Команда aicr bundle транслирует рецепт в целостный набор артефактов под выбранную методологию GitOps:

  • для Argo CD формируются декларативные ресурсы типа Application;
  • в режиме argocd-helm компоненты упаковываются в паттерн приложения приложений (app-of-apps);
  • для экосистемы Flux создаются ресурсы Kustomization и HelmRelease;
  • для консольных пайплайнов формируются графы релизов Helmfile либо сценарии Helm.

Каждый подключаемый модуль получает каталог с собственными Helm values, описанием и контрольными суммами sha256. В бандл входят стек мониторинга kube-prometheus-stack, компоненты NCCL для межузловых связей и планировщики Kueue. Сгенерированный бандл размещается в репозитории кода, проходит code review и применяется контроллером автоматизации.

Двухконтурная криптографическая проверка: происхождение и аттестация

Отличие AICR от стандартных генераторов шаблонов заключается во встроенном двухконтурном механизме подтверждения целостности.

Первый контур гарантирует происхождение артефактов (Provenance). Каждый официальный рецепт и бандл снабжаются цифровой подписью continuous integration (CI) лабораторий NVIDIA. Подпись проверяется офлайн в изолированном контуре (air-gapped) до применения изменений, защищая цепочку поставок ПО от подмены образов и искажения параметров драйверов.

Второй контур создает свидетельство валидности (Validity Attestation). Работоспособность низкоуровневых драйверов GPU зависит от характеристик серверных плат, версий BIOS и сетевых коммутаторов. Аттестация представляет собой криптографически защищенную запись, связывающую цифровую личность тестировщика с протоколом работы утилиты aicr validate. Сертификат фиксирует конфигурацию оборудования и исключает искажение отчетов о вводе узлов в строй.

Пошаговый регламент: от рецепта до валидации узлов

Сценарий стандартизации кластера на базе AWS EKS с ускорителями NVIDIA H100 и стеком Kubeflow включает последовательность шагов:

  1. Установка CLI:
brew tap NVIDIA/aicr && brew install aicr

Для продуктивных контуров рекомендуется фиксировать версию бинарного релиза. Требуется настроенный контекст kubectl с доступом к кластеру.

  1. Генерация декларативного рецепта:
aicr recipe --service eks --accelerator h100 --os ubuntu \
  --intent training --platform kubeflow -o recipe.yaml

Файл recipe.yaml проверяется инженером. Точную версию драйвера из рецепта можно извлечь селектором:

aicr query --service eks --accelerator h100 --os ubuntu \
  --intent training --platform kubeflow \
  --selector components.gpu-operator.values.driver.version
  1. Компиляция артефактов GitOps:
aicr bundle --recipe recipe.yaml --deployer argocd --output ./bundles

Инженер коммитит сгенерированные файлы в репозиторий, после чего Argo CD синхронизирует состояние кластера, устанавливая драйверы и сервисы.

  1. Глубокий аудит узлов:
aicr validate --recipe recipe.yaml --fail-on-error

Процесс включает три фазы: развертывание (--phase deployment), соответствие аппаратных параметров (--phase conformance) и синтетические тесты пропускной способности тензорных ядер (--phase performance). Флаг --fail-on-error возвращает ненулевой код завершения при любых сбоях, ошибках OOM или таймаутах. Для локализации различий между тестовым и продуктивным кластерами применяется утилита сравнения снимков aicr diff.

Сравнение подходов к конфигурированию GPU-кластеров

КритерийРучная настройкаИспользование платформы AICR
Выбор версий стекаПоиск по документации и метод пробАвтоматический подбор проверенных наложений
Хранение настроекРазрозненные файлы Helm valuesВерсионированный манифест recipe.yaml
Интеграция с GitOpsРучное написание манифестовНативная генерация бандлов для Argo CD, Flux, Helmfile
Аудит узловПроверка статуса запуска подовТрехфазная валидация: развертывание, тесты, соответствие
Цепочка поставокОграничена базовыми чексуммамиПодпись NVIDIA CI и свидетельство валидности
Диагностика дрейфаРучной построчный анализАвтоматическое сравнение снимков через aicr diff

Эксплуатационные границы и чеклист внедрения

AICR решает задачу согласованности версий, но не заменяет облачную политику бюджетов, квоты на виртуальные машины и сетевую безопасность. Аппаратные дефекты шины PCIe или сбои питания узлов остаются зоной ответственности инфраструктурной команды.

Чеклист для надежного внедрения платформы:

  1. Зафиксировать версии CLI в пайплайнах автоматизации, исключив тег latest.
  2. Перед сборкой бандла сверять доступность связки GPU и облака в каталоге рецептов.
  3. Проводить обязательное рецензирование сгенерированных Helm values до коммита в репозиторий.
  4. Встраивать шаг aicr validate как обязательный блокирующий порог качества перед направлением рабочих нагрузок на кластер.
  5. При любых обновлениях ОС узлов повторно компилировать рецепт и подтверждать стабильность свежей аттестацией.