Процесс установки

Инсталляция кластера управления через GUI/CLI, микрокластер, траблшутинг.

Установка выполняется с рабочего места администратора утилитой shtil. В открытом контуре машина shtil и узлы создаваемого кластера должны иметь сетевой доступ к официальному реестру образов r.shturval.tech (HTTPS, порт 443).

Перед установкой сверьтесь с требованиями для открытого контура, с подготовкой к установке (машина shtil, узлы, SSH, реестр образов) и с применимыми сценариями в схемах межсетевого взаимодействия. Про общий состав реестра образов см. также сервисы репозитория.

Доступные сценарии установки:

  • с GUI — install-gui, затем мастер установки в браузере;
  • с флагами — install-cli и подкоманда провайдера;
  • с YAML — install-cli … --yaml-path / -f.

Установка с GUI

Установка с GUI состоит из двух этапов: сначала shtil создаёт локальный установочный кластер, затем администратор настраивает кластер управления в веб-мастере установки.

Команда install-gui также доступна через синонимы create-cluster и create.

Этап 1. Запустите локальный установочный кластер

В открытом контуре обязателен флаг --bootstrap-license1. По умолчанию образы временного установочного кластера загружаются с r.shturval.tech.

./shtil install-gui \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ"

С заданным паролем2 admin:

./shtil install-gui \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --password="ПАРОЛЬ-ADMIN"

1 Если лицензия содержит специальные символы ($, <, >, *, &, ?, /, ), заключите её в одинарные кавычки.

2 Пароль в --password должен быть не короче 8 символов и содержать строчную букву, заглавную букву и цифру.

Основные параметры запуска локального установщика:

ПараметрОписание
--bootstrap-licenseЛицензия платформы. Обязательна для install-gui. Если лицензия содержит специальные символы ($, <, >, *, &, ?, /, ), заключите её в одинарные кавычки.
--bootstrap-registryАдрес реестра образов; по умолчанию r.shturval.tech
--bootstrap-insecureОтключить проверку TLS при обращении к реестру образов
--bootstrap-registry-certs-dirКаталог с доверенными сертификатами реестра
--bootstrap-kubeconfig-pathПуть к kubeconfig локального установочного кластера
--passwordПароль администратора платформы для входа в веб-интерфейс
--name, -nИмя локального установочного кластера (подсказка по умолчанию в справке: shturval-installer)
--wait, --retry, --debugОжидание Control Plane узла локального кластера, число повторов, режим сохранения контейнера при ошибке
-v, --verbosityДетализация лога CLI (до 10; см. ./shtil --help)

После успешного запуска в консоль выводятся данные учётной записи администратора и URL мастера установки в графическом интерфейсе. Учётные данные по умолчанию сохраняются в user.conf в каталоге данных установщика (~/.shturval/installer или /tmp/shturval/installer). Сохраните логин и пароль — они понадобятся для входа в постоянный кластер.

Браузер для веб-интерфейса — см. требования к браузерам.

Если shtil install-gui запускается на удалённой Linux-машине, откройте мастер установки в браузере по IP-адресу или hostname этой машины, без предварительного проброса портов, например, http://10.11.12.13:30080/.

Переход по hostname возможен только при условии, что в DNS настроен резолвинг доменного имени на IP-адрес.

Жизненный цикл локального установщика: кнопка «Отменить инсталляцию» в мастере установки сбрасывает заполненную форму создания кластера и возвращает к экрану инициализации; обновление страницы без отмены данные полей обычно не сбрасывает. После успешной установки постоянного кластера временный (bootstrap) кластер не удаляется автоматически — при необходимости очистите его по инструкции Деинсталляция временного кластера. При ошибке без --debug контейнер локального установщика может быть удалён; для диагностики используйте ./shtil install-gui ... --debug.

Этап 2. Откройте мастер установки в графическом интерфейсе и пройдите шаги

  1. Откройте URL веб-интерфейса из вывода shtil (обычно http://<ip-машины-shtil>:30080).
  2. Войдите под учётной записью администратора.
  3. Нажмите Создать кластер управления.
  4. Заполните мастер установки и нажмите Создать кластер на шаге проверки данных.
  5. Дождитесь завершения развёртывания (ориентировочно 15–30 минут). Не закрывайте вкладку браузера до завершения установки кластера управления.
Скриншот стартового экрана локального установщика

Стартовый экран локального установщика

Шаг 1. Выбор провайдера

Скриншот и поля шага

Мастер установки кластера управления — выбор провайдера

ПолеОписание
Имя кластераУникальное имя кластера управления. Используется в служебных объектах и FQDN. Указывайте латиницу, цифры и дефис.
Выберите провайдерВыберите провайдера инфраструктуры, подготовленного перед инсталляцией: Shturval v2, VMware vSphere, oVirt и подобные, OpenStack, VK Cloud или Selectel.

Обратите внимание! провайдер, с которым разворачивается платформа, будет установлен в платформе как критически важный сервис - недоступен для отключения. Остальные инфраструктурные провайдеры в платформе будут выключены.

Перед заполнением формы проверьте требования выбранного провайдера: Shturval v2, VMware vSphere, oVirt и подобные провайдеры, OpenStack, VK Cloud, Selectel.

Шаг 2. Конфигурация провайдера

Shturval v2

Провайдер Shturval v2 использует заранее подготовленные физические или виртуальные хосты. Шаблон ВМ для этого провайдера не нужен: мастер установки подключается к хостам по SSH и устанавливает компоненты на выбранные узлы.

Скриншот и поля шага

Конфигурация провайдера Shturval v2 в мастере установки install-gui

ПолеОписание
Название экземпляраИмя конфигурации провайдера, по которому мастер установки будет ссылаться на подготовленные хосты.
Пул IP-адресовПул свободных адресов для API-сервера и VIP Ingress. Если пул не выбран или в нём нет свободных адресов, адреса задаются вручную на шаге основных данных.
Имя пользователя SSHПользователь для подключения к хостам. У пользователя должны быть права sudo без пароля.
Приватный SSH-ключПриватный ключ для подключения к хостам. Публичная часть ключа должна быть добавлена на все целевые хосты.
ХостыIP-адреса или FQDN хостов, роли (controlplane, workers, infra и другие) и при необходимости лейблы для выбора узлов в мастере установки.

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

Учётные данные сохраняются в Secret кластера управления в неймспейсе shturval-capsm. Имя Secret формируется из имени экземпляра провайдера с суффиксом capsm-v2-provider-secret. Пример Secret приведён на странице Провайдер Shturval v2 (shturval-capsm).

VMware vSphere

Для провайдера VMware vSphere используйте vCenter и параметры, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из шаблона ВМ; если шаблон не был создан заранее, подготовьте его по инструкции и вернитесь к установке.

Скриншот и поля шага

Конфигурация провайдера VMware vSphere в мастере установки install-gui

ПолеОписание
Название экземпляраИмя конфигурации vSphere в мастере установки.
Пул IP-адресовПул для API-сервера и VIP Ingress. Без пула адреса вводятся вручную.
Адрес vCenterIP-адрес или FQDN сервера vCenter.
Имя пользователяУчётная запись vCenter в формате username@domain.
ПарольПароль учётной записи vCenter.
DatacenterВиртуальный датацентр, доступный после проверки подключения.
Resource PoolРесурсный пул, в котором будут создаваться ВМ кластера управления.
NetworkСеть для ВМ. В сети должен работать DHCP.
DatastoreХранилище для дисков ВМ.
Путь для хранения ВМПапка или путь на Datastore для файлов ВМ.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Для oVirt и подобных провайдеров используйте Engine, сеть и параметры виртуализации, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из шаблона ВМ; если шаблон не был создан заранее, подготовьте его по инструкции и вернитесь к установке.

Скриншот и поля шага

Конфигурация провайдера oVirt в мастере установки install-gui

ПолеОписание
Название экземпляраИмя конфигурации провайдера в мастере установки.
URL EngineПолный адрес API Engine, например https://ovirt.example.com/ovirt-engine/api.
Имя пользователяУчётная запись Engine с доменом, например admin@internal.
ПарольПароль учётной записи Engine.
Проверка сертификатаПроверка TLS-сертификата Engine. Отключайте только если доверие к корпоративному или самоподписному CA не настроено.
DatacenterВиртуальный датацентр из списка после успешной проверки подключения.
Кластер (Clusters)Кластер виртуализации, где будут создаваться ВМ.
Профиль VNICСетевой профиль для интерфейсов ВМ. В сети должен работать DHCP.
Разрешить CSIРазрешает включить CSI-интеграцию для Persistent Volumes на шаге основных данных.
Пул IP-адресовПул для API-сервера и VIP Ingress. Без пула адреса вводятся вручную.

OpenStack, VK Cloud, Selectel

Для провайдера OpenStack, VK Cloud или Selectel используйте проект, сеть, типы ВМ и параметры API, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из образа/шаблона ВМ; если он не был создан заранее, подготовьте шаблон ВМ провайдера и вернитесь к установке.

Скриншоты и поля шага

Конфигурация провайдера OpenStack в мастере установки install-gui

Конфигурация провайдера VK Cloud в мастере установки install-gui

Конфигурация провайдера Selectel в мастере установки install-gui

ПолеОписание
Auth URL / Identity endpointURL службы авторизации Keystone.
Project IDИдентификатор проекта в облаке.
Project Domain IDИдентификатор домена проекта.
Region nameРегион или зона размещения.
InterfaceИнтерфейс доступа к API, обычно public.
Identity API VersionВерсия Identity API, обычно 3.
Сертификат (cacert)Корневой сертификат при использовании корпоративного или самоподписного CA.
Проверять сертификатВключает проверку TLS-сертификата API.
Тип учётной записиСервисный пользователь или токен. Для Selectel используйте сервисного пользователя.
Name / usernameИмя сервисного пользователя.
ПарольПароль сервисного пользователя.
User Domain NameДомен пользователя, если он требуется в облаке.
ТокенТокен доступа, если выбран тип учётной записи Токен.
Имя провайдераУникальное имя экземпляра провайдера.
CloudNameИмя облака в конфигурации.
Сетевой интерфейс ВМИмя интерфейса на создаваемых ВМ, например eth0.
sshKeyNameSSH-ключ OpenStack для доступа к ВМ.
Подсеть узловПодсеть для узлов кластера управления.
externalNetworkIDИдентификатор внешней сети для внешнего доступа.
Типы ВМ (flavours)Доступные типы виртуальных машин для узлов.
Типы дисков (volume types)Доступные типы томов для дисков ВМ.
Зоны доступностиAvailability zones при необходимости.
Управление Security GroupsУправление группами безопасности со стороны платформы.
Разрешить CSIРазрешает включить OpenStack Cinder CSI на шаге основных данных.

Шаг 3. Основные данные

Shturval v2

Скриншоты и поля шага

Shturval v2 — основные данные, базовый режим

Shturval v2 — основные данные, расширенные настройки

Shturval v2 — внешний балансировщик API

Shturval v2 — внешний балансировщик Ingress

ПолеОписание
Версия Kubernetes / версия платформыСовместимая версия Kubernetes и платформы для кластера управления.
Адрес API-сервера кластераIP или FQDN для KubeAPI. Можно выбрать свободный адрес из пула или ввести вручную.
VIP-адрес для IngressIPv4-адрес для системного Ingress, если внешний балансировщик Ingress не используется.
DNS-запись IngressWildcard FQDN для Ingress при использовании DNS вместо VIP.
Использовать внешний балансировщик для IngressОставляет для Ingress поле DNS-записи. Внешний балансировщик должен быть подготовлен до запуска развёртывания.
Использовать внешний балансировщик для API-сервераДля API-сервера указывается FQDN внешнего балансировщика. Балансировщик должен быть готов до установки.
Установить расширенные параметры информационной безопасностиВключает Secret Encryption для etcd, TLS-соединение с Kubelet и преднастроенную политику аудита.
Подсеть подовCIDR для Pod-сети. Не должен пересекаться с сетью узлов и сервисов.
Подсеть сервисовCIDR для Service ClusterIP. Не должен пересекаться с сетью узлов и подов.
Профиль кластераНабор политик и параметров, применяемых к кластеру.

VIP нужны, если не используются внешние балансировщики для KubeAPI и Ingress. Оба адреса должны быть свободны. Адрес API должен быть в подсети Control Plane, а VIP Ingress должен быть доступен с рабочей станции администратора.

VMware vSphere

Скриншоты и поля шага

VMware vSphere — основные данные, базовый режим

VMware vSphere — основные данные, расширенные настройки

ПолеОписание
Шаблон провайдераШаблон ВМ для нужной версии Kubernetes, подготовленный перед инсталляцией по инструкции. Если шаблон один, он выбирается автоматически.
Адрес API-сервера кластераVIP или FQDN для KubeAPI. Выберите адрес из пула или введите вручную.
VIP-адрес для IngressIPv4-адрес для системного Ingress в базовом режиме.
VIP-адрес для Ingress или DNS-запись IngressВ расширенном режиме можно указать IPv4-адрес или Wildcard FQDN.
Версия платформыСовместимая версия платформы для выбранного шаблона.
Включить интеграцию CSIВключает vSphere CSI для Persistent Volumes, если это разрешено шаблоном и правами vCenter.
Использовать внешний балансировщикПереводит трафик Ingress на внешний балансировщик; для Ingress указывается DNS-запись.
Установить расширенные параметры информационной безопасностиВключает Secret Encryption для etcd, TLS-соединение с Kubelet и преднастроенную политику аудита.
Подсеть подовCIDR для Pod-сети.
Подсеть сервисовCIDR для Service ClusterIP.
Профиль кластераНабор политик и параметров, применяемых к кластеру.

VIP нужны, если не используются внешние балансировщики для KubeAPI и Ingress. Оба адреса должны быть свободны. Адрес API должен быть в подсети Control Plane, а VIP Ingress должен быть доступен с рабочей станции администратора.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Скриншоты и поля шага

oVirt — основные данные, базовый режим

oVirt — основные данные, расширенные настройки

ПолеОписание
Шаблон провайдераШаблон ВМ для нужной версии Kubernetes, подготовленный перед инсталляцией по инструкции.
Версия платформыСовместимая версия платформы для выбранного шаблона.
Адрес API-сервера кластераVIP или FQDN для KubeAPI. Выберите адрес из пула или введите вручную.
VIP-адрес для IngressIPv4-адрес для системного Ingress в базовом режиме.
VIP-адрес для Ingress или DNS-запись IngressВ расширенном режиме можно указать IPv4-адрес или Wildcard FQDN.
Включить интеграцию CSIВключает CSI-интеграцию, если она разрешена в экземпляре провайдера.
Использовать внешний балансировщикПереводит трафик Ingress на внешний балансировщик; для Ingress указывается DNS-запись.
Установить расширенные параметры информационной безопасностиВключает Secret Encryption для etcd, TLS-соединение с Kubelet и преднастроенную политику аудита.
Подсеть подовCIDR для Pod-сети.
Подсеть сервисовCIDR для Service ClusterIP.
Профиль кластераНабор политик и параметров, применяемых к кластеру.

VIP нужны, если не используются внешние балансировщики для KubeAPI и Ingress. Оба адреса должны быть свободны. Адрес API должен быть в подсети Control Plane, а VIP Ingress должен быть доступен с рабочей станции администратора.

OpenStack, VK Cloud, Selectel

Скриншот и поля шага

OpenStack — основные данные

ПолеОписание
Экземпляр провайдераЭкземпляр OpenStack, VK Cloud или Selectel, в котором указан подготовленный образ/шаблон ВМ. Если экземпляр один, он выбирается автоматически.
Версия платформыСовместимая версия платформы для выбранных образов.
Включить интеграцию CSIВключает CSI для облачных дисков, если это разрешено экземпляром провайдера.
Использовать внешний балансировщик для IngressДля облачного сценария обычно включено; после создания кластера настройте балансировщик в панели облака.
DNS-запись IngressWildcard FQDN. Если поле пустое, применяется автоматическая схема *.<имя-кластера>.ip-<IP_EXTERNAL_LB>.shturval.link.
Установить расширенные параметры информационной безопасностиВключает Secret Encryption для etcd, TLS-соединение с Kubelet и преднастроенную политику аудита.
Подсеть подовCIDR для Pod-сети.
Подсеть сервисовCIDR для Service ClusterIP.
Подсеть узловCIDR для узлов; если не задан, используется подсеть из конфигурации провайдера.
Профиль кластераНабор политик и параметров, применяемых к кластеру.

Шаг 4. Конфигурация Control Plane узлов

Shturval v2

Скриншоты и поля шага

Shturval v2 — Control Plane

Shturval v2 — Control Plane, расширенные настройки

ПолеОписание
Количество Control Plane узловНечётное значение, не больше 5.
Потенциально доступные хостыХосты с ролью controlplane или подходящими лейблами.
Селектор хостовРасширенный выбор хостов по лейблам и выражениям.

VMware vSphere

Скриншот и поля шага

VMware vSphere — Control Plane

ПолеОписание
Количество Control Plane узловНечётное значение, обычно 1 для теста или 3 для отказоустойчивого кластера.
CPU / память / дискРесурсы ВМ Control Plane. Значения не должны быть ниже минимальных ограничений интерфейса.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Скриншот и поля шага

oVirt — Control Plane

ПолеОписание
Количество Control Plane узловНечётное значение, не больше 5.
Cores / Sockets / ThreadsВычислительные ресурсы ВМ Control Plane.
ПамятьОбъём оперативной памяти ВМ.
ДискОбъём диска ВМ; при локальном хранилище не меньше минимального значения интерфейса.

OpenStack, VK Cloud, Selectel

Скриншот и поля шага

OpenStack — Control Plane

ПолеОписание
Количество Control Plane узловНечётное значение, не больше 5.
Тип ВМFlavor для ВМ Control Plane.
Тип дискаVolume type для диска ВМ.
ДискОбъём диска ВМ.
Зона доступностиAvailability zone для размещения Control Plane узлов.

Шаг 5. Конфигурация Worker-узлов

Shturval v2

Скриншоты и поля шага

Shturval v2 — группы Worker

Shturval v2 — параметры Worker

Shturval v2 — селектор Worker

ПолеОписание
Группа Worker-узловГруппа хостов, например default или infra.
МасштабированиеРучное количество узлов или автоматический диапазон.
Роль хостовРоль для выбора хостов в базовом режиме, например workers или infra.
Селектор хостовРасширенный выбор Worker-хостов по лейблам.

VMware vSphere

Скриншоты и поля шага

VMware vSphere — группы Worker

VMware vSphere — параметры Worker

ПолеОписание
Группа Worker-узловГруппа ВМ, например default или infra.
МасштабированиеРучное количество узлов или автоматический диапазон.
CPU / память / дискРесурсы ВМ Worker-узлов.
РолиРоли узлов через запятую; они будут добавлены в лейблы узлов.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Скриншоты и поля шага

oVirt — группы Worker

oVirt — параметры Worker

ПолеОписание
Группа Worker-узловГруппа ВМ, например default или infra.
МасштабированиеРучное количество узлов или автоматический диапазон.
Cores / Sockets / ThreadsВычислительные ресурсы ВМ Worker-узлов.
ПамятьОбъём оперативной памяти Worker-узлов.
ДискОбъём диска Worker-узлов.
РолиРоли узлов через запятую; они будут добавлены в лейблы узлов.

OpenStack, VK Cloud, Selectel

Скриншот и поля шага

OpenStack — Worker-группы

ПолеОписание
Группа Worker-узловГруппа ВМ, например default или infra.
МасштабированиеРучное количество узлов или автоматический диапазон.
Тип ВМFlavor для Worker-узлов.
Тип дискаVolume type для диска Worker-узлов.
ДискОбъём диска Worker-узлов.
Зона доступностиAvailability zone для размещения Worker-узлов.
РолиРоли узлов через запятую; они будут добавлены в лейблы узлов.

Шаг 6. Установка сертификата

Shturval v2

Скриншот и поля шага

Шаг «Установка сертификата»

ВариантОписание
СамоподписнойСертификат выпускается платформой. Подходит для тестовых и внутренних стендов.
ПромежуточныйИспользуется промежуточный CA; загрузите цепочку сертификатов и закрытый ключ.
ACMEИспользуется ACME-сервер; укажите корневой CA и URL сервера.
КорпоративныйИспользуется готовый сертификат Ingress и закрытый ключ, выпущенные вашим CA.
Let’s EncryptИспользуется Let’s Encrypt; укажите email учётной записи.

VMware vSphere

Скриншот и поля шага

Шаг «Установка сертификата»

ВариантОписание
СамоподписнойСертификат выпускается платформой. Подходит для тестовых и внутренних стендов.
ПромежуточныйИспользуется промежуточный CA; загрузите цепочку сертификатов и закрытый ключ.
ACMEИспользуется ACME-сервер; укажите корневой CA и URL сервера.
КорпоративныйИспользуется готовый сертификат Ingress и закрытый ключ, выпущенные вашим CA.
Let’s EncryptИспользуется Let’s Encrypt; укажите email учётной записи.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Скриншот и поля шага

Шаг «Установка сертификата»

ВариантОписание
СамоподписнойСертификат выпускается платформой. Подходит для тестовых и внутренних стендов.
ПромежуточныйИспользуется промежуточный CA; загрузите цепочку сертификатов и закрытый ключ.
ACMEИспользуется ACME-сервер; укажите корневой CA и URL сервера.
КорпоративныйИспользуется готовый сертификат Ingress и закрытый ключ, выпущенные вашим CA.
Let’s EncryptИспользуется Let’s Encrypt; укажите email учётной записи.

OpenStack, VK Cloud, Selectel

Скриншот и поля шага

Шаг «Установка сертификата»

ВариантОписание
СамоподписнойСертификат выпускается платформой. Подходит для тестовых и внутренних стендов.
ПромежуточныйИспользуется промежуточный CA; загрузите цепочку сертификатов и закрытый ключ.
ACMEИспользуется ACME-сервер; укажите корневой CA и URL сервера.
КорпоративныйИспользуется готовый сертификат Ingress и закрытый ключ, выпущенные вашим CA.
Let’s EncryptИспользуется Let’s Encrypt; укажите email учётной записи.

Шаг 7. Выбор сервисов

Shturval v2

Скриншоты и поля шага

Выбор сервисов по группам

Расширенный выбор сервисов

ПолеОписание
Критические сервисыОбязательные компоненты платформы. Всегда включены и недоступны для отключения.
МониторингМетрики, дашборды и экспорт метрик.
ЛогированиеСбор и обработка логов.
Резервное копирование и восстановлениеСервисы резервного копирования и работы со snapshot.
Доставка приложенийКомпоненты непрерывной доставки и стратегий развёртывания.
Балансировщик нагрузкиКомпоненты распределения нагрузки и управления трафиком.
Инструменты ИБАнализ конфигураций и сканирование образов.
Показать расширенные настройкиПереключает выбор с групп сервисов на отдельные сервисы и чарты.

VMware vSphere

Скриншоты и поля шага

Выбор сервисов по группам

Расширенный выбор сервисов

ПолеОписание
Критические сервисыОбязательные компоненты платформы. Всегда включены и недоступны для отключения.
МониторингМетрики, дашборды и экспорт метрик.
ЛогированиеСбор и обработка логов.
Резервное копирование и восстановлениеСервисы резервного копирования и работы со snapshot.
Доставка приложенийКомпоненты непрерывной доставки и стратегий развёртывания.
Балансировщик нагрузкиКомпоненты распределения нагрузки и управления трафиком.
Инструменты ИБАнализ конфигураций и сканирование образов.
Показать расширенные настройкиПереключает выбор с групп сервисов на отдельные сервисы и чарты.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Скриншоты и поля шага

Выбор сервисов по группам

Расширенный выбор сервисов

ПолеОписание
Критические сервисыОбязательные компоненты платформы. Всегда включены и недоступны для отключения.
МониторингМетрики, дашборды и экспорт метрик.
ЛогированиеСбор и обработка логов.
Резервное копирование и восстановлениеСервисы резервного копирования и работы со snapshot.
Доставка приложенийКомпоненты непрерывной доставки и стратегий развёртывания.
Балансировщик нагрузкиКомпоненты распределения нагрузки и управления трафиком.
Инструменты ИБАнализ конфигураций и сканирование образов.
Показать расширенные настройкиПереключает выбор с групп сервисов на отдельные сервисы и чарты.

OpenStack, VK Cloud, Selectel

Скриншоты и поля шага

Выбор сервисов по группам

Расширенный выбор сервисов

ПолеОписание
Критические сервисыОбязательные компоненты платформы. Всегда включены и недоступны для отключения.
МониторингМетрики, дашборды и экспорт метрик.
ЛогированиеСбор и обработка логов.
Резервное копирование и восстановлениеСервисы резервного копирования и работы со snapshot.
Доставка приложенийКомпоненты непрерывной доставки и стратегий развёртывания.
Балансировщик нагрузкиКомпоненты распределения нагрузки и управления трафиком.
Инструменты ИБАнализ конфигураций и сканирование образов.
Показать расширенные настройкиПереключает выбор с групп сервисов на отдельные сервисы и чарты.

Шаг 8. Проверка данных

Shturval v2

Описание шага

Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.

VMware vSphere

Описание шага

Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.

oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Описание шага

Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.

OpenStack, VK Cloud, Selectel

Описание шага

Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.

Статус инсталляции кластера управления

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

После запуска развёртывания на экране отображается статус инсталляции кластера управления с этапами. Не закрывайте вкладку браузера до завершения инсталляции.

По завершении инсталляции вы автоматически перейдёте на этап «Кластер готов». На этом этапе доступны:

  • статический kubeconfig постоянного кластера управления — скачайте и сохраните его;
  • ссылка для перехода в постоянный кластер управления. Для входа используйте логин и пароль администратора платформы, полученные при запуске установки.

Инсталляция кластера управления считается завершённой, когда выполнены минимальные требования:

  • готова инфраструктура;
  • готов минимум 1 Control Plane узел;
  • успешно установлены сервисы shturval-backend, shturval-auth, shturval-frontend, shturval-ingress-controller.

Когда kubeconfig и ссылка в интерфейс постоянного кластера уже доступны, отдельные этапы могут ещё выполняться: например, могут устанавливаться не все сервисы или применяться не все NCI. Вы можете дождаться завершения всех этапов в интерфейсе временного кластера или проверить состояние в постоянном кластере: NCI — на странице Конфигурация узлов, при необходимости правьте узлы через создание и работу с NCI; сервисы — на странице Установленные сервисы.

Установка сервисов репозитория Shturval выполняется в два этапа: сначала поднимаются критически важные сервисы, затем сервисы, выбранные на шаге «Выбор сервисов». Этап установки сервисов репозитория Shturval считается завершённым только после установки всех сервисов: критически важных и выбранных пользователем (состав и обновление артефактов реестра см. в сервисах репозитория). Для кластера управления в статусе также отображается этап «Репликация» со списком conditions репликации.

Установка с флагами

Установка с флагами выполняется командой install-cli (синоним install) без прохождения веб-мастера установки платформы.

Параметры --bootstrap-registry / --bootstrap-insecure обычно не задают: используется публичный реестр образов платформы. Лицензию для временного установочного кластера передайте флагом --bootstrap-license, если не используете заранее подготовленный kubeconfig (--existing-bootstrap-kubeconfig — см. install-cli --help).

Провайдеры

Провайдер / средаПодкоманда install-cli
Shturval v2shturvalv2
oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualizationovirt
VMware vSpherevsphere
OpenStackopenstack
VK Cloudvkcloud
Selectelselectel

Общие группы параметров

Сетевой контекст: схемы межсетевого взаимодействия и требования для открытого контура.

ГруппаПараметры (пример)Назначение
Базовая--api-endpoint, -a, --provider-name, --cluster-nameТочка API управления платформы, имена экземпляра провайдера и кластера
Сеть--pod-subnet, --service-subnetCIDR Pod и Service; см. также проверку пересечения подсетей
Ingress--ingress-vip, --ingress-default-fqdn, --use-external-ingress-lbДоступ к Ingress
Системные сервисы--enabled-system-services, --minimalСостав компонентов; см. установку сервисов
Bootstrap--bootstrap-license, --bootstrap-registry, --bootstrap-insecure, --bootstrap-registry-certs-dir, --existing-bootstrap-kubeconfig, --bootstrap-kubeconfig-path, …Подключение временного установочного кластера или использование уже существующего bootstrap-kubeconfig; в открытом контуре чаще достаточно --bootstrap-license. Взаимоисключающие и обязательные комбинации см. --help
Прочее--yaml-path, -f, --platform-version, --overwrite(вместо overwrite можно писать команду -y), --cluster-kubeconfig-pathАльтернативная подача настроек, версия платформы, режим перезаписи, путь итогового kubeconfig

При сочетании YAML и флагов для установки сначала читаются поля YAML-файла; перекрываются только те флаги командной строки, которые указаны явно.

Shturval v2 — пример

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1,10.11.12.2,10.11.12.3" \
  --worker-nodes="10.11.12.11,10.11.12.12,10.11.12.13" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --cluster-name="mgmt-cluster"

Обязательные сочетания и краткие формы (-c, -w, -a и др.) уточняйте в ./shtil install-cli shturvalv2 --help. Полные таблицы по провайдерам — в справочнике флагов.

Минимальная конфигурация (один CP):

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --cluster-name="mgmt-cluster" \
  --minimal=true

Пример повторного запуска с перезаписью конфликтующих ресурсов на существующем bootstrap-кластере:

bin/shtil install-cli shturvalv2 \
  --overwrite \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/username/sh/kubeconfigs/certs/id_ed25519" \
  --api-endpoint="10.XX.XXX.246" \
  --ingress-vip="10.XX.XXX.252" \
  --controlplane-nodes="10.XX.XXX.145" \
  --worker-nodes="10.XX.XXX.69" \
  --bootstrap-kubeconfig-path="/home/username/sh/kubeconfigs/01bt" \
  -v=10 \
  --cluster-name="mgmt617c1" \
  --provider-name="sht617p1"

Справочник флагов install-cli

Общие параметры (все провайдеры)
ПараметрОбязательностьОписание
-a, --api-endpoint [string]Да для всех провайдеров кроме OpenStack/VK Cloud/SelectelАдрес API-сервера кластера управления (IP или FQDN без порта и протокола, например 10.11.12.100)
--provider-name [string]НетИмя экземпляра провайдера (по умолчанию cluster-management-provider)
--cluster-name [string]НетИмя кластера (по умолчанию cluster-management)
--pod-subnet [string]НетПодсеть Pod в формате CIDR (по умолчанию 172.16.0.0/16)
--service-subnet [string]НетПодсеть Service в формате CIDR (по умолчанию 10.96.0.0/12)
--ingress-default-fqdn [string]Да, если не задан --ingress-vip. Нет для OpenStack/VK Cloud/SelectelWildcard DNS для Ingress (например *.apps.example.corp)
--ingress-vip [string]Да, если не задан --ingress-default-fqdn. Нельзя для OpenStack/VK Cloud/SelectelVIP Ingress; сочетание с внешним/внутренним LB уточняйте в справке
--use-external-ingress-lbНетВнешний балансировщик Ingress. Для OpenStack/VK Cloud/Selectel обычно true
--secureНетРасширенные настройки безопасности (по умолчанию false)
--ingress-certs-*НетПути к CA/TLS/ACME для Ingress (--ingress-certs-ca-crt-path, --ingress-certs-tls-crt-path, --ingress-certs-acme-url и др.; см. справку)
--enabled-system-services [string]НетСписок системных сервисов через запятую. С --minimal=true игнорируется
--bootstrap-kubeconfig-path, -bНетПуть к kubeconfig временного кластера
--bootstrap-license [string]Как правило да, если нет готового bootstrap-kubeconfigЛицензия; при спецсимволах — одинарные кавычки
--bootstrap-registry [string]НетРеестр образов (по умолчанию r.shturval.tech)
--bootstrap-insecureНетНе проверять TLS реестра
--yaml-path, -fНетПуть к YAML манифесту постоянного кластера
--minimalНетМинимальный набор сервисов (часто один CP)
--platform-version [string]НетВерсия платформы (по умолчанию = версии shtil)
-y, --overwriteНетПринудительное обновление при повторном запуске
-v, --verbosityНетДетализация лога
Shturval v2
ПараметрОбязательностьОписание
--path-ssh-private-key [string]ДаПуть к приватному SSH-ключу
--ssh-user [string]ДаПользователь SSH
-c, --controlplane-nodes [string]ДаIP/FQDN Control Plane через запятую
-w, --worker-nodes [string]Да, если --minimal falseIP/FQDN Worker через запятую
--use-external-kubeapi-lbНетВнешний балансировщик KubeAPI
oVirt / zVirt / HostVM / РЕД Виртуализация / ROSA Virtualization
ПараметрОбязательностьОписание
-u, --url-providerДаURL API Engine, с суффиксом /ovirt-engine/api
--user-providerДаУчётная запись (например admin@internal)
--password-providerДаПароль; при спецсимволах — кавычки
--tls-insecure-providerНетОтключить проверку TLS к Engine
--tls-cert-path-providerНетПуть к доверенному CA
--sub-type-providerНетzvirt, hostvm, redvirt, rosavirt
--datacenter-providerДаИмя датацентра
--datacenter-cluster-providerДаИмя кластера
--vnic-profile-providerДаVNIC-профиль
-t, --templateДаШаблон ВМ
--provider-csi-storageДаStorage Domain для CSI
--allow-csiНетРазрешить CSI
--control-plane, --workersНетКоличество узлов
--cores-control-plane, --memory-control-plane, --disk-control-plane, --sockets-*, --threads-*НетРесурсы ВМ Control Plane
--cores-workers, --memory-workers, --disk-workers, …НетРесурсы Worker
VMware vSphere
ПараметрОбязательностьОписание
--address-vcenterДаFQDN или IP vCenter
--user-vcenterДаУчётная запись
--password-vcenterДаПароль
--provider-datacenterДаДатацентр
--provider-datastoreДаDatastore
--provider-resource-poolДаResource pool
--provider-networkДаСеть (DHCP для ВМ узлов)
--provider-folderДаПапка ВМ
--provider-clone-modeНетlinkedClone / fullClone
--provider-storage-policyНетStorage policy при необходимости
-t, --templateДаШаблон ВМ
--enable-csiНетВключить CSI
--control-plane, --workersНетКоличество узлов
--cpu-control-plane, --memory-control-plane, --disk-control-planeНетРесурсы CP
--cpu-workers, --memory-workers, --disk-workersНетРесурсы Worker
OpenStack / VK Cloud / Selectel
ПараметрОбязательностьОписание
--url-authДа для OpenStack; может не требоваться для VK/SelectelKeystone URL с портом, например https://openstack.example.com:5000/v3
--project-idДаID проекта
--project-domain-idДаID домена проекта
--tls-insecure-providerНетПропустить проверку TLS
--tls-cert-pathНетPEM CA для API
--region-nameНетРегион
--interfaceНетИнтерфейс endpoint (public и др.)
--identity-api-versionНетВерсия Identity API
--tokenУсловноТокен (OpenStack; не вместе с login/password)
--loginУсловноСервисная УЗ
--passwordУсловноПароль УЗ
--user-domain-nameУсловноДомен пользователя
--cloud-nameДаИмя облака в терминах облачного API
--ssh-key-nameДаИмя SSH keypair в облаке
--node-cidrДаПодсеть узлов, например 10.0.0.0/24
--external-network-idДаID внешней сети
--flavorsДаСписок flavor через запятую
--volume-typesДаТипы томов через запятую
--availability-zonesНетЗоны доступности
--manage-security-groups, --disable-port-security, --dnsНетСеть/SEC
--machine-image-nameДаИмя образа/шаблона ВМ
--enable-csiНетCSI
--control-plane, --workersНетЧисло узлов
--flavor-name-cp, --volume-type-cp, --availability-zone-cp, --disk-cpНетCP в облаке
--flavor-name-workers, --volume-type-workers, …НетWorkers в облаке

Примеры команд под выбранную сетевую схему

Порты, протоколы и матрицы трафика — на странице Схемы межсетевого взаимодействия. Ниже — отдельные команды для копирования: блок install-gui (реестр по умолчанию r.shturval.tech) и примеры install-cli под сеть кластера управления.

Локальный установщик (install-gui)

./shtil install-gui \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ"

Shturval v2 — внутренний KubeAPI, внешний Ingress

Схемы: с CoreHA на клиенте, без него на схеме клиента.

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1,10.11.12.2,10.11.12.3" \
  --worker-nodes="10.11.12.11,10.11.12.12,10.11.12.13" \
  --api-endpoint="10.11.12.100" \
  --ingress-default-fqdn="*.apps.example.corp" \
  --use-external-ingress-lb=true \
  --cluster-name="mgmt-cluster"

Shturval v2 — внутренний KubeAPI и внутренний Ingress

Схема: внутренний Ingress (VIP Worker).

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1,10.11.12.2,10.11.12.3" \
  --worker-nodes="10.11.12.11,10.11.12.12,10.11.12.13" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --cluster-name="mgmt-cluster"

Shturval v2 — внешний KubeAPI и внешний Ingress

Схема: оба внешних балансировщика.

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1,10.11.12.2,10.11.12.3" \
  --worker-nodes="10.11.12.11,10.11.12.12,10.11.12.13" \
  --api-endpoint="api.example.corp" \
  --use-external-kubeapi-lb=true \
  --ingress-default-fqdn="*.apps.example.corp" \
  --use-external-ingress-lb=true \
  --cluster-name="mgmt-cluster"

Shturval v2 Stand-alone — внутренний KubeAPI и внутренний Ingress

Схема: stand-alone, оба VIP внутри кластера.

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1,10.11.12.2,10.11.12.3" \
  --worker-nodes="10.11.12.11,10.11.12.12,10.11.12.13" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --cluster-name="mgmt-cluster"

Shturval v2 Stand-alone — внутренний KubeAPI, внешний Ingress

Схема: stand-alone и внешний Ingress LB.

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1,10.11.12.2,10.11.12.3" \
  --worker-nodes="10.11.12.11,10.11.12.12,10.11.12.13" \
  --api-endpoint="10.11.12.100" \
  --ingress-default-fqdn="*.apps.example.corp" \
  --use-external-ingress-lb=true \
  --cluster-name="mgmt-cluster"

oVirt / VMware vSphere — внутренний KubeAPI, внешний Ingress

Схема: oVirt и vSphere.

./shtil install-cli ovirt \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --api-endpoint="10.11.12.100" \
  --ingress-default-fqdn="*.apps.example.corp" \
  --use-external-ingress-lb=true \
  --url-provider="https://ovirt.example.corp/ovirt-engine/api" \
  --user-provider="admin@internal" \
  --password-provider="Example-Ovirt-Pass1" \
  --datacenter-provider="Default" \
  --datacenter-cluster-provider="Default" \
  --vnic-profile-provider="ovirtmgmt" \
  --template="rocky9-template" \
  --provider-csi-storage="data-domain-1" \
  --cluster-name="mgmt-cluster"
./shtil install-cli vsphere \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --api-endpoint="10.11.12.100" \
  --ingress-default-fqdn="*.apps.example.corp" \
  --use-external-ingress-lb=true \
  --address-vcenter="vcenter.example.corp" \
  --user-vcenter="administrator@vsphere.local" \
  --password-vcenter="Example-Vcenter-Pass1" \
  --provider-datacenter="/Example-Datacenter" \
  --provider-datastore="datastore1" \
  --provider-resource-pool="/Example-Datacenter/host/Example-Cluster/Resources/Example-Pool" \
  --provider-network="/Example-Datacenter/network/VM-Network" \
  --provider-folder="/Example-Datacenter/vm/workloads" \
  --template="rocky9-template" \
  --cluster-name="mgmt-cluster"

oVirt / VMware vSphere — CoreHA на клиенте

Схема: CoreHA DNS на клиенте. Команды установки кластера управления те же, что в подразделе «внутренний KubeAPI, внешний Ingress».

oVirt / VMware vSphere — внутренний KubeAPI и внутренний Ingress

Схема: оба VIP внутри кластера.

./shtil install-cli ovirt \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --url-provider="https://ovirt.example.corp/ovirt-engine/api" \
  --user-provider="admin@internal" \
  --password-provider="Example-Ovirt-Pass1" \
  --datacenter-provider="Default" \
  --datacenter-cluster-provider="Default" \
  --vnic-profile-provider="ovirtmgmt" \
  --template="rocky9-template" \
  --provider-csi-storage="data-domain-1" \
  --cluster-name="mgmt-cluster"
./shtil install-cli vsphere \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --address-vcenter="vcenter.example.corp" \
  --user-vcenter="administrator@vsphere.local" \
  --password-vcenter="Example-Vcenter-Pass1" \
  --provider-datacenter="/Example-Datacenter" \
  --provider-datastore="datastore1" \
  --provider-resource-pool="/Example-Datacenter/host/Example-Cluster/Resources/Example-Pool" \
  --provider-network="/Example-Datacenter/network/VM-Network" \
  --provider-folder="/Example-Datacenter/vm/workloads" \
  --template="rocky9-template" \
  --cluster-name="mgmt-cluster"

OpenStack, VK Clouf, Selectel — внешние LB

Схема: внешние LB для KubeAPI и Ingress.

В справке install-cli перечислены подкоманды openstack, vkcloud, selectel. Полные таблицы флагов см. в разделе Справочник флагов install-cli на этой странице.

./shtil install-cli openstack \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --use-external-kubeapi-lb=true \
  --use-external-ingress-lb=true \
  --url-auth="https://openstack.example.com:5000/v3" \
  --project-id="example-project-id" \
  --project-domain-id="example-project-domain-id" \
  --user-domain-name="users" \
  --login="openstack-admin" \
  --password="Openstack-Example-Pass1" \
  --cloud-name="openstack" \
  --ssh-key-name="my-ssh-keypair" \
  --node-cidr="10.0.0.0/24" \
  --external-network-id="external-network-uuid" \
  --flavors="flavor-medium,flavor-large" \
  --volume-types="fast-ssd,default" \
  --machine-image-name="rocky9-shturval-template"
./shtil install-cli vkcloud \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --use-external-kubeapi-lb=true \
  --use-external-ingress-lb=true \
  --url-auth="https://openstack.example.com:5000/v3" \
  --cloud-name="vkcloud" \
  --project-id="example-project-id" \
  --project-domain-id="example-project-domain-id" \
  --user-domain-name="users" \
  --login="openstack-admin" \
  --password="Openstack-Example-Pass1" \
  --ssh-key-name="my-ssh-keypair" \
  --node-cidr="10.0.0.0/24" \
  --external-network-id="external-network-uuid" \
  --flavors="flavor-medium,flavor-large" \
  --volume-types="fast-ssd,default" \
  --machine-image-name="rocky9-shturval-template"
./shtil install-cli selectel \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --use-external-kubeapi-lb=true \
  --use-external-ingress-lb=true \
  --url-auth="https://openstack.example.com:5000/v3" \
  --cloud-name="selectel" \
  --project-id="example-project-id" \
  --project-domain-id="example-project-domain-id" \
  --user-domain-name="users" \
  --login="openstack-admin" \
  --password="Openstack-Example-Pass1" \
  --ssh-key-name="my-ssh-keypair" \
  --node-cidr="10.0.0.0/24" \
  --external-network-id="external-network-uuid" \
  --flavors="flavor-medium,flavor-large" \
  --volume-types="fast-ssd,default" \
  --machine-image-name="rocky9-shturval-template"

Пример: минимальная конфигурация (1 Control Plane)

Микрокластер — вариант управляющего кластера на одном Control Plane узле (6 vCPU, 8 GiB RAM, 80 GiB диск). Удобен для испытаний и пилотов. Требования: минимальная конфигурация в требованиях.

Обратите внимание! Внимание: не для production. До 5 клиентских кластеров. Логирование, мониторинг и резервное копирование в этом пресете не ставятся.

Консоль (install-cli):

./shtil install-cli shturvalv2 \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --ssh-user="shturval" \
  --path-ssh-private-key="/home/admin/.ssh/id_ed25519" \
  --controlplane-nodes="10.11.12.1" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --cluster-name="mgmt-cluster" \
  --minimal=true

oVirt / совместимые виртуализации

./shtil install-cli ovirt \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
  --url-provider="https://ovirt.example.corp/ovirt-engine/api" \
  --user-provider="admin@internal" \
  --password-provider="Example-Ovirt-Pass1" \
  --datacenter-provider="Default" \
  --datacenter-cluster-provider="Default" \
  --vnic-profile-provider="ovirtmgmt" \
  --template="rocky9-template" \
  --provider-csi-storage="data-domain-1" \
  --api-endpoint="10.11.12.100" \
  --ingress-vip="10.11.12.101" \
  --cluster-name="mgmt-cluster"

При необходимости: --sub-type-provider, --control-plane, --workers, ресурсы ВМ (--cores-*, --memory-*, --disk-*), --allow-csi, --tls-insecure-provider, --tls-cert-path-provider — см. ./shtil install-cli ovirt --help.

vSphere

Используйте ./shtil install-cli vsphere и параметры vCenter (--address-vcenter, учётная запись, датацентр, datastore, ресурсный пул, сеть, папка, шаблон). Полный список: ./shtil install-cli vsphere --help.

OpenStack / VK Cloud / Selectel

ЗапускНазначение
./shtil install-cli openstackOpenStack (CAPOS)
./shtil install-cli vkcloudVK Cloud
./shtil install-cli selectelSelectel

Ориентируйтесь на OpenStack и CAPOS и на вывод shtil install-cli openstack --help для перечисления флагов (--url-auth, --project-id, --ssh-key-name, --external-network-id, образы машин и т.д.). Подкомандная справка обязательна для облаков: API и имена объектов зависят от проекта.

Установка с YAML

Параметры установки передаются YAML-файлом с помощью флага --yaml-path. Сначала применяется YAML, затем только явно указанные флаги CLI переопределяют отдельные поля.

Провайдеры и типы документов

Примеры YAML-файла для заполнения своими значениями параметров выводит подкоманда example с указанием на провайдер:

Shturval v2:

./shtil install-cli shturvalv2 example > install.yaml

oVirt (и совместимые виртуализации):

./shtil install-cli ovirt example > install.yaml

VMware vSphere:

./shtil install-cli vsphere example > install.yaml

OpenStack:

./shtil install-cli openstack example > install.yaml

VK Cloud:

./shtil install-cli vkcloud example > install.yaml

Selectel:

./shtil install-cli selectel example > install.yaml

Конфигурация состоит из разделов: конфигурации провайдера и самого кластера, разделённых ---.

ОбластьТип первого документаТип второго документа
Shturval v2CapsmProviderConfigCapsmClusterConfig
oVirtCapovProviderConfigCapovClusterConfig
vSphereCapvsProviderConfigCapvsClusterConfig
OpenStack, VK Cloud, SelectelCaposProviderConfigCaposClusterConfig

Конструкторы YAML

Интерактивные формы для подготовки манифестов (два файла: провайдер и кластер):

Параметры YAML-манифеста

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

Общие параметры кластера

Параметр YAMLПровайдерыОбязательностьОписание
typeВсеДаТип документа: CapsmProviderConfig, CapsmClusterConfig, CapovProviderConfig, CapovClusterConfig, CapvsProviderConfig, CapvsClusterConfig, CaposProviderConfig или CaposClusterConfig
clusterВсе cluster-документыДаКонфигурация кластера управления
cluster.apiEndpointShturval v2, oVirt, vSphereДаАдрес API-сервера кластера управления: IP или FQDN без порта и протокола
cluster.clusterNameВсеНетИмя кластера управления. По умолчанию cluster-management
cluster.enabledServicesВсеНетСписок включённых сервисов. Если cluster.minimal: true, значение игнорируется
cluster.externalKubeAPILBShturval v2НетИспользовать внешний балансировщик для API-сервера. По умолчанию false
cluster.externalingresslbВсеНетИспользовать внешний балансировщик для Ingress. По умолчанию false
cluster.ingressShturval v2, oVirt, vSphereДа, если не задан cluster.ingressvipWildcard DNS-запись для Ingress, например <cluster_name>.<base_domain>
cluster.ingressOpenStack, VK Cloud, SelectelНетWildcard DNS-запись для Ingress
cluster.ingressvipShturval v2, vSphereДа, если cluster.externalingresslb: falseVIP-адрес Ingress-контроллера
cluster.ingressvipoVirtНетVIP-адрес Ingress-контроллера; используется при cluster.externalingresslb: false
cluster.controlPlaneNodesCountВсеНетКоличество Control Plane узлов. Минимум 1, по умолчанию 1
cluster.podSubnetВсеНетCIDR подсети Pod. По умолчанию 172.16.0.0/16
cluster.serviceSubnetВсеНетCIDR подсети Service. По умолчанию 10.96.0.0/12
cluster.secureВсеНетВключить расширенные параметры безопасности. По умолчанию false
cluster.shturvalVersionВсеНетВерсия платформы. Должна соответствовать версии shtil; в Shturval v2 переданное значение игнорируется
cluster.minimalВсеНетМинимальный набор сервисов. Если true, cluster.enabledServices игнорируется

Сертификаты Ingress

Параметр YAMLОбязательностьОписание
ingressCertsНетСертификат кластера. Если не задан, используется самоподписной сертификат. Можно выбрать только один подтип: ca, tls или acme
ingressCerts.ca.crtPathНет, но вместе с ingressCerts.ca.keyPathПуть к цепочке сертификатов в PEM
ingressCerts.ca.keyPathНет, но вместе с ingressCerts.ca.crtPathПуть к закрытому ключу промежуточного сертификата CA
ingressCerts.tls.crtPathНет, но вместе с ingressCerts.tls.keyPathПуть к корпоративному или самоподписному TLS-сертификату для доменного имени Ingress
ingressCerts.tls.keyPathНет, но вместе с ingressCerts.tls.crtPathПуть к закрытому ключу TLS-сертификата Ingress
ingressCerts.acme.rootPathНет, но вместе с ingressCerts.acme.urlПуть к корневому сертификату CA для ACME
ingressCerts.acme.urlНет, но вместе с ingressCerts.acme.rootPathАдрес ACME-сервера с портом и путём к ресурсу
ingressCerts.acme.emailНетEmail для учётной записи Let’s Encrypt

Shturval v2 (CapsmProviderConfig)

Параметр YAMLОбязательностьОписание
nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
credentials.SSHДаОбщие учётные данные для SSH-подключения к хостам
credentials.SSH.privateKeyДаПуть к приватному SSH-ключу
credentials.SSH.userNameДаИмя пользователя для SSH
hostsДаСписок хостов для узлов кластера
hosts[].addressДаIP-адрес или FQDN хоста
hosts[].labelsSelectorДаСелектор с меткой роли хоста role
hosts[].credentialsНетnull означает использование общих SSH-учётных данных; при необходимости можно переопределить SSH.userName и SSH.privateKey для конкретного хоста

Shturval v2 (CapsmClusterConfig)

Параметр YAMLОбязательностьОписание
providerНетКонфигурации групп узлов; по умолчанию группы Control Plane и Worker предзаполнены
provider.controlPlaneNodeConfig.controlPlaneSelector.matchExpressionsНетСовпадающие выражения хостов для группы Control Plane
provider.controlPlaneNodeConfig.controlPlaneSelector.matchLabels.roleНетМетка хостов Control Plane. Роль должна быть controlplane
provider.controlPlaneNodeConfig.nodeConfig.groupNameНе переопределятьИмя группы Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.roles[].nameНе переопределятьРоль группы Control Plane узлов
provider.controlPlaneNodeConfig.nameНетИмя экземпляра провайдера; должно совпадать с name в CapsmProviderConfig
provider.workerNodeConfigsНетКонфигурация Worker-узлов; создание дополнительных Worker-групп недоступно
provider.workerNodeConfigs[].workersCountНетКоличество узлов в дефолтной Worker-группе. По умолчанию 3
provider.workerNodeConfigs[].workerSelector.matchExpressionsНетСовпадающие выражения хостов для Worker-группы
provider.workerNodeConfigs[].workerSelector.matchLabels.roleНетМетка роли хоста для Worker-группы. Рекомендовано и по умолчанию workers
provider.workerNodeConfigs[].nodeConfig.groupNameНетИмя Worker-группы, например default или infra
provider.workerNodeConfigs[].nodeConfig.roles[].nameНе переопределятьРоль группы Worker-узлов

oVirt / zVirt / HostVM / РЕД Виртуализация / ROSA Virtualization (CapovProviderConfig)

Параметр YAMLОбязательностьОписание
nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
credentials.oVirtДаУчётные данные для подключения к API Engine oVirt
credentials.oVirt.urlДаURL API Engine oVirt с суффиксом /ovirt-engine/api
credentials.oVirt.usernameДаИмя пользователя для аутентификации в API oVirt
credentials.oVirt.passwordДаПароль для аутентификации в API oVirt
connectionНетНастройки TLS-подключения к API oVirt
connection.tlsInsecureНетОтключить проверку TLS-сертификата. По умолчанию true
connection.tlsCertPathНетПуть к CA-сертификату для проверки TLS при tlsInsecure: false
providerConfigДаКонфигурация провайдера oVirt
providerConfig.subtypeНетПодтип oVirt-подобного провайдера: zvirt, hostvm, redvirt, rosavirt
providerConfig.datacenterДаИмя датацентра oVirt
providerConfig.datacenterClusterДаИмя кластера oVirt внутри датацентра
providerConfig.vnicProfileДаИмя VNIC-профиля для сетевых интерфейсов ВМ
providerConfig.templateДаИмя шаблона ВМ в выбранном датацентре
providerConfig.csiStorageНетИмя домена хранения для динамических постоянных томов через CSI; пустое значение отключает CSI
providerConfig.vmTypeНетТип создаваемых ВМ. По умолчанию server
providerConfig.templateNetInterfaceНетИмя сетевого интерфейса в шаблоне. По умолчанию eth0

oVirt / zVirt / HostVM / РЕД Виртуализация / ROSA Virtualization (CapovClusterConfig)

Параметр YAMLОбязательностьОписание
providerНетКонфигурации узлов; по умолчанию группы Control Plane и Worker предзаполнены
provider.nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
provider.controlPlaneNodeConfigНетКонфигурация Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.groupNameНе переопределятьИмя группы Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.roles[].nameНе переопределятьРоль группы Control Plane узлов
provider.controlPlaneNodeConfig.capovNodeConfig.cpu.coresНетКоличество ядер CPU на Control Plane узел. По умолчанию 4
provider.controlPlaneNodeConfig.capovNodeConfig.cpu.socketsНетКоличество CPU-сокетов на Control Plane узел. По умолчанию 1
provider.controlPlaneNodeConfig.capovNodeConfig.cpu.threadsНетКоличество потоков CPU на сокет. По умолчанию 1
provider.controlPlaneNodeConfig.capovNodeConfig.memory.sizeMBНетРазмер памяти в МБ на Control Plane узел. По умолчанию 16000
provider.controlPlaneNodeConfig.capovNodeConfig.memory.guaranteedMBНетГарантированная память в МБ; должна совпадать с sizeMB. По умолчанию 16000
provider.controlPlaneNodeConfig.capovNodeConfig.osDiskSizeGBНетРазмер диска ОС в ГБ на Control Plane узел. По умолчанию 100
provider.workerNodeConfigsНетКонфигурация Worker-узлов
provider.workerNodeConfigs[].nodeConfig.groupNameНетИмя Worker-группы, например default или infra
provider.workerNodeConfigs[].nodeConfig.roles[].nameНе переопределятьРоль группы Worker-узлов
provider.workerNodeConfigs[].workersCountНетКоличество узлов в дефолтной Worker-группе. По умолчанию 3
provider.workerNodeConfigs[].capovNodeConfig.cpu.coresНетКоличество ядер CPU на Worker-узел. По умолчанию 8
provider.workerNodeConfigs[].capovNodeConfig.cpu.socketsНетКоличество CPU-сокетов на Worker-узел. По умолчанию 1
provider.workerNodeConfigs[].capovNodeConfig.cpu.threadsНетКоличество потоков CPU на сокет. По умолчанию 1
provider.workerNodeConfigs[].capovNodeConfig.memory.sizeMBНетРазмер памяти в МБ на Worker-узел. По умолчанию 32000
provider.workerNodeConfigs[].capovNodeConfig.memory.guaranteedMBНетГарантированная память в МБ; должна совпадать с sizeMB. По умолчанию 32000
provider.workerNodeConfigs[].capovNodeConfig.osDiskSizeGBНетРазмер диска ОС в ГБ на Worker-узел. По умолчанию 300

vSphere (CapvsProviderConfig)

Параметр YAMLОбязательностьОписание
nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
credentials.vSphereДаУчётные данные для подключения к vCenter
credentials.vSphere.addressVcenterДаIP-адрес или FQDN vCenter
credentials.vSphere.usernameVcenterДаИмя пользователя учётной записи vCenter
credentials.vSphere.passwordVcenterДаПароль учётной записи vCenter
connectionНетНастройки TLS-соединения для vCenter
connection.tlsInsecureНетОтключить проверку TLS-сертификатов. По умолчанию true
connection.tlsCertPathНетПуть к CA-сертификату для проверки TLS при tlsInsecure: false
providerConfigДаКонфигурация провайдера vSphere
providerConfig.datacenterДаИмя datacenter vSphere
providerConfig.datastoreДаDatastore в datacenter
providerConfig.resourcePoolДаПуть к пулу ресурсов для ВМ
providerConfig.networkДаИмя сети для сетевых интерфейсов ВМ
providerConfig.folderДаПуть к папке ВМ в инвентаре vCenter
providerConfig.templateДаИмя шаблона ВМ в выбранном датацентре
providerConfig.cloneModeНетРежим клонирования: linkedClone или fullClone. По умолчанию linkedClone
providerConfig.storagePolicyНетИмя политики хранения для дисков ВМ
providerConfig.enableCSIНетВключить драйвер vSphere CSI. По умолчанию true
providerConfig.templateNetInterfaceНетИмя сетевого интерфейса в шаблоне. По умолчанию eth0

vSphere (CapvsClusterConfig)

Параметр YAMLОбязательностьОписание
providerНетКонфигурации узлов; по умолчанию группы Control Plane и Worker предзаполнены
provider.nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
provider.controlPlaneNodeConfigНетКонфигурация Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.groupNameНе переопределятьИмя группы Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.roles[].nameНе переопределятьРоль группы Control Plane узлов
provider.controlPlaneNodeConfig.capvsNodeConfig.cpu.coresНетКоличество ядер CPU на Control Plane узел. По умолчанию 4
provider.controlPlaneNodeConfig.capvsNodeConfig.memory.sizeMBНетРазмер памяти в МБ на Control Plane узел. По умолчанию 16000
provider.controlPlaneNodeConfig.capvsNodeConfig.osDiskSizeGBНетРазмер диска ОС в ГБ на Control Plane узел. По умолчанию 100
provider.workerNodeConfigsНетКонфигурация Worker-узлов
provider.workerNodeConfigs[].nodeConfig.groupNameНе переопределятьИмя дефолтной Worker-группы
provider.workerNodeConfigs[].nodeConfig.roles[].nameНе переопределятьРоль группы Worker-узлов
provider.workerNodeConfigs[].workersCountНетКоличество узлов в дефолтной Worker-группе. По умолчанию 3
provider.workerNodeConfigs[].capvsNodeConfig.cpu.coresНетКоличество ядер CPU на Worker-узел. По умолчанию 8
provider.workerNodeConfigs[].capvsNodeConfig.memory.sizeMBНетРазмер памяти в МБ на Worker-узел. По умолчанию 32000
provider.workerNodeConfigs[].capvsNodeConfig.osDiskSizeGBНетРазмер диска ОС в ГБ на Worker-узел. По умолчанию 300

OpenStack / VK Cloud / Selectel (CaposProviderConfig)

Параметр YAMLОбязательностьОписание
nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
cloudNameДаИмя облака, например vkcloud или openstack
connectionДаУчётные данные для подключения к OpenStack
connection.authURLДаURL службы авторизации OpenStack Keystone с портом
connection.projectIDДаID проекта OpenStack
connection.projectDomainIDДаID домена проекта OpenStack
connection.tlsInsecureНетПропустить проверку TLS-сертификата API OpenStack
connection.tlsCertPathНетПуть к CA-сертификату в формате PEM
connection.regionНетИмя региона OpenStack
connection.interfaceНетИнтерфейс endpoint OpenStack, например public или internal
connection.identityAPIVersionНетВерсия Identity API OpenStack. По умолчанию 3
connection.tokenНетТокен аутентификации; только для OpenStack, нельзя использовать одновременно с login и password
connection.loginНет, но вместе с connection.passwordИмя сервисной учётной записи с ролями heat_stack_owner, admin
connection.passwordНет, но вместе с connection.loginПароль сервисной учётной записи
connection.userDomainNameНетИмя домена пользователя; должен быть задан для OpenStack и VK Cloud
resourcesДаКонфигурация провайдера OpenStack
resources.sshKeyNameДаИмя пары SSH-ключей для доступа к ВМ
resources.nodeCIDRДаПодсеть узлов; не должна пересекаться с cluster.podSubnet и cluster.serviceSubnet
resources.externalNetworkIDДаID внешней сети для floating IP и внешнего доступа
resources.flavorsДаСписок типов ВМ
resources.volumeTypesДаСписок типов дисков
resources.machineImageNameДаИмя шаблона ВМ; версия Kubernetes шаблона должна соответствовать версии Штурвала и shtil
resources.availabilityZonesНетСписок зон доступности
resources.managedSecurityGroupsНетУправление группами безопасности. По умолчанию true
resources.disablePortSecurityНетОтключить port security. По умолчанию false
resources.dnsНетDNS-серверы
resources.enableCSIНетВключить интеграцию CSI. По умолчанию false

OpenStack / VK Cloud / Selectel (CaposClusterConfig)

Параметр YAMLОбязательностьОписание
providerНетКонфигурации узлов; по умолчанию группы Control Plane и Worker предзаполнены
provider.nameНетИмя экземпляра провайдера. По умолчанию cluster-management-provider
provider.controlPlaneNodeConfigНетКонфигурация Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.groupNameНе переопределятьИмя группы Control Plane узлов
provider.controlPlaneNodeConfig.nodeConfig.roles[].nameНе переопределятьРоль группы Control Plane узлов
provider.controlPlaneNodeConfig.caposNodeConfig.openstackFlavorNameНетТип ВМ для Control Plane узлов; если не задан, используется первый из resources.flavors
provider.controlPlaneNodeConfig.caposNodeConfig.volumeSizeНетРазмер корневого тома Control Plane узлов в ГБ. По умолчанию 100
provider.controlPlaneNodeConfig.caposNodeConfig.volumeTypeНетТип диска Control Plane узлов; если не задан, используется первый из resources.volumeTypes
provider.controlPlaneNodeConfig.caposNodeConfig.availabilityZoneНетЗона доступности Control Plane узлов; если не задана, используется первая из resources.availabilityZones
provider.workerNodeConfigsНетКонфигурация Worker-узлов
provider.workerNodeConfigs[].nodeConfig.groupNameНе переопределятьИмя дефолтной Worker-группы
provider.workerNodeConfigs[].nodeConfig.roles[].nameНе переопределятьРоль группы Worker-узлов
provider.workerNodeConfigs[].workersCountНетКоличество узлов в дефолтной Worker-группе. По умолчанию 3
provider.workerNodeConfigs[].caposNodeConfig.openstackFlavorNameНетТип ВМ для Worker-узлов; если не задан, используется первый из resources.flavors
provider.workerNodeConfigs[].caposNodeConfig.volumeSizeНетРазмер корневого тома Worker-узлов в ГБ. По умолчанию 300
provider.workerNodeConfigs[].caposNodeConfig.volumeTypeНетТип диска Worker-узлов; если не задан, используется первый из resources.volumeTypes
provider.workerNodeConfigs[].caposNodeConfig.availabilityZoneНетЗона доступности Worker-узлов; если не задана, используется первая из resources.availabilityZones

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

При коллизии CIDR — проверка пересечения подсетей при создании кластера.

Шаги

  1. Сохраните вывод нужной подкоманды example в файл.
  2. Отредактируйте манифест: провайдер, кластер, узлы, VIP, подсети и при необходимости сертификаты и сервисы (состав компонентов см. также установку сервисов).
  3. Запустите установку (открытый контур, стандартный реестр — обычно достаточно лицензии):
./shtil install-cli ТИП-ПРОВАЙДЕРА \
  --yaml-path="/home/admin/install.yaml" \
  --bootstrap-license="ВАША-ЛИЦЕНЗИЯ"

Пример YAML-манифеста для Shturval v2 (два документа в одном файле, разделитель ---). Условные адреса в одном формате с примерами CLI: узлы 10.11.12.x, KubeAPI 10.11.12.100, Ingress VIP 10.11.12.101.

Первый документ — провайдер (CapsmProviderConfig):

---
type: CapsmProviderConfig
name: myprovidername
credentials:
  SSH:
    privateKey: /home/admin/.ssh/id_ed25519
    userName: shturval
hosts:
  - address: 10.11.12.1
    labelsSelector: { role: controlplane }
    credentials: null
  - address: 10.11.12.11
    labelsSelector: { role: workers }
    credentials: null

---

type: CapsmClusterConfig
cluster:
  apiEndpoint: 10.11.12.100
  clusterName: myclustername
  controlPlaneNodesCount: 1
  ingressvip: 10.11.12.101
  podSubnet: 172.16.0.0/16
  serviceSubnet: 10.96.0.0/12
  minimal: true
provider:
  controlPlaneNodeConfig:
    controlPlaneSelector: { matchLabels: { role: controlplane } }
    nodeConfig: { groupName: control-plane, roles: [{ name: node-role.kubernetes.io/control-plane }] }
  workerNodeConfigs:
    - nodeConfig: { groupName: default, roles: [{ name: node-role.kubernetes.io/workers }] }
      workersCount: 1
      workerSelector: { matchLabels: { role: workers } }

Пример YAML-манифеста для oVirt с несколькими группами Worker-узлов. В provider.workerNodeConfigs задайте отдельный элемент для каждой группы, например default и infra.

---
type: CapovProviderConfig
name: sht-capov-mgmt-prov
credentials:
  oVirt:
    url: https://ovirt.example.com/ovirt-engine/api
    username: ВВЕДИТЕ-ПОЛЬЗОВАТЕЛЯ
    password: ВВЕДИТЕ-ПАРОЛЬ
connection:
  tlsInsecure: true
providerConfig:
  datacenter: DCname
  datacenterCluster: RHVLab
  vnicProfile: CHLab_LAN_3260
  template: имя-шаблона-в-инфраструктуре-ovirt
  csiStorage: CHLab_Pure_VM_Store
ingressCerts:
  ##ca:
    ##crtPath:
    ##keyPath:
  ##tls:
    ##crtPath:
    ##keyPath:

---
type: CapovClusterConfig
cluster:
  apiEndpoint: 10.XX.XXX.236
  clusterName: sht-capov-mgmt7
  controlPlaneNodesCount: 1
  ingressvip: 10.XX.XXX.237
  minimal: true
provider:
  name: sht-capov-mgmt-prov
  controlPlaneNodeConfig:
    nodeConfig:
      groupName: control-plane
    roles:
      - name: node-role.kubernetes.io/control-plane
    capovNodeConfig:
      cpu:
        cores: 8
        sockets: 1
        threads: 1
      memory:
        sizeMB: 9000
        guaranteedMB: 9000
      osDiskSizeGB: 60
  workerNodeConfigs:
    - nodeConfig:
        groupName: default
        roles:
          - name: node-role.kubernetes.io/workers
      workersCount: 1
      capovNodeConfig:
        cpu:
          cores: 8
          sockets: 1
          threads: 1
        memory:
          sizeMB: 12000
          guaranteedMB: 12000
        osDiskSizeGB: 60
    - nodeConfig:
        groupName: infra
        roles:
          - name: node-role.kubernetes.io/workers
      workersCount: 1
      capovNodeConfig:
        cpu:
          cores: 8
          sockets: 1
          threads: 1
        memory:
          sizeMB: 9000
          guaranteedMB: 9000
        osDiskSizeGB: 60

Полные аннотированные шаблоны YAML

Структура полей и комментарии к ним в актуальном виде вы получаете командой ./shtil install-cli <провайдер> example (рекомендуемый способ).

Установка одной командой с манифестом (открытый контур):

./shtil install-cli shturvalv2 \
  --yaml-path="/home/admin/install.yaml" \
  --bootstrap-license='ВАША-ЛИЦЕНЗИЯ'

Для закрытого контура к команде добавьте --bootstrap-registry и при необходимости --bootstrap-insecure / --bootstrap-registry-certs-dir — см. установку без доступа к интернету.

Первые шаги после установки

ДействиеОписание
Проверьте доступОткройте URL управляющего кластера. Логин: admin, пароль — в user.conf каталога данных установщика (~/.shturval/installer или /tmp/shturval/installer) либо заданный в --password. Кластер управления должен быть в статусе Готов.
Сохраните учётные данныеСохраните пароль администратора и kubeconfig. В интерфейсе: пользовательское меню → Скачать Kubeconfig.
Настройте базовые сущностиДоставка пользователей, пул IP-адресов, провайдер и шаблон ВМ. Дальнейшие сервисы — установка сервисов; реестр платформы — сервисы репозитория; настройки узлов — конфигурация узлов (NCI).

Перед выполнением очистки временного кластера или деинсталляции платформы, если понадобится повторный доступ к уже развёрнутому интерфейсу, сохраните user.conf вручную.

Обратите внимание! экземпляр провайдера инфраструктуры, которым был развёрнут кластер управления, не следует повторно использовать как инфраструктурный провайдер для клиентских кластеров — создайте отдельный экземпляр провайдера для рабочих нагрузок (см. обзор провайдеров).

Диагностика

Быстрая проверка CLI и логирования

./shtil --help
./shtil install-gui --help
./shtil install-cli --help
./shtil install-cli shturvalv2 --help
./shtil version

Для детальных логов CLI используйте глобально --verbosity / -v (до 10).

При повторном запуске install-cli после ошибочной конфигурации на том же временном кластере смотрите флаг -y / --overwrite в справке. Лицензия со спецсимволами ($, <, >, *, &, ?, /, \) должна быть в одинарных кавычках.

Раннее прерывание установки локального установщика

ПроверкаЧто делать
docker или podman в PATHИнструменты контейнеризации нужны для install-gui; при установленных обоих по умолчанию предпочтение Docker
Delegate=yes / UserNS: cpu controller needs to be delegatedПодготовка к rootless Podman
Ресурсы и ОС машины shtilСм. требования к машине shtil и поддерживаемые ОС
Доступ к реестру образовС машины shtil и узлов целевого кластера: curl -v https://r.shturval.tech

Ошибки SSH (Shturval v2)

СимптомДействие
Permission deniedПроверьте ключ и ssh-copy-id до доступа установщика
sudo: no tty presentДобавьте пользователя в sudoers, например shturval ALL=(ALL) NOPASSWD: ALL, либо иной поддерживаемый способ доступа без TTY для установки
SELinux блокирует доступПо политике организации временно переведите в permissive или отключите SELinux для окна установки (согласуйте с ИБ)

Устойчивый кластер и сеть

СимптомДействие
Занят VIPОсвободите адреса, выделите непингуемые VIP или опишите использование балансировщиков
Подсети / overlapping CIDRСм. проверку пересечения подсетей и согласуйте --pod-subnet, --service-subnet или поля YAML
Не монтируются образы узламиСеть до r.shturval.tech и исключённые блокировки; см. также репозиторий

Дополнительно

  • Время: NTP/Chrony на узлах, расхождения не более 1–2 с.
  • Диск: ориентиры см. раздел ресурсов в требованиях для открытого контура.
  • Отладка GUI: install-gui ... --debug — контейнер локального установщика не удаляется при ошибке.