Обзор работы с сервисами и репозиториями

Обзор

Системные сервисы в платформе «Штурвал» — это Helm-чарты, управляемые через кастомный тип объекта ShturvalServiceConfig (SSC). Они отображаются на странице Установленные сервисы раздела Сервисы и репозитории.

Кто устанавливает сервисы: при первичном развёртывании кластера системные сервисы устанавливает ClusterManager. После развёртывания кластера управление установкой сервисов выполняет shturval-services — сервис платформы «Штурвал» на основе Helm и Flux. Он предназначен только для системных сервисов и не подходит для развёртывания пользовательских приложений. Для непрерывной доставки и развёртывания прикладных приложений в платформе поставляется ArgoCD (сервис shturval-cd).

Подробнее о кастомных ресурсах, которые лежат в основе работы с сервисами (ShturvalServiceConfig, ShturvalServicePatch, ShturvalRepoConfig) см. на странице «Кастомные ресурсы в платформе».

Наименование сервиса: в карточке и в списках отображается русскоязычное название (например, «Модуль NFS оператора») — оно задаётся аннотацией ресурса SSC. Имя экземпляра сервиса (идентификатор) — это имя ресурса ShturvalServiceConfig в кластере (например, shturval-nfs-csi); оно используется в API, в kubectl, в ссылках SSP (shturvalServiceConfigName) и не подлежит изменению после создания.

Где открыть: выберите кластер → Сервисы и репозиторииУстановленные сервисы.

На странице доступны:

  • счётчики — по установленным, включённым и работающим сервисам;
  • поиск — по неймспейсам, именам сервисов и экземпляров сервисов, названиям чартов;
  • сортировка — по работающим и не работающим сервисам (удобно для быстрой проверки проблем в кластере), обновленные с помощью установки патча или нет;
  • фильтрация — по режиму управления: Ручной, Автоматический, Отключен.
Скриншот: список установленных сервисов

Установленные сервисы


Режимы управления

Для каждого установленного сервиса можно задать режим управления:

Режим Описание
Выкл (Absent) Сервис отключён в кластере. Режим недоступен для критически важных сервисов платформы. При отключении ресурсы, которые были установлены в режиме Авто (Auto), будут удалены
Авто (Auto) Ресурсы сервиса в неймспейсе создаются автоматически, сервис запускается в кластере. При изменении конфигурации выбирайте этот режим для автоматического применения обновлений.
Ручной (Manual) Сервис включён, но запуск и обновление ресурсов выполняются вручную. Используется, когда нужна версия сервиса, отличная от поставляемой в составе платформы.

Чтобы приостановить работу сервиса без удаления — выберите режим Выкл.

Скриншот: выбор режима на карточке сервиса

Выбор режима сервиса


Просмотр и редактирование сервиса

Нажмите Управлять на карточке установленного сервиса, откроется страница просмотра системного сервиса с несколькими вкладками.

Вкладка «Сервис»

Отображаются:

  • наименование и версия;
  • статус установки чарта;
  • состояние сервиса;
  • неймспейс, в котором развернут сервис. Когда сервис развернут, нажатие на имя неймспейса открывает страницу дашборда нейсмпейса.
  • дата последнего изменения.

Здесь же можно изменить режим управления.

Скриншот: страница сервиса

Просмотр и редактирование сервиса

Спецификация сервиса (customvalues): при необходимости можно переопределить параметры или добавить новые в блок Спецификация сервиса. Значения, заданные здесь при установке или правках, сохраняются при обновлении кластера и платформы (их не перезаписывает сам факт обновления версии чарта в рамках общего процесса — подробности в разделе «Обновление сервисов, поставляемых в составе платформы» ниже). Рекомендуется постоянные переопределения вносить через кастомный ресурс ShturvalServicePatch (SSP) — он переопределяет параметры Helm-чарта без правки исходного ShturvalServiceConfig (SSC). Подробнее — Как управлять CustomValues.

Доступные параметры для конфигурации сервиса — набор values, поставляемых с чартом установленной версии; доступны только для просмотра. Поддерживается поиск по названию (поиск выполняется при вводе первого символа).

Вкладка «ShturvalServicePatch»

Список ShturvalServicePatch (SSP), созданных для этого сервиса. По нажатию на строку с патчем можно перейти к просмотру и редактированию YAML манифеста. Патч можно удалить из списка (действие в строке) или со страницы просмотра манифеста.

Если к сервису применён хотя бы один SSP, у сервиса отображаются состояние Patch и статус Patched (в дополнение к обычным условиям установки).

