Shturval v2
Управление хостами по SSH.
Назначение
Shturval v2 — внутренний провайдер платформы «Штурвал». Он поддерживает добавление физических серверов и виртуальных машин в качестве хостов для дальнейшего использования в кластерах, а также позволяет создавать гибридные кластеры.
Провайдер не требует создания разных шаблонов для разных версий Kubernetes. При обновлении кластера, платформа “Штурвал” автоматически обновляет версию Kubernetes на узлах кластеров с провайдером Shturval v2.
Требования к хостам
Для работы с физическими серверами и виртуальными машинами провайдеру необходимы:
- доступ к хосту по SSH;
- возможность выполнять
sudoбез пароля. При необходимости выполнятьsudoс паролем, потребуется ручные правки в Secret провайдера после добавления хостов в провайдер - см. Как добавить пароль для команд sudo; - установленные на хостах пакеты
iptablesиgnupg. - установленная на хостах ОС из списка поддерживаемых версий — см. поддерживаемые операционные системы в требованиях.
Создание экземпляра провайдера
Перейдите в Провайдеры → Конфигурация провайдеров. В блоке Сервисы провайдеров проверьте, включён ли Провайдер Shturval v2. Если сервис отключён, нажмите на переключатель и дождитесь запуска. Затем нажмите Добавить экземпляр провайдера → «+ Shturval v2».
Переключатель сервиса переводит связанные SSC провайдера в режим auto: сначала CRD-чарт, затем основной чарт провайдера. Дождитесь, пока сервис перейдёт в состояние готовности (см. скриншот ниже).

Форма конфигурации провайдера Shturval v2

Поля конфигурации
| Поле | Обязательность | Описание |
|---|---|---|
| Имя провайдера | Да | Уникальное имя для идентификации экземпляра в платформе. |
| Пул IP-адресов | Нет | Выберите пул для назначения адресов API-серверу и VIP Ingress при создании кластера. |
| Имя пользователя SSH | Да | Имя пользователя для подключения к хостам по SSH. Пользователь должен иметь возможность выполнять команды через sudo без пароля. При необходимости выполнения с паролем, потребуется добавить пароль вручную в Secret провайдера - см. Как добавить пароль для команд sudo. |
| Приватный SSH-ключ | Да | Загрузите файл с приватным ключом или вставьте ключ в текстовое поле. |
По умолчанию в провайдере используются общие учётные данные для всех хостов. При необходимости вы можете указать частные учётные данные для некоторых или всех хостов.
Учётные данные сохраняются в Secret кластера управления в неймспейсе shturval-capsm. Имя Secret формируется из имени экземпляра провайдера с суффиксом capsm-v2-provider-secret. Пример Secret приведён на странице Провайдер Shturval v2 (shturval-capsm).
Добавление хостов
В блоке Хосты нажмите + для добавления хоста.
Добавление хоста

| Поле хоста | Обязательность | Описание |
|---|---|---|
| IP-адрес или FQDN | Да | IP или доменное имя хоста. |
| Роль | Да | Роль хоста. Можно выбрать рекомендуемую роль (controlplane, workers, infra, ingress, other) или ввести новое значение. Роль добавляется как лейбл хоста, например role:other. |
| Лейблы | Нет | Дополнительные лейблы для селектора при создании кластера. Лейблы с сетевым интерфейсом, именем хоста, ОС и её версией, именем экземпляра провайдера, CPU, Memory и Disk создаются автоматически. |
| Использовать общие учётные данные | — | Выберите «Нет», если для хоста нужны отдельные учётные данные SSH (пользователь и ключ). |
Вы можете использовать роли, доступные по умолчанию или создать кастомные роли для хостов. Для создания и назначения роли при добавлении хоста в провайдер в поле “Роль” введите имя вашей кастомной роли и в выпадающем блоке нажмите “Создать имя создаваемой роли”.
Частные учётные данные для хоста

