Как развернуть новый сервис

Если в уже развёрнутом кластере платформы «Штурвал» нужно установить дополнительный сервис, это можно сделать тремя способами: через графический интерфейс, через Kubernetes API или через CLI (kubectl).

Во всех вариантах платформа использует модуль управления сервисами shturval-services и подключённый Helm-репозиторий. Сервис устанавливается из Helm-чарта выбранного репозитория: по умолчанию доступен репозиторий shturval, при необходимости можно подключить свой.

При установке в кластере создаётся ресурс ShturvalServiceConfig (SSC), а контроллер shturval-services по его конфигурации разворачивает Helm-релиз в указанном неймспейсе.

Ниже показано развёртывание через графический интерфейс и через CLI (kubectl). При работе через API используется тот же ресурс ShturvalServiceConfig; подробнее о работе со Swagger см. на странице Swagger: справочник и сценарии.


Развёртывание через графический интерфейс

Шаг 1. Открыть страницу «Доступные чарты»

  1. Выберите кластер в левом меню.
  2. Откройте раздел Сервисы и репозитории.
  3. Перейдите на страницу Доступные чарты.

На странице отображаются Helm-чарты сервисов, доступных для установки. Чарты разнесены по вкладкам в соответствии с подключёнными репозиториями (например, shturval — чарты платформы Штурвал). Под названием вкладки расположена строка поиска: можно искать чарт по названию; поиск срабатывает с первого введённого символа.

Обратите внимание! Важно: сервисы, состоящие из CRD и основного чарта. Некоторые сервисы разделены на два чарта: отдельный чарт с CRD (Custom Resource Definitions) и основной чарт сервиса. Если такое разделение есть, в каталоге будут отображаться оба чарта — как правило, CRD-чарт содержит в названии суффикс -crd (например, shturval-monitoring-crd и shturval-monitoring). В этом случае сначала установите CRD-чарт, дождитесь завершения его установки (статус Healthy на странице «Установленные сервисы»), и только после этого устанавливайте основной чарт. Установка основного чарта до завершения развёртывания CRD приведёт к ошибке.

Скриншот: страница «Доступные чарты»

Доступные чарты

Шаг 2. Выбрать чарт и нажать «Установить»

Найдите нужный сервис по названию (например, shturval-nfs-csi, shturval-dashboards, shturval-backup) и нажмите на карточке чарта кнопку Установить. Откроется страница Установка чарта для первичной настройки экземпляра.

Скриншот: кнопка «Установить» и страница установки чарта

Установка чарта

Шаг 3. Задать основные параметры

На странице Установка чарта укажите:

Параметр Описание
Название экземпляра Имя создаваемого сервиса (системный идентификатор). После создания изменить нельзя. Обычно совпадает с именем чарта (например, shturval-nfs-csi).
Версия чарта Версия Helm-чарта (по умолчанию предлагается последняя доступная). Выберите из списка.
Неймспейс Неймспейс, в котором будет развёрнут сервис. В выпадающем списке доступно создание нового неймспейса.
Режим управления Выкл — установить, но не запускать (включите позже на странице «Установленные сервисы»). Авто — установить и запустить, ресусрсы сервиса будут запущены, обновления применяются автоматически. Ручной — установить, но не создавать ресурсы и не обновлять автоматически.

Обратите внимание! Важно: фиксированный неймспейс. Некоторые чарты требуют установки в строго определённый неймспейс. Если в документации сервиса указан обязательный неймспейс — используйте именно его; установка в другой неймспейс приведёт к некорректной работе сервиса.

При необходимости задайте лейблы и аннотации экземпляра.

Скриншот: выбор версии и неймспейса, создание неймспейса

Выбор версии и неймспейса Создание неймспейса

Обратите внимание! Интерфейс платформы рассчитан на поддерживаемые версии сервисов. При сильном расхождении версий отображение может не соответствовать фактическим полям чарта.

Шаг 4. Спецификация сервиса (customvalues)

Блок Спецификация сервиса — это values в формате YAML, которые передаются в Helm при установке или обновлении сервиса. Здесь можно переопределить параметры чарта (порты, лимиты ресурсов, флаги и т.д.).

  • Изменения вносятся только в левой части — в блоке «Спецификация сервиса».
  • Справа отображаются доступные параметры чарта (только для просмотра). Доступен поиск по названию параметра.
Скриншот: блок «Спецификация сервиса» и доступные values

Спецификация сервиса и values

