Процесс установки
Инсталляция кластера управления через 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-license. По умолчанию образы временного установочного кластера загружаются с r.shturval.tech.
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ"
С заданным паролем admin:
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--password="ПАРОЛЬ-ADMIN"
Пароль в --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. Откройте мастер установки в графическом интерфейсе и пройдите шаги
- Откройте URL веб-интерфейса из вывода
shtil(обычноhttp://<ip-машины-shtil>:30080). - Войдите под учётной записью администратора.
- Нажмите Создать кластер управления.
- Заполните мастер установки и нажмите Создать кластер на шаге проверки данных.
- Дождитесь завершения развёртывания (ориентировочно 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 и устанавливает компоненты на выбранные узлы.
Скриншот и поля шага

| Поле | Описание |
|---|---|
| Название экземпляра | Имя конфигурации провайдера, по которому мастер будет ссылаться на подготовленные хосты. |
| Пул 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 и параметры, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из шаблона ВМ; если шаблон не был создан заранее, подготовьте его по инструкции и вернитесь к установке.
Скриншот и поля шага

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

| Поле | Описание |
|---|---|
| Название экземпляра | Имя конфигурации провайдера в мастере. |
| 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, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из образа/шаблона ВМ; если он не был создан заранее, подготовьте шаблон ВМ провайдера и вернитесь к установке.
Скриншоты и поля шага



| Поле | Описание |
|---|---|
| Auth URL / Identity endpoint | URL службы авторизации 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. |
| sshKeyName | SSH-ключ OpenStack для доступа к ВМ. |
| Подсеть узлов | Подсеть для узлов кластера управления. |
| externalNetworkID | Идентификатор внешней сети для внешнего доступа. |
| Типы ВМ (flavours) | Доступные типы виртуальных машин для узлов. |
| Типы дисков (volume types) | Доступные типы томов для дисков ВМ. |
| Зоны доступности | Availability zones при необходимости. |
| Управление Security Groups | Управление группами безопасности со стороны платформы. |
| Разрешить CSI | Разрешает включить OpenStack Cinder CSI на шаге основных данных. |
Шаг 3. Основные данные
Shturval v2
Скриншоты и поля шага




| Поле | Описание |
|---|---|
| Версия Kubernetes / версия платформы | Совместимая версия Kubernetes и платформы для кластера управления. |
| Адрес API-сервера кластера | IP или FQDN для KubeAPI. Можно выбрать свободный адрес из пула или ввести вручную. |
| VIP-адрес для Ingress | IPv4-адрес для системного Ingress, если внешний балансировщик Ingress не используется. |
| DNS-запись Ingress | Wildcard 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
Скриншоты и поля шага


| Поле | Описание |
|---|---|
| Шаблон провайдера | Шаблон ВМ для нужной версии Kubernetes, подготовленный перед инсталляцией по инструкции. Если шаблон один, он выбирается автоматически. |
| Адрес API-сервера кластера | VIP или FQDN для KubeAPI. Выберите адрес из пула или введите вручную. |
| VIP-адрес для Ingress | IPv4-адрес для системного 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
Скриншоты и поля шага


| Поле | Описание |
|---|---|
| Шаблон провайдера | Шаблон ВМ для нужной версии Kubernetes, подготовленный перед инсталляцией по инструкции. |
| Версия платформы | Совместимая версия платформы для выбранного шаблона. |
| Адрес API-сервера кластера | VIP или FQDN для KubeAPI. Выберите адрес из пула или введите вручную. |
| VIP-адрес для Ingress | IPv4-адрес для системного 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, VK Cloud или Selectel, в котором указан подготовленный образ/шаблон ВМ. Если экземпляр один, он выбирается автоматически. |
| Версия платформы | Совместимая версия платформы для выбранных образов. |
| Включить интеграцию CSI | Включает CSI для облачных дисков, если это разрешено экземпляром провайдера. |
| Использовать внешний балансировщик для Ingress | Для облачного сценария обычно включено; после создания кластера настройте балансировщик в панели облака. |
| DNS-запись Ingress | Wildcard FQDN. Если поле пустое, применяется автоматическая схема *.<имя-кластера>.ip-<IP_EXTERNAL_LB>.shturval.link. |
| Установить расширенные параметры информационной безопасности | Включает Secret Encryption для etcd, TLS-соединение с Kubelet и преднастроенную политику аудита. |
| Подсеть подов | CIDR для Pod-сети. |
| Подсеть сервисов | CIDR для Service ClusterIP. |
| Подсеть узлов | CIDR для узлов; если не задан, используется подсеть из конфигурации провайдера. |
| Профиль кластера | Набор политик и параметров, применяемых к кластеру. |
Шаг 4. Конфигурация Control Plane узлов
Shturval v2
Скриншоты и поля шага


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

| Поле | Описание |
|---|---|
| Количество Control Plane узлов | Нечётное значение, обычно 1 для теста или 3 для отказоустойчивого кластера. |
| CPU / память / диск | Ресурсы ВМ Control Plane. Значения не должны быть ниже минимальных ограничений интерфейса. |
oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization
Скриншот и поля шага

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

| Поле | Описание |
|---|---|
| Количество Control Plane узлов | Нечётное значение, не больше 5. |
| Тип ВМ | Flavor для ВМ Control Plane. |
| Тип диска | Volume type для диска ВМ. |
| Диск | Объём диска ВМ. |
| Зона доступности | Availability zone для размещения Control Plane узлов. |
Шаг 5. Конфигурация Worker-узлов
Shturval v2
Скриншоты и поля шага



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


| Поле | Описание |
|---|---|
| Группа Worker-узлов | Группа ВМ, например default или infra. |
| Масштабирование | Ручное количество узлов или автоматический диапазон. |
| CPU / память / диск | Ресурсы ВМ Worker-узлов. |
| Роли | Роли узлов через запятую; они будут добавлены в лейблы узлов. |
oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization
Скриншоты и поля шага


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

| Поле | Описание |
|---|---|
| Группа 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 v2 | shturvalv2 |
| oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization | ovirt |
| VMware vSphere | vsphere |
| OpenStack | openstack |
| VK Cloud | vkcloud |
| Selectel | selectel |
Общие группы параметров
Сетевой контекст: схемы межсетевого взаимодействия и требования для открытого контура.
| Группа | Параметры (пример) | Назначение |
|---|---|---|
| Базовая | --api-endpoint, -a, --provider-name, --cluster-name |
Точка API управления платформы, имена экземпляра провайдера и кластера |
| Сеть | --pod-subnet, --service-subnet |
CIDR 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/Selectel |
Wildcard DNS для Ingress (например *.apps.example.corp) |
--ingress-vip [string] |
Да, если не задан --ingress-default-fqdn. Нельзя для OpenStack/VK Cloud/Selectel |
VIP 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 false |
IP/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/Selectel | Keystone 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 openstack |
OpenStack (CAPOS) |
./shtil install-cli vkcloud |
VK Cloud |
./shtil install-cli selectel |
Selectel |
Ориентируйтесь на 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 v2 | CapsmProviderConfig |
CapsmClusterConfig |
| oVirt | CapovProviderConfig |
CapovClusterConfig |
| vSphere | CapvsProviderConfig |
CapvsClusterConfig |
| OpenStack, VK Cloud, Selectel | CaposProviderConfig |
CaposClusterConfig |
Параметры YAML-манифеста
Обязательность ниже приведена по аннотированным шаблонам YAML. Поля без явного значения можно оставить закомментированными, если они необязательны и подходит значение по умолчанию.
Общие параметры кластера
| Параметр YAML | Провайдеры | Обязательность | Описание |
|---|---|---|---|
type |
Все | Да | Тип документа: CapsmProviderConfig, CapsmClusterConfig, CapovProviderConfig, CapovClusterConfig, CapvsProviderConfig, CapvsClusterConfig, CaposProviderConfig или CaposClusterConfig |
cluster |
Все cluster-документы | Да | Конфигурация кластера управления |
cluster.apiEndpoint |
Shturval v2, oVirt, vSphere | Да | Адрес API-сервера кластера управления: IP или FQDN без порта и протокола |
cluster.clusterName |
Все | Нет | Имя кластера управления. По умолчанию cluster-management |
cluster.enabledServices |
Все | Нет | Список включённых сервисов. Если cluster.minimal: true, значение игнорируется |
cluster.externalKubeAPILB |
Shturval v2 | Нет | Использовать внешний балансировщик для API-сервера. По умолчанию false |
cluster.externalingresslb |
Все | Нет | Использовать внешний балансировщик для Ingress. По умолчанию false |
cluster.ingress |
Shturval v2, oVirt, vSphere | Да, если не задан cluster.ingressvip |
Wildcard DNS-запись для Ingress, например <cluster_name>.<base_domain> |
cluster.ingress |
OpenStack, VK Cloud, Selectel | Нет | Wildcard DNS-запись для Ingress |
cluster.ingressvip |
Shturval v2, vSphere | Да, если cluster.externalingresslb: false |
VIP-адрес Ingress-контроллера |
cluster.ingressvip |
oVirt | Нет | 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 — проверка пересечения подсетей при создании кластера.
Шаги
- Сохраните вывод нужной подкоманды
exampleв файл. - Отредактируйте манифест: провайдер, кластер, узлы, VIP, подсети и при необходимости сертификаты и сервисы (состав компонентов см. также установку сервисов).
- Запустите установку (открытый контур, стандартный реестр — обычно достаточно лицензии):
./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— контейнер локального установщика не удаляется при ошибке.