Введение
Kubernetes предоставляет доступ к специализированному оборудованию, такому как Ascend NPU, через интерфейс Device Plugin, но настройка узла NPU «от начала до конца» действительно сложна: драйвер и прошивка должны соответствовать ядру, контейнерный runtime должен знать, как внедрять устройства в контейнеры рабочих нагрузок, а device plugin должен сообщать о чипах планировщику.
Alauda Build of NPU Operator объединяет все это в единый operator, который согласует весь программный стек — драйвер и прошивку Ascend, конфигурацию container runtime, device plugin MindCluster и необязательный NPU exporter — на основе одного пользовательского ресурса NPUOperatorCtl. После установки AI training и inference workload могут запрашивать huawei.com/Ascend910 (или Ascend310P) так же, как и любой другой ресурс Kubernetes.
Содержание
Что нового в v1.2.4Что нового в v1.2.4
v1.2.4 — это первый выпуск, собранный для неизменяемой ОС KubeOS, и он поставляется как набор operator bundle OLM, а не как cluster plugin. Основные изменения, заметные пользователю:
- Поддержка KubeOS / immutable OS. Узлы NPU worker больше не ограничены традиционными дистрибутивами Linux. Operator прозрачно обрабатывает ограничения KubeOS, связанные с доступом только для чтения к
/usrи отсутствием package manager — нет необходимости заранее устанавливать kernel headers, DKMS или какой-либо host package. - Предкомпилированный образ драйвера. Драйвер, прошивка и tooling runtime поставляются как container image, идентифицируемый по
<HDK>-<chip>-<kernel>-<os>, и загружаются в kernel хоста из выполняющегося pod. Устаревший конвейер.runpackage + DKMS больше не используется. См. Установка для получения информации о prerequisite для image. - Passthrough для предварительно установленного драйвера. Для хостов, на которых уже установлен драйвер Huawei
.runвне оркестрации (например, bare-metal кластеров с независимым управлением жизненным циклом драйвера), задайтеspec.driver.enabled=false: operator полностью пропускает staging и upgrade драйвера и настраивает CDI / device-plugin / runtime на основе существующего дерева/var/lib/Ascend/driverили/usr/local/Ascend/driverна хосте. - Внедрение устройств через CDI. Контейнерам workload больше не нужен
runtimeClassName: ascend. Достаточно запроситьhuawei.com/Ascend910(илиAscend310P) — operator настраивает Container Device Interface так, чтобы containerd автоматически подключал/dev/davinciNи пользовательские библиотеки драйвера в контейнер. - Жизненный цикл обновления драйвера. Изменение
NPUOperatorCtl.spec.driver.versionтеперь запускает поузловое rolling upgrade: cordon → drain → перезагрузка node → загрузка нового драйвера → проверка → снятие cordon. Фаза перезагрузки обязательна, поскольку чипы Ascend не допускаютrmmodработающего драйвера. Поддерживаются как режим auto-roll, так и режим ручного подтверждения. См. Обновление драйвера и self-healing. - Самовосстановление чипов. Цикл health-watch внутри pod драйвера опрашивает каждый NPU каждую минуту; если чип во время работы переходит в зависшее состояние, он записывает marker восстановления, чтобы node можно было перезагрузить для восстановления. Включается через
spec.driver.recoveryPolicy.autoRecover. - Стек MindCluster v7.3.0. Включает ветку v7.3.0 для
ascend-k8sdeviceplugin,ascend-operator,ascend-docker-runtime,noded,clusterdиnpu-exporter. Версия драйвера по умолчанию повышается до25.5.0. - Исправление ошибки: ServiceMonitor для NPU exporter. Теперь exporter автоматически собирается платформенным Prometheus — ручной
ServiceMonitorбольше не нужен.
Полный список изменений см. в Release notes, а чтобы начать работу, откройте Установка.
Дополнительные сведения об upstream-проекте см. в openFuyao NPU Operator.