LWS#

LWS (LeaderWorkerSet) - инструмент, предоставляющий API/CRD LeaderWorkerSet для развертывания группы pod, как единой репликационной единицы.

Основное назначение - типовые сценарии AI/ML-инференса, особенно multi-host/multi-node (многоузловой) инференс, где LLM шардируется и запускается на нескольких устройствах или узлах, при этом позволяя управлять всей группой как единым целым (создание, масштабирование, обновление, остановка).

Основные задачи и возможности
  • LWS обеспечивает согласованное управление набором pod «лидер + рабочий» как единой репликой при их создании, обновлении и масштабировании.

  • Ключевой сценарий использования - multi-node инференс и шардирование LLM по нескольким GPU/узлам, где LWS используется как базовый примитив для таких развертываний.

  • LWS интегрируется/используется в смежных AI-проектах (например, для оркестрации распределенных AI-нагрузок).

Примечание

LWS устанавливается по умолчанию с компонентом AI-inference.

Конфигурация values#

Параметры LWS можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».

nameOverride — переопределение базового имени ресурсов чарта#

Параметр

Описание

Значение по умолчанию

nameOverride

Переопределение имени чарта для генерации имен ресурсов. Пустое значение использует имя чарта по умолчанию

""

fullnameOverride — полное переопределение имени для всех ресурсов#

Параметр

Описание

Значение по умолчанию

fullnameOverride

Полное переопределение имени для всех создаваемых ресурсов, игнорируя имя релиза и чарта

""

enablePrometheus — включение интеграции с Prometheus для сбора метрик#

Параметр

Описание

Значение по умолчанию

enablePrometheus

Активация экспорта метрик контроллера LWS для сбора Prometheus через ServiceMonitor или аннотации

true

enableCertManager — включение автоматического управления TLS-сертификатами#

Параметр

Описание

Значение по умолчанию

enableCertManager

Использование Cert Manager для автоматической выдачи и ротации TLS-сертификатов для webhook LWS

true

replicaCount — количество реплик контроллера LWS#

Параметр

Описание

Значение по умолчанию

replicaCount

Число реплик pod контроллера. Рекомендуется 1 для избежания конфликтов лидерства без HA-настройки

1

imagePullSecrets — секреты для доступа к приватным реестрам образов#

Параметр

Описание

Значение по умолчанию

imagePullSecrets

Список имен секретов для аутентификации в приватных container registry при загрузке образов LWS

[]

image — конфигурация образов для компонентов контроллера#

Параметр

Описание

Значение по умолчанию

image.manager.repository

Полный путь к репозиторию образа менеджера LWS с поддержкой Helm-шаблонов для гибкой настройки

{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-lws/lws

image.manager.tag

Тег образа менеджера. При отсутствии используется версия из Chart.AppVersion

v0.8.0

image.manager.pullPolicy

Политика загрузки образа: Always для гарантированного обновления, IfNotPresent для кеширования

Always

podAnnotations — дополнительные аннотации для pod контроллера#

Параметр

Описание

Значение по умолчанию

podAnnotations

Пользовательские аннотации для pod контроллера, полезные для интеграции с системами мониторинга или сервисными сетями

{}

podSecurityContext — контекст безопасности на уровне pod#

Параметр

Описание

Значение по умолчанию

podSecurityContext.runAsNonRoot

Требование запуска контейнеров от не root-пользователя для соответствия политикам безопасности Pod Security Standards

true

podSecurityContext.fsGroup

GID-группы для монтируемых томов, обеспечивающий доступ к файлам внутри pod (закомментировано по умолчанию)

~

securityContext — контекст безопасности на уровне контейнера#

Параметр

Описание

Значение по умолчанию

securityContext.allowPrivilegeEscalation

Запрет повышения привилегий процессом внутри контейнера, критично для соответствия security-политикам

false

securityContext.readOnlyRootFilesystem

Монтирование корневой ФС контейнера в режим только для чтения для предотвращения несанкционированных изменений

true

securityContext.capabilities.drop

Список Linux capabilities для удаления из процесса, минимизирующий поверхность атаки (ALL удаляет все)

["ALL"]

service — настройки Kubernetes Service для контроллера#

Параметр

Описание

Значение по умолчанию

service.type

Тип сервиса: ClusterIP для внутреннего доступа, NodePort/LoadBalancer для внешнего

ClusterIP

service.port

Порт сервиса для вебхука или endpoint-метрик контроллера LWS

9443

resources — запросы и лимиты ресурсов CPU/памяти#

Параметр

Описание

Значение по умолчанию

resources.requests.cpu

Гарантированное выделение CPU для запуска pod контроллера, влияет на планирование

1

resources.requests.memory

Гарантированный объем памяти для стабильной работы контроллера без OOM-kill

1Gi

nodeSelector — селектор узлов для размещения pod контроллера#

Параметр

Описание

Значение по умолчанию

nodeSelector

Метка-селектор для привязки pod контроллера к узлам с определенными характеристиками

{}

tolerations — допуски для размещения на узлах с taint#

Параметр

Описание

Значение по умолчанию

tolerations

Список tolerations для размещения контроллера на узлах с taint, например мастер-узлах

[]

affinity — правила аффинити и анти-аффинити для планирования pod#

Параметр

Описание

Значение по умолчанию

affinity

Правила node/pod affinity для оптимизации размещения: группировка или распределение реплик контроллера

{}

gangSchedulingManagement — конфигурация gang-планирования для координации групп pod#

Параметр

Описание

Значение по умолчанию

gangSchedulingManagement

Настройки интеграции с внешними планировщиками (Volcano, YuniKorn) для атомарного запуска групп pod LWS. Пустое значение отключает gang-планирование

{}