Shturval v2

Управление хостами по SSH.

Назначение

Shturval v2 — внутренний провайдер платформы «Штурвал». Он поддерживает добавление физических серверов и виртуальных машин в качестве хостов для дальнейшего использования в кластерах, а также позволяет создавать гибридные кластеры.

Провайдер не требует создания разных шаблонов для разных версий Kubernetes. При обновлении кластера, платформа “Штурвал” автоматически обновляет версию Kubernetes на узлах кластеров с провайдером Shturval v2.

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

Для работы с физическими серверами и виртуальными машинами провайдеру необходимы:

Создание экземпляра провайдера

Перейдите в ПровайдерыКонфигурация провайдеров. В блоке Сервисы провайдеров проверьте, включён ли Провайдер Shturval v2. Если сервис отключён, нажмите на переключатель и дождитесь запуска. Затем нажмите Добавить экземпляр провайдера → «+ Shturval v2».

Переключатель сервиса переводит связанные SSC провайдера в режим auto: сначала CRD-чарт, затем основной чарт провайдера. Дождитесь, пока сервис перейдёт в состояние готовности (см. скриншот ниже).

Переключение режима сервиса провайдера

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

Конфигурация провайдера 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).

Добавление хостов

В блоке Хосты нажмите + для добавления хоста.

Добавление хоста

Добавление хоста в Shturval v2

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

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

Частные учётные данные для хоста

Частные учётные данные SSH

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

Добавленные хосты отображаются в списке в левой нижней части экрана. В списке можно посмотреть IP-адрес, имя хоста, роль и статус. Роль можно изменить, если хост ещё не присоединён к кластеру.

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

В зависимости от результата обработки провайдером хост может иметь один из статусов:

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

Ошибка конфигурации хоста

Чтобы посмотреть подробную информацию о хосте, нажмите на строку с ним. Если хост не занят, можно удалить хост или изменить его параметры:

  • роль;
  • учётные данные подключения;
  • лейблы хоста.

Если хост находится в состоянии MachineAttached и привязан к кластеру, можно изменить только учётные данные для подключения. Остальные параметры недоступны для редактирования.

После создания хоста провайдером в интерфейсе отображаются:

  • IP-адрес хоста;
  • состояние;
  • сведения об операционной системе: тип и образ ОС;
  • версия ядра;
  • архитектура;
  • сетевой интерфейс;
  • root volume size;
  • имя хоста;
  • перечень портов;
  • сведения о доступных вычислительных ресурсах.

Эти данные получаются провайдером непосредственно с хоста и не редактируются в интерфейсе. Они присваиваются хосту в виде лейблов для выбора в селекторе при добавлении хостов в кластер.

Если нужно изменить имя пользователя в учётных данных, укажите также приватный ключ пользователя. Иначе изменения не будут применены.

Удаление хостов

Можно удалить один хост или несколько хостов одновременно.

Для удаления одного хоста используйте один из способов:

  • в списке хостов наведите курсор на строку с хостом, установите флажок Выбрать для удаления и нажмите значок удаления в блоке Хосты;
  • откройте хост и в блоке Параметры хоста нажмите Удалить.

Чтобы удалить несколько хостов, установите флажки Выбрать для удаления в строках нужных хостов и нажмите значок удаления в блоке Хосты.

Удаление хостов

Удаление хостов Shturval v2

Хосты, привязанные к кластеру, удалить нельзя.

Как добавить пароль для команд sudo

В провайдере Shturval v2 реализован механизм выполнения команд на хостах через sudo с паролем. Пароль хранится в Secret в неймспейсе shturval-capsm кластера управления.

Если для SSH-пользователя на хостах должны выполняться команды sudo с паролем, после добавления таких хостов в экземпляр провайдера в состоянии StcDeployment отобразится сообщение о необходимости задать пароль. Чтобы добавить пароль для выполнения команд sudo:

  1. Перейдите в кластер управления - неймспейс shturval-capsm - раздел Хранилище - Secrets.
  2. Найдите 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

&lt;имя-экземпляра провайдера&gt;-capsm-v2-provider-secret

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