При создании кластера или масштабировании группы узлов роли и лейблы позволяют выбрать нужные хосты. Если у группы узлов не задана роль хоста или селектор лейблов, к ней могут присоединяться любые доступные хосты.
Добавленные хосты отображаются в списке в левой нижней части экрана. В списке можно посмотреть IP-адрес, имя хоста, роль и статус. Роль можно изменить, если хост ещё не присоединён к кластеру.
Просмотр и редактирование хостов
В зависимости от результата обработки провайдером хост может иметь один из статусов:
| Статус | Описание |
|---|---|
| Занят | Хост привязан к кластеру и недоступен для привязки или изменения. |
| Свободен | Хост готов к присоединению к кластеру. |
| Ошибка | У хоста невалидная конфигурация, например недостаточно CPU или памяти; провайдер не может подключиться к хосту с указанными пользователем и приватным ключом; пользователь не имеет достаточных прав для выполнения команд по SSH. |
| Не создан | Провайдер не получил ответ от машины. Возможные причины: нет доступа к сети, в которой находится IP-адрес хоста, или адрес невалиден. |
| Не определён | Реконсиляция хоста не завершена. После её завершения статус изменится на один из перечисленных выше. |
Пример ошибки: недостаточно ресурсов (CPU)

Чтобы посмотреть подробную информацию о хосте, нажмите на строку с ним. Если хост не занят, можно удалить хост или изменить его параметры:
- роль;
- учётные данные подключения;
- лейблы хоста.
Если хост находится в состоянии MachineAttached и привязан к кластеру, можно изменить только учётные данные для подключения. Остальные параметры недоступны для редактирования.
После создания хоста провайдером в интерфейсе отображаются:
- IP-адрес хоста;
- состояние;
- сведения об операционной системе: тип и образ ОС;
- версия ядра;
- архитектура;
- сетевой интерфейс;
- root volume size;
- имя хоста;
- перечень портов;
- сведения о доступных вычислительных ресурсах.
Эти данные получаются провайдером непосредственно с хоста и не редактируются в интерфейсе. Они присваиваются хосту в виде лейблов для выбора в селекторе при добавлении хостов в кластер.
Если нужно изменить имя пользователя в учётных данных, укажите также приватный ключ пользователя. Иначе изменения не будут применены.
Удаление хостов
Можно удалить один хост или несколько хостов одновременно.
Для удаления одного хоста используйте один из способов:
- в списке хостов наведите курсор на строку с хостом, установите флажок Выбрать для удаления и нажмите значок удаления в блоке Хосты;
- откройте хост и в блоке Параметры хоста нажмите Удалить.
Чтобы удалить несколько хостов, установите флажки Выбрать для удаления в строках нужных хостов и нажмите значок удаления в блоке Хосты.
Удаление хостов

Хосты, привязанные к кластеру, удалить нельзя.
Как добавить пароль для команд sudo
В провайдере Shturval v2 реализован механизм выполнения команд на хостах через sudo с паролем. Пароль хранится в Secret в неймспейсе shturval-capsm кластера управления.
Если для SSH-пользователя на хостах должны выполняться команды sudo с паролем, после добавления таких хостов в экземпляр провайдера в состоянии StcDeployment отобразится сообщение о необходимости задать пароль. Чтобы добавить пароль для выполнения команд sudo:
- Перейдите в кластер управления - неймспейс
shturval-capsm- раздел Хранилище - Secrets. - Найдите Secret c именем
<имя-экземпляра провайдера>-capsm-v2-provider-secretи добавьте ключsshPassword, в значении которого укажите пароль SSH-пользователя и сохраните изменения.
Пример Secret:
apiVersion: v1
kind: Secret
metadata:
name: <имя-экземпляра-провайдера>-capsm-v2-provider-secret
namespace: shturval-capsm
type: Opaque
data:
sshKey: dXNlcnNzaGtleQ==
sshUser: c2h0dXJ2YWw=
sshPassword: LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KdXNlcnNzaGtleQotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0=
Скриншот: Secret

- Вернитесь в экземпляр провайдера и дождитесь, когда хосты станут готовы к присоединению к кластеру.