Для первой установки можно оставить значения по умолчанию или задать минимально необходимые (например, для NFS — адрес сервера и шару). Значения в спецификации сервиса (customvalues), заданные при установке, не сбрасываются автоматически при последующих обновлениях кластера или чарта в рамках поддерживаемых сценариев — они остаются частью SSC, пока вы их не измените вручную, через патч SSP или пока обновление платформы явно не потребует миграции (см. заметки в релизах). Детальную кастомизацию после установки удобно выполнять через ShturvalServicePatch или на странице Установленные сервисыУправлять → Спецификация сервиса.

Шаг 5. Установить

Нажмите кнопку Установить. Платформа создаёт ресурс ShturvalServiceConfig и при режиме Авто или Ручной разворачивает Helm-релиз в кластере. Установленный экземпляр появится на странице Установленные сервисы.

Проверить состояние можно там же: Сервисы и репозиторииУстановленные сервисы → найдите сервис по имени → Управлять. Подробнее об управлении — Сервисы и репозитории (обзор).


Репозитории по протоколу OCI

Если чарт находится в репозитории, подключённом по протоколу OCI, на вкладке этого репозитория на странице Доступные чарты нужно вручную ввести название чарта.

  1. Введите название чарта в поле на вкладке репозитория.
  2. Нажмите Проверить версию — отобразится список доступных версий чарта.
  3. Выберите версию (или оставьте предложенную последнюю).
  4. Нажмите Проверить чарт — откроется страница Установка чарта с предзаполненными названием и версией.
  5. Заполните неймспейс, режим управления и при необходимости спецификацию сервиса, затем нажмите Установить.
Скриншот: проверка версии чарта (OCI)

Проверка версии чарта Список версий Проверить чарт

Развёртывание через консоль (kubectl)

Установить сервис можно, создав ресурс ShturvalServiceConfig (SSC) в кластере. Контроллер shturval-services обработает SSC и развернёт Helm-релиз из указанного репозитория.

Условия: в кластере должен быть подключён репозиторий с нужным чартом (как и для GUI). Имя чарта и версия должны существовать в этом репозитории.

Пример манифеста ShturvalServiceConfig

Ниже — минимальный пример для развёртывания сервиса из репозитория shturval (имя чарта должно совпадать с именем сервиса в репозитории, например shturval-nfs-csi):

apiVersion: ops.shturval.tech/v1beta1
kind: ShturvalServiceConfig
metadata:
  name: shturval-nfs-csi          # системное имя экземпляра (нельзя изменить после создания)
  namespace: shturval-services     # неймспейс, где создаётся ресурс SSC (часто shturval-services или свой)
spec:
  chart: shturval-nfs-csi          # имя чарта в репозитории
  reponame: shturval               # имя подключённого репозитория
  version: "4.11.0"                # версия чарта (должна быть в репозитории)
  namespace: nfs                   # неймспейс, в котором развернётся Helm-релиз (поды, ConfigMap и т.д.)
  mode: auto                       # auto | manual | absent
  customvalues: |                  # YAML values для Helm (опционально)
    # storageClass:
    #   create: true
    #   name: nfs-csi

Поле spec.dependency при необходимости задаёт зависимости от других сервисов (например, CRD). Для многих чартов shturval зависимости уже учтены в платформе.

Применение манифеста

  1. Сохраните манифест в файл (например, ssc-nfs.yaml).
  2. Примените в кластер:
kubectl apply -f ssc-nfs.yaml
  1. Проверьте появление SSC и статус:
kubectl get shturvalserviceconfig shturval-nfs-csi -o wide
kubectl describe shturvalserviceconfig shturval-nfs-csi

В status.conditions отображается ход установки (Install, Sync, Healthy и др.). После успешной установки сервис появится на странице Установленные сервисы в GUI.

Важные поля spec

Поле Описание
chart Имя чарта в репозитории (как в каталоге репозитория).
reponame Имя репозитория, подключённого в кластере (например, shturval).
version Версия чарта; должна быть доступна в репозитории.
namespace Неймспейс для Helm-релиза (куда развернутся поды и объекты).
mode auto — автоуправление, manual — ручное, absent — не разворачивать.
customvalues Строка YAML с values для Helm.

Имя ресурса (metadata.name) станет системным именем сервиса и не должно меняться после создания.


Что делать после установки

  • Проверить статус: Установленные сервисы → выберите сервис → Управлять. На вкладке «Сервис» — состояние и версия.
  • Изменить конфигурацию: через ShturvalServicePatch или блок «Спецификация сервиса» на странице управления сервисом.
  • Включить отключённый сервис: если при установке был выбран режим Выкл, на странице Установленные сервисы откройте сервис → Управлять → измените режим на Авто или РучнойСохранить.

Подробнее об управлении сервисами — Сервисы и репозитории (обзор).