LWS#

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

LWS предназначен для управления развертыванием тесно связанных групп pod, таких как «лидер» и зависимые рабочие pod, в случаях, когда стандартные примитивы Deployment и StatefulSet неэффективны. LWS объединяет pod в логические наборы и автоматизирует их жизненный цикл, сетевое взаимодействие и совместное планирование.

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

  • Снижение нагрузки на Control Plane (управляющий слой). Оптимизация сетевых объектов (Service, эндпоинт) за счет маршрутизации трафика только через pod Leader, что предотвращает деградацию API-сервера на больших кластерах.

  • Обеспечение отказоустойчивости. Автоматический перезапуск всего набора при сбое одиночного pod, если того требует топология вычислений.

Примечание

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

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

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

nameOverride – переопределение имени чарта#

Параметр

Описание

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

nameOverride

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

""

fullnameOverride – полное переопределение имени чарта#

Параметр

Описание

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

fullnameOverride

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

""

enablePrometheus – включение сбора метрик Prometheus#

Параметр

Описание

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

enablePrometheus

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

true

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

Параметр

Описание

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

enableCertManager

Включение интеграции с CertManager для автоматической выдачи и ротации TLS-сертификатов Webhook

true

enableDisaggregatedSet – установка прав и вебхука для DisaggregatedSet#

Параметр

Описание

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

enableDisaggregatedSet

Установка ClusterRole и валидирующего Webhook-сервера для DisaggregatedSet. Сами CRD, контроллер и базовые RBAC-роли менеджера развертываются всегда

true

replicaCount – количество реплик#

Параметр

Описание

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

replicaCount

Количество реплик pod инструмента

1

imagePullSecrets – Secret для загрузки образов#

Параметр

Описание

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

imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

image – параметры контейнерного образа#

Параметр

Описание

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

image.manager.repository

Путь к репозиторию образа

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

image.manager.tag

Тег образа, по умолчанию используется версия Helm-чарта

v0.9.0

image.manager.pullPolicy

Политика загрузки образа

IfNotPresent

podAnnotations – аннотации pod#

Параметр

Описание

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

podAnnotations

Дополнительные аннотации для pod

{}

podSecurityContext – параметры контекста безопасности pod#

Параметр

Описание

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

podSecurityContext.runAsNonRoot

Запуск pod от имени пользователя без административных полномочий

true

podSecurityContext.fsGroup

Идентификатор группы файловой системы для pod, назначаемый владельцем всех файлов и каталогов на подключенных томах

~

securityContext – контекст безопасности контейнера#

Параметр

Описание

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

securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

service – настройки Service#

Параметр

Описание

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

service.type

Тип Service

ClusterIP

service.port

Порт Service

9443

resources – запросы и лимиты ресурсов контейнера#

Параметр

Описание

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

resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

1

resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

1Gi

nodeSelector – селектор узлов для планирования pod#

Параметр

Описание

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

nodeSelector

Селектор узлов для планирования pod

{}

tolerations – параметры Toleration для pod#

Параметр

Описание

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

tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

affinity – правила привязки (affinity и anti-affinity) pod к узлам#

Параметр

Описание

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

affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

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

Параметр

Описание

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

gangSchedulingManagement

Настройки интеграции с внешними планировщиками (например, Volcano или YuniKorn) для реализации gang-планирования групп pod. Используется для обеспечения точечного запуска всех pod группы LeaderWorkerSet.
Пример конфигурации:

gangSchedulingManagement:
  schedulerProvider: volcano

{}