Об этом проекте

NVSentinel — это проект с открытым исходным кодом от NVIDIA для обеспечения надёжности GPU-инфраструктуры в Kubernetes. Он решает проблему, когда один неисправный GPU незаметно нарушает выполнение обучающих задач или оставляет узлы в простое: система обнаруживает сбои по мере их возникновения, защищает рабочие нагрузки, изолируя и освобождая затронутый узел, и восстанавливает его с помощью целевого сброса GPU или полной перезагрузки, возвращая его в строй без ручного вмешательства. Основные возможности: - Обнаружение: обнаружение в реальном времени сбоев на уровне GPU, NIC и системы через DCGM, syslog/journalctl, события обслуживания облачных провайдеров, мониторинг объектов Kubernetes и анализ событий состояния на основе шаблонов. - Защита: изоляция неисправного узла, чтобы планировщик перестал назначать на него новые задачи, и при необходимости освобождение существующих рабочих нагрузок. Возможен режим только изоляции, если не использовать компонент освобождения узлов. - Восстановление: автоматическое исправление с помощью привилегированного задания на узле (сброс GPU или перезагрузка), с дополнительной интеграцией API облачного провайдера для перезагрузок. - Preflight (опционально): init-контейнер, который проверяет готовность узла перед запуском задания, используя gang-планирование Kubernetes; включается для каждого пространства имён с помощью метки. Архитектура: независимые модули координируются через общее хранилище событий на базе MongoDB и Kubernetes API, без прямого взаимодействия между модулями. Мониторы состояния (GPU, syslog, CSP, NIC, анализатор событий состояния, монитор объектов Kubernetes) отправляют события по gRPC платформенным коннекторам, которые сохраняют их и обновляют состояния узлов и события. Компоненты управления сбоями (карантин сбоев, освобождение узлов, восстановление после сбоев, janitor) согласуют изменения из хранилища и действуют через Kubernetes API. Дизайн расширяем за счёт подключаемых мониторов состояния, стратегий освобождения и действий восстановления. Требования: Kubernetes 1.34+, Helm 3.0+, NVIDIA GPU Operator с включённым автономным режимом DCGM (dcgm.enabled=true), cert-manager v1.21+ и постоянное хранилище для базы данных. Установка и внедрение: одна команда Helm устанавливает или обновляет NVSentinel из OCI-чарта. По умолчанию включён только мониторинг состояния, что не нарушает работу. Пользователи могут постепенно включать изоляцию, освобождение, восстановление, janitor и preflight через значения Helm. Локальная демонстрация инъекции сбоев работает в кластере KIND без GPU-оборудования, используя симулированный DCGM для демонстрации обнаружения, карантина и изоляции. Поддерживаемое оборудование: проверено на архитектурах NVIDIA Volta, Ampere, Hopper, Ada Lovelace и Blackwell. Распространение осуществляется исключительно через OCI Helm-чарт, образы контейнеров в GHCR, выпуски на GitHub и официальный сайт документации; образы контейнеров содержат подписанные Sigstore SBOM CycloneDX и аттестации происхождения сборки SLSA. Проект распространяется по лицензии Apache 2.0 и описывается как готовый к производственному тестированию, при этом API и конфигурации могут изменяться между выпусками.