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).

Версия платформы, с которой хосты готовятся утилитой stc, задаётся в ресурсе ShturvalProvider в поле spec.releaseVersion. Если на кластере управления 2.14.1 необходим клиентский кластер более ранней версии, выполните шаги инструкции Как создать клиентский кластер с провайдером Shturval v2 версии ниже 2.14.1.

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

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

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

Добавление хоста в 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. Вернитесь в экземпляр провайдера и дождитесь, когда хосты станут готовы к присоединению к кластеру.