Менеджер клиентских кластеров (shturval-cluster-manager)
О сервисе
| Параметр | Значение |
|---|---|
| Название в интерфейсе | Менеджер клиентских кластеров |
| Системное название (идентификатор) | shturval-cluster-manager |
| Назначение в кластере | Управление жизненным циклом клиентских кластеров: создание, удаление, настройка; при первичном развёртывании клиентского кластера устанавливает платформенные сервисы. Устанавливается в кластер управления. |
| Критический | Да |
| Публичный репозиторий | — (компонент платформы «Штурвал») |
| Зависимости | shturval-cluster-manager-crds, shturval-auth, shturval-trust-manager |
| Неймспейс | shturval-cluster-manager |
1. Обзор
cluster-manager — компонент платформы Штурвал, отвечающий за установку, обновление и синхронизацию системных сервисов в управляющем кластере. Он не требует ручного запуска helm upgrade — состояние сервисов описывается объектами ShturvalServiceConfig (SSC), а кастомизация администратором — через ShturvalServicePatch (SSP).
При первичном развёртывании клиентского кластера cluster-manager также участвует в согласовании установки платформенных сервисов и связан с применением конфигураций узлов через механизм Node Config (NCI) — см. Модуль конфигурации узлов и Конфигурация узлов. Обзор провайдеров инфраструктуры и ссылки на документацию по каждому провайдеру — Провайдеры.
Каждый сервис поставляется как один или несколько Helm-чартов. Чарты с CRD (*-crds) устанавливаются отдельно и помечены как Hidden — они управляются автоматически.
2. Управление сервисами через платформу
2.1. Как работает cluster-manager
- Cluster-manager читает объекты
ShturvalServiceConfigи обеспечивает, чтобы состояние чартов в кластере соответствовало им. - Объекты SSC создаются и обновляются платформой при обновлениях; не редактируйте SSC вручную — изменения могут быть перезаписаны.
- Для кастомизации используйте
ShturvalServicePatch(SSP), который накладывается поверх SSC.
2.2. Включение и отключение сервисов
Управление режимом сервиса — через поле mode в SSC или SSP:
Значение mode |
Поведение |
|---|---|
Auto |
Сервис управляется cluster-manager автоматически |
Disabled |
Сервис отключён |
Инфраструктурные провайдеры помечаются как критические Critical (недоступно отключение сервиса в платформе) только для тех сред, где кластер управления развёрнут с соответствующим провайдером: OpenStack (shturval-capos), Shturval v2 (shturval-capsm), vSphere (shturval-capvs) или oVirt (shturval-capov). Провайдеры Basis Dynamix (shturval-capbd), Yandex Cloud (shturval-capy) и vCloud Director (shturval-capvcd) не относятся к критическим сервисам.
2.3. Зависимости между сервисами
Cluster-manager соблюдает порядок установки. Основные зависимости:
| Сервис | Зависит от |
|---|---|
shturval-capi |
shturval-capi-crds, shturval-local-csi, shturval-ingress-controller |
shturval-capsm |
shturval-capsm-crds, shturval-cert-manager |
3. Диагностика
3.1. Состояние сервисов
| Что проверить | Команда |
|---|---|
| Все SSC в кластере | kubectl get shturvalserviceconfig |
| Все SSP в кластере | kubectl get shturvalservicepatch |
| Статус конкретного SSC | kubectl describe shturvalserviceconfig <имя> |
| Поды CAPSM | kubectl get pods -n shturval-capsm |
| Поды CAPI | kubectl get pods -n capi-system |
| Поды мониторинга | kubectl get pods -n victoria-metrics |
3.2. Типичные проблемы
| Симптом | Возможная причина | Действие |
|---|---|---|
| Под сервиса не запускается | Некорректные параметры в SSP | Проверить kubectl describe shturvalservicepatch <имя> и логи пода |
| SSC постоянно обновляется | Конфликт SSP с платформенным SSC | Убедиться, что SSP не перезаписывает поля, которые обновляет платформа |
| Провайдер CAPI не готов | Не установлены CRD | Проверить статус чарта *-crds и зависимостей |
| Сервис отключён неожиданно | Обновление платформы изменило mode |
Проверить SSC и историю обновлений платформы |
3.3. Диагностика CAPSM
Подробное руководство по диагностике провайдера manual — в shturval-capsm §4.
4. Жизненный цикл сервисов
4.1. Установка сервиса
- Cluster-manager читает SSC для сервиса.
- Проверяет зависимости (все зависимые чарты должны быть установлены).
- Применяет накопленные SSP (merges
spec.customvalues). - Устанавливает или обновляет Helm-чарт с результирующими values.
- Ожидает, пока поды перейдут в
Running.
4.2. Обновление платформы
При обновлении платформы Штурвал cluster-manager обновляет SSC с новыми версиями чартов. SSP при этом не затрагиваются, но результирующие values могут измениться (если новая версия чарта добавила или переименовала поля).
4.3. Критические сервисы
Сервисы с флагом Critical (например, все провайдеры CAPI) перезапускаются cluster-manager автоматически при сбое. Ручное удаление пода для перезапуска — допустимо.
5. Кастомизация через SSP
Общая инструкция по созданию и применению патчей — Как управлять CustomValues сервисов. Ниже — примеры в контексте cluster-manager и CAPSM.
5.1. Что такое SSP
ShturvalServicePatch — объект Kubernetes, с помощью которого администратор переопределяет параметры системного сервиса поверх платформенного SSC.
Основные поля SSP:
| Поле | Описание |
|---|---|
spec.shturvalServiceConfigName |
Имя целевого SSC (какой сервис патчим) |
spec.customvalues |
Переопределяемые значения; структура соответствует values.yaml чарта |
5.2. Расширение прав cluster-manager
Cluster-manager при раскатки кластера применяет манифесты из ClusterProfile в кластере управления. Если в профиле заданы ресурсы, например, users API-группы auth.shturval.tech или pods, стандартных прав может быть недостаточно. В таком случае проверка Secret с манифестами завершится ошибкой, а профиль кластера получит статус False (в GUI Not Ready).
Создание профилей и диагностика ошибок прав описаны на странице Как создавать и применять профили кластеров (ClusterProfile).
Дефолтные права Cluster-manager прописаны в ClusterRole - shturval-cluster-manager-role.
Чтобы добавить права, создайте отдельную ClusterRole и агрегируйте её права в роль shturval-cluster-manager-role одним из способов:
- добавьте лейбл
rbac.shturval.tech/shturval-cluster-manager-aggregated-role: "true"; - добавьте кастомный лейбл в
ClusterRoleи укажите этот лейбл вspec.customvalues.roleAggregateLabelsдляshturval-cluster-manager.
Пример ShturvalServicePatch:
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: cluster-manager-custom
spec:
shturvalServiceConfigName: shturval-cluster-manager
customvalues:
roleAggregateLabels:
custom/auth-user-role: "true"
Подробный порядок добавления прав для профилей кластеров описан в разделе Если не хватает прав на платформенные манифесты.
5.3. Пример: изменить ресурсы контроллера CAPSM
apiVersion: ops.shturval.tech/v1beta1
kind: ShturvalServicePatch
metadata:
name: capsm-resources-patch
labels:
ops.shturval.tech/ssc: shturval-capsm
spec:
shturvalServiceConfigName: shturval-capsm
customvalues:
controllerManager:
manager:
resources:
limits:
cpu: "500m"
memory: "512Mi"
5.4. Пример: включить ServiceMonitor для CAPSM
apiVersion: ops.shturval.tech/v1beta1
kind: ShturvalServicePatch
metadata:
name: capsm-servicemonitor
spec:
shturvalServiceConfigName: shturval-capsm
customvalues:
serviceMonitor:
enabled: true
5.5. Что не следует делать через SSP
- Не изменяйте поле
modeпровайдеров CAPI через SSP без согласования с платформой. - Не устанавливайте
nodeSelectorилиaffinity, конфликтующие с политикой размещения управляющего кластера. - Не изменяйте namespace через SSP — он задаётся в SSC и является частью идентификации сервиса.
6. Справочник: структура SSC и SSP
6.1. ShturvalServiceConfig (справочно)
SSC создаётся и обновляется платформой. Ключевые поля:
| Поле | Описание |
|---|---|
spec.chart |
Имя Helm-чарта |
spec.reponame |
Репозиторий чарта |
spec.version |
Версия чарта |
spec.namespace |
Namespace установки |
spec.mode |
Режим управления (Auto, Disabled) |
spec.customvalues |
Базовые values платформы |
spec.dependency |
Список зависимых чартов |
6.2. ShturvalServicePatch
| Поле | Тип | Описание |
|---|---|---|
spec.shturvalServiceConfigName |
string | Имя целевого SSC |
spec.customvalues |
object | Переопределяемые values; структура соответствует values.yaml целевого чарта |
Поле spec.customvalues в SSP накладывается поверх spec.customvalues в SSC — не заменяет его полностью. Используйте только те ключи, которые нужно переопределить.
6.3. Соответствие чартов и параметров
Параметры spec.customvalues (в SSC и SSP) соответствуют values.yaml конкретного чарта:
- CAPSM: структура
values.yamlописана в shturval-capsm §6. - Другие сервисы: структура values описана в документации соответствующего чарта.