Скриншот: вкладка «ShturvalServicePatch» — список применённых к сервису ShturvalServicePatch

Вкладка «ShturvalServicePatch»

После изменения манифеста выполните Проверить. Результат проверки отображается справа. Раскройте блок результата, чтобы увидеть полный манифест. Если валидация формата не пройдена, проверка манифеста недоступна. Нажмите Сохранить — без сохранения изменения не применятся.

Вкладка «Лейблы и аннотации»

Изменение лейблов и аннотаций экземпляра сервиса.

После внесения изменений на любой вкладке нажмите Сохранить.

Вкладка «Манифест»

На вкладке “Манифест” вы можете посмотреть, скопировать и при необходимости отредактировать YAML-манифест объекта shturvalserviceconfig просматриваемого сервиса. Напоминаем! Рекомендуется вносить изменения в CustomValues сервисов с помощью ShtuvalServicePatch.

Скриншот: вкладка «Манифест» — YAML-манифест объекта ShturvalServiceConfig

Вкладка «Манифест»


Удаление и отключение

  • Удалить экземпляр сервиса — на карточке сервиса нажмите Удалить.
  • Приостановить работу — выберите режим управления Выкл.

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

Удаление и отключение сервисов, критически важных для работы платформы, на странице установленных сервисов заблокировано.


Обновление сервисов, поставляемых в составе платформы

Сервисы в составе платформы поставляются в определённых версиях чартов. Их обновление возможно двумя способами.

В рамках обновления кластера

При запуске обновления кластера (дашборд кластера → блок обновления или Обновление версии Kubernetes) один из этапов — обновление системных сервисов. Платформа обновляет версии чартов сервисов до версий, соответствующих целевой версии Штурвал (по данным из ShturvalUpdateChannel). Сервисы в режиме Авто получают новую версию автоматически на этом этапе; для сервисов в режиме Ручной обновление версии в рамках общего процесса не происходит — при необходимости версию меняют вручную в ресурсе SSC (поле version).

Подробнее об этапах и запуске обновления — Обновление версии Kubernetes.

Ручное обновление версии сервиса

Если нужно сменить версию отдельного сервиса без полного обновления кластера (или сервис в режиме Ручной):

Обратите внимание! для повышения версии сервиса чарт с нужной версией должен быть доступен в репозитории, из которого развёрнут этот сервис (поле spec.reponame в SSC; репозиторий настраивается в разделе Сервисы и репозиторииРепозитории). Если чарта с указанной версией в репозитории нет, обновление не выполнится.

  1. Через GUI: Вкладка Манифест на странице сервиса → измените поле spec.version (или version) на нужную версию чарта → сохраните.
  2. Через kubectl: kubectl edit shturvalserviceconfig <системное-имя> и измените spec.version.

После сохранения контроллер shturval-services применит новую версию чарта (в режиме Авто — автоматически на поддерживаемую в этом релизе версию сервиса; в режиме Ручной — в соответствии с настройками). Совместимость версий чартов с версией платформы см. в документации по обновлению и в репозитории чартов.


Conditions ресурса ShturvalServiceConfig (SSC)

У ресурса ShturvalServiceConfig в поле status заполняются conditions — условия, отражающие состояние установки и согласования сервиса контроллером (shturval-services).

Как посмотреть: в GUI — страница Установленные сервисы → найдите карточку нужного сервиса и нажмите Управлять → вкладка Сервис (состояние сервиса, статус установки чарта); либо через консоль:

kubectl get shturvalserviceconfig <имя> -o jsonpath='{.status.conditions}' | jq .
# или
kubectl describe shturvalserviceconfig <имя>

В секции Status / Conditions отображаются элементы с полями:

  • type — тип условия (например, готовность к установке, результат установки чарта);
  • statusTrue, False или Unknown;
  • reason — краткая причина;
  • message — сообщение для диагностики.

По ним можно понять, применён ли чарт, есть ли ошибки установки или конфликты с патчами. При проблемах с сервисом проверьте status.conditions и события объекта (kubectl describe shturvalserviceconfig <имя>).


Группы сервисов (по назначению)

Платформенные сервисы сгруппированы по назначению и по участию в группах быстрой установки.

Подробный перечень сервисов с версиями и привязкой к группам см. на странице «Сервисы репозитория Shturval».

Чтобы развернуть новый сервис из каталога чартов — Как развернуть новый сервис. Подробнее об отдельных сервисах — по ссылкам в боковом меню раздела Сервисы и репозитории.