Оркестрация графического процессора в Kubernetes: плагин устройства или оператор графического процессора?

Управление графическими процессорами в кластерах Kubernetes становится все более важным, поскольку AI, машинное обучение (ML) и высокоэффективные вычислительные рабочие нагрузки получают тягу. Двумя подходами, позволяющими ускорению графического процессора на Kubernetes, — это плагин устройства NVIDIA и оператор GPU NVIDIA.

Выбор между плагином устройства NVIDIA и оператором графического процессора представляет собой фундаментальное архитектурное решение для кластеров Kubernetes с поддержкой GPU. Плагин устройства предлагает прямое воздействие ресурсов GPU с минимальными накладными расходом, в то время как оператор графического процессора обеспечивает комплексную автоматизацию жизненного цикла с помощью контейнерного управления всему программному стеку GPU, включая драйверы, конфигурацию времени выполнения, мониторинг и сам плагин устройства.

Понимание их архитектуры, возможностей и различий имеет важное значение для выбора правильного подхода, основанного на ваших конкретных требованиях.

Когда использовать плагин устройства nvidia

Плагин устройства NVIDIA реализует плагин Kubernetes Device Framework как легкий DaeMonset, который связывается с Kubelet через сервисы GRPC. Он работает на unix ocket /var/lib/kubelet/device-plugins/nvidia.sock, обнаруживает графические процессоры через библиотеку NVML и выявляет их как ресурсы nvidia.com/gpu. Эта архитектура требует заранее установленных драйверов NVIDIA, настроенного контейнера с Nvidia-Container-Toolkit и подготовкой ручного узла.

Оперативное бремя этого ручного необходимого стека является определяющей характеристикой использования плагина устройства в изоляции. Прежде чем демонсет плагина может быть даже развернут, администратор должен убедиться, что каждый узел GPU подготовлен правильно. Во -первых, правильные драйверы NVIDIA должны быть установлены на хост ОС.

Этот процесс управляется полностью за пределами Kubernetes, как правило, через диспетчер пакетов операционной системы или с помощью сценариев установщика Nvidia. Версия драйвера должна быть совместима не только с аппаратным обеспечением GPU, но и с версией CUDA Toolkit, требуемой целевыми приложениями ML.

Во -вторых, необходимо установить инструментарий контейнера NVIDIA. Этот инструментарий предоставляет низкоуровневые компоненты, которые позволяют выполнять контейнер, такие как контейнер или CRI-O, взаимодействовать с драйверами Nvidia и подвергать устройства графического процессора в контейнеры.

Этот шаг включает в себя изменение файла конфигурации контейнера, например,/etc/containerd/config.toml или /etc/crio/crio.conf, чтобы зарегистрировать время выполнения контейнера nvidia в качестве действительного времени выполнения OCI и часто устанавливая его в качестве по умолчанию. Только после того, как эти зависимости на уровне хоста будут удовлетворены, может быть развернут плагин устройства NVIDIA и успешно зарегистрировать ресурс nvidia.com/gpu с помощью Kubelet.

Плагин устройства является оптимальным в сценариях, где требуется выполнение простоты и жесткого управления, например:

1. Хост графического процессора выступает в качестве среды разработки, обеспечивая прямой доступ к времени выполнения CUDA и основным ресурсам графического процессора.

2. Маленькие и средние кластеры, где узлы графических процессоров могут управляться вручную или аккуратно автоматизировать с помощью сценариев или инфраструктуры в качестве инструментов кода (IAC).

3. Средства, где изображения узлов, оптимизированные графическим процессором, уже предоставляют необходимые драйверы и время выполнения (например, управляемые предложения Kubernetes, такие как AWS EKS или Google GKE GPU Pools).

4. Разработка, тестирование или непроизводственные кластеры, где быстрое, легкое обеспечение графического процессора предпочтительнее, а усовершенствованные функции управления графическим процессором не требуются.

Это также полезно, если вам нужен абсолютный контроль над версиями драйвера и времени выполнения или нестандартными требованиями развертывания, которые не вписываются в структуру автоматизации оператора. Тем не менее, этот подход требует постоянного ручного вмешательства при масштабировании, обновлении драйверов или устранения неисправностей, специфичных для узлов.

Когда использовать оператор GPU NVIDIA

Оператор графического процессора следует совершенно другой философии, внедряя шаблон оператора Kubernetes для автоматизации управления инфраструктурой GPU. Он развертывает контроллер, который непрерывно примиряет CRD Clusterpolicy, управление несколькими контейнерными компонентами: Nvidia-Driver-Deamonset для установки драйвера, контейнер для конфигурации времени выполнения, плагин для устройства для экспонирования ресурсов, DCGM для мониторинга, обнаружение функций ГПУ для маркировки NODE и опционные компоненты, такие как MIG-диспетчер.

Архитектурное различие становится ясным в сложности развертывания. Установка плагина устройства требует трех шагов: Установите драйверы на хосте, настраивайте время выполнения контейнера и разверните плагин Daemonset. Установка оператора GPU требует одной команды: Helm установить GPU-оператор NVIDIA/GPU-Operator, который затем организует все развертывание стека автоматически. Это фундаментальное различие каскады в каждом оперативном аспекте.

Оператор GPU NVIDIA функционирует как мета-оператор. Эта единственная контрольная организация управляет полным жизненным циклом всех программных компонентов, необходимых для обеспечения и эксплуатации графических процессоров NVIDIA в кластере Kubernetes. Его значение получено из комплексного набора компонентов, которые он автоматизирует. Этот набор включает в себя драйвер NVIDIA, который развертывается в качестве контейнера в Daemonset.

Этот контейнерный подход устраняет необходимость в ручной установке драйвера на хост ОС, что позволяет администраторам использовать стандартные не-GPU-изображения операционной системы. Оператор также автоматически развертывает и настраивает инструментарий контейнера NVIDIA, гарантируя, что время выполнения контейнера узла было правильно настроено, чтобы быть с учетом графического процессора.

Интересно, что оператор графического процессора развертывает и управляет тем же плагином устройства NVIDIA, который обсуждался ранее. Он не заменяет плагин, а скорее включает его в качестве одного из нескольких управляемых компонентов, автоматизируя его развертывание как часть общего решения. Помимо этих основных компонентов, оператор вводит несколько услуг с добавленной стоимостью. Обнаружение функции графического процессора (GFD)-это компонент, который осматривает графические процессоры на узле и автоматически применяет подробные метки к этому объекту узла Kubernetes, таким как модель графического процессора, размер памяти и способность графического процессора с несколькими инстанциями.

Эти этикетки обеспечивают расширенное и точное планирование рабочей нагрузки с использованием селекторов узлов Kubernetes и правил сродства. Для наблюдения, оператор включает в себя экспортер DCGM, который интегрируется с менеджером GPU Центра обработки данных NVIDIA для сбора и обнаружения сотен подробных показателей графических процессоров, таких как использование, температура и мощность, для систем мониторинга, таких как Prometheus. Для современных графических процессоров Ampere и Hopper Architecture оператор также включает менеджер MIG для управления графическими процессорами в более мелкие, полностью изолированные экземпляры.

Оператор графического процессора превосходит в производственных, крупномасштабных или гетерогенных средах, где имеют решающее значение автоматизация, надежность и передовое управление:

1. Предпринимательские и исследовательские кластеры, использующие значительные рабочие нагрузки AI, ML или HPC, особенно когда согласованность версии, безопасность и мониторинг являются приоритетами.

2. Гибридные/мультикологические настройки или среды краев, где базовые изображения узлов и совместимость драйверов могут варьироваться.

3. Сценарии, требующие расширенных функций графических процессоров, таких как: автоматизированное управление жизненным циклом, конфигурация MIG, разделение графического процессора/определение времени, Gpudirect для высокоскоростной передачи данных и непрерывной проверки здоровья с самовосстановлением.

4. Рабочие нагрузки со строгими требованиями к эксплуатации или соответствию (например, минимальное время простоя во время обновлений, наблюдаемость наблюдаемости и обеспечение политики в кластере).

5. Организации, которые хотят централизованного, декларативного управления всем стеком GPU через пользовательские ресурсы Kubernetes и жизненный цикл оператора.

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

Выбор правильного решения

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

Функция или аспект
Плагин устройства NVIDIA
NVIDIA GPU Оператор

Цель
Расположение графических процессоров в качестве запланированных ресурсов Полное обеспечение, конфигурация и управление жизненным циклом

Подготовка узла
Драйверы, CUDA, предварительно установившиеся полностью автоматизированное развертывание и обновления

Сложность развертывания
Простой (один демонсет) выше (требует установки оператора и CRD)

Усовершенствованные функции графического процессора
Limited, MIG через конфигурацию MIG, VGPU, нарезка времени, GPU Direct (RDMA/Storage) и т. Д.

Мониторинг
Основные проверки здоровья Полная телеметрия, метрики и поддержка приборной панели (DCGM)

Самовосстановление
Автоматизированное вмешательство с ручным вмешательство

Масштабирование
Ручное обновление на узел автоматизирует новые узлы, обновления и синхронизацию компонентов

Лучше всего для
Небольшие или простые кластеры, управляемые изображения узлов крупномасштабные, гибридные, производственные среды

Управление/настройка
Максимальное прямое управление меньшим ручным управлением, высокая автоматизация

Ресурс накладные расходы
Минимальный выше (из -за компонентов управления)

По мере увеличения операционной сложности из -за разнообразных сред, больших кластеров, передовых рабочих нагрузок ИИ/мл или потребностей в соответствии и автоматизации, оператор GPU NVIDIA становится решающим. Он автоматизирует весь программный стек, предлагает богатую наблюдаемость, постоянно управляет совместимостью и значительно снижает ручную рабочую нагрузку для команд платформы и DevOps.

Заключение

Как плагин устройства NVIDIA, так и оператор графического процессора NVIDIA служат критическим, но различным целям в управлении кластерами GPU Kubernetes. Плагин устройства фокусируется на минимальных ручных настройках, идеально подходящих для известных, контролируемых сред, в то время как оператор графического процессора обеспечивает комплексное, полностью автоматизированное решение для предприятий, масштабируя не согласованную инфраструктуру. Оценка ваших рабочих требований, размера кластера, потребностей в поддержке и изысканности рабочих нагрузок GPU определит наиболее эффективное решение для вашего сценария.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Janakiram MSV является основным аналитиком в Janakiram & Associates и адъюнкт -преподавателем Международного института информационных технологий. Он также является квалифицированным Google Cloud Developer, сертифицированным архитектором решений Amazon, сертифицированным разработчиком Amazon, … Подробнее от Janakiram MSV

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *