Процесс установки
Инсталляция кластера управления через 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. Откройте мастер установки в графическом интерфейсе и пройдите шаги
- Откройте URL веб-интерфейса из вывода
shtil(обычноhttp://<ip-машины-shtil>:30080). - Войдите под учётной записью администратора.
- Нажмите Создать кластер управления.
- Заполните мастер установки и нажмите Создать кластер на шаге проверки данных.
- Дождитесь завершения развёртывания (ориентировочно 15–30 минут). Вкладку можно закрыть раньше: адрес установщика вернёт вас на страницу статуса. Что при этом сохранится, описано в разделе Статус инсталляции кластера управления.
Скриншот стартового экрана локального установщика

Шаг 1. Выбор провайдера
Скриншот и поля шага

| Поле | Описание |
|---|---|
| Имя кластера | Уникальное имя кластера управления. Используется в служебных объектах и FQDN. Указывайте латиницу, цифры и дефис. |
| Выберите провайдер | Выберите провайдера инфраструктуры, подготовленного перед инсталляцией: Shturval v2, VMware vSphere, oVirt и подобные, OpenStack, VK Cloud или Selectel, Yandex Cloud. |
Обратите внимание! провайдер, с которым разворачивается платформа, будет установлен в платформе как критически важный сервис - недоступен для отключения. Остальные инфраструктурные провайдеры в платформе будут выключены.
Перед заполнением формы проверьте требования выбранного провайдера: Shturval v2, VMware vSphere, oVirt и подобные провайдеры, OpenStack, VK Cloud, Selectel, Yandex Cloud.
Шаг 2. Конфигурация провайдера
Shturval v2
Провайдер Shturval v2 использует заранее подготовленные физические или виртуальные хосты. Шаблон ВМ для этого провайдера не нужен: мастер установки подключается к хостам по SSH и устанавливает компоненты на выбранные узлы.
Скриншот и поля шага

| Поле | Описание |
|---|---|
| Имя провайдера | Имя экземпляра провайдера. |
| Имя пользователя | В блоке Общие учетные данные для хостов. Пользователь для подключения к хостам по SSH. |
| Пароль пользователя | Необязательное. В том же блоке. Пароль пользователя SSH для команд sudo на узлах. Если поле пустое, sudo выполняется без пароля. |
| Приватный ключ пользователя | Приватный ключ для подключения к хостам. Загрузите файл или введите текст. Публичная часть ключа должна быть на всех целевых хостах. |
| Хосты | IP-адреса или FQDN хостов, роли (controlplane, workers, infra и другие) и при необходимости лейблы. В Параметры хоста поле Пароль пользователя доступно, если не выбрано Использовать общие учетные данные. |
После загрузки хостов провайдер готовит каждый из них к включению в кластер. По SSH он проверяет доступ и права sudo, разворачивает компоненты узла, проверяет, что свободен ли хост и уникальность /etc/machine-id. Следующий шаг конфигурации доступен только когда все добавленные хосты прошли проверки и готовы к привязке ShturvalMachine: status.readyformachine: true.
Свободный хост может ещё проходить подготовку. Если хост не готов, проверьте его conditions и при необходимости устраните указанную причину.
По умолчанию в провайдере используются общие учётные данные для всех хостов, включая Пароль пользователя. Для отдельного хоста пароль задаётся в Параметры хоста. Из консоли тот же пароль передаётся флагом --ssh-user-password или полем credentials.SSH.sshUserPassword — см. Пароль SSH-пользователя для sudo.
Учётные данные сохраняются в 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 на шаге основных данных. |
Yandex Cloud
Для провайдера Yandex Cloud используйте папку, подсеть и параметры API, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из шаблона ВМ; если шаблон не был создан заранее, подготовьте его по инструкции с флагом --keep-cloud-init и вернитесь к установке.
Скриншот и поля шага
| Поле | Описание |
|---|---|
| Авторизованный ключ сервисной учетной записи | JSON-ключ сервисного аккаунта. После ввода нажмите Проверить подключение. |
| ID папки | Нужен, если аккаунт не может получить список папок. |
| Имя провайдера | Имя экземпляра. Латиница в нижнем регистре, цифры и дефис, от 1 до 63 символов. Имя create недоступно. |
| Папка | Каталог Yandex Cloud. Если доступна одна папка, изменить её нельзя. |
| Подсеть | Одна подсеть выбранной папки: имя, ID и зона доступности. |
| Типы платформы | Platform ID, из которых потом выбирается размер узлов. |
| Тип дисков | Типы дисков узлов, например, network-ssd и network-hdd. |
| Балансировщик | Внешний или Внутренний. По умолчанию Внешний. |
| Тип балансировщика | ALB или NLB. По умолчанию ALB. |
| Разрешена установка CSI | Да / Нет. По умолчанию Нет. При Да на шаге основных данных можно включить интеграцию CSI. |
| Шаблоны виртуальных машин | Хотя бы один шаблон: имя в облаке и версия Kubernetes. |
Сервисному аккаунту необходимы роли compute.editor и alb.editor, для работы CSI дополнительно роль k8s.clusters.agent.
Шаг 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, подготовленный перед инсталляцией по инструкции. Если шаблон один, он выбирается автоматически. Если в экземпляре несколько шаблонов на одну версию Kubernetes, после выбора версии платформы появится обязательное поле Шаблон ВМ. |
| Адрес API-сервера кластера | VIP или FQDN для KubeAPI. Выберите адрес из пула или введите вручную. |
| VIP-адрес для Ingress | IPv4-адрес для системного Ingress в базовом режиме. |
| VIP-адрес для Ingress или DNS-запись Ingress | В расширенном режиме можно указать IPv4-адрес или Wildcard FQDN. |
| Версия платформы | Совместимая версия платформы для выбранного шаблона. |
| Включить интеграцию CSI | Включает vSphere CSI для Persistent Volumes, если это разрешено шаблоном и правами vCenter. |
| Удалить PV при удалении кластера с включенной интеграцией CSI | Да / Нет. По умолчанию Нет. Подробнее: Удаление PV при удалении кластера. |
| Использовать внешний балансировщик | Переводит трафик 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
Скриншоты и поля шага


Скриншот: поле удаления PV

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


Скриншот: поле удаления PV

| Поле | Описание |
|---|---|
| Экземпляр провайдера | Экземпляр Yandex Cloud, созданный на шаге 2. Если экземпляр один, он выбирается автоматически. |
| Версия Kubernetes | Версия из шаблона ВМ экземпляра. |
| Версия платформы | Совместимая версия платформы для выбранного шаблона. |
| Шаблон ВМ | Появляется, если в экземпляре несколько шаблонов на одну версию Kubernetes. |
| Включить интеграцию CSI | Включает CSI для дисков Yandex Cloud (shturval-capy-csi), если это разрешено экземпляром провайдера. По умолчанию Нет. |
| Удалить PV при удалении кластера с включенной интеграцией CSI | Да / Нет. По умолчанию Нет. Недоступно, пока в экземпляре Разрешена установка CSI — Нет. Подробнее: Удаление PV при удалении кластера. |
| Использовать внешний балансировщик для Ingress | Для Yandex Cloud обычно включено; после создания кластера настройте балансировщик в консоли Yandex Cloud. |
| DNS-запись Ingress | Wildcard FQDN. В расширенном режиме можно изменить. |
| Установить расширенные параметры информационной безопасности | Включает Secret Encryption для etcd, TLS-соединение с Kubelet и преднастроенную политику аудита. |
| Подсеть подов | CIDR для Pod-сети. Не должна пересекаться с сетью узлов и сервисов. |
| Подсеть сервисов | CIDR для Service ClusterIP. Не должна пересекаться с сетью узлов и подов. |
| Профиль кластера | Набор политик и параметров, применяемых к кластеру. |
KubeAPI и Ingress публикуются через балансировщики Yandex Cloud. Внешний балансировщик Ingress включён по умолчанию.
Шаг 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. |
| Память | Объём оперативной памяти ВМ. |
| Диск | Объём диска ВМ; при локальном хранилище не меньше минимального значения интерфейса. |
| Клонировать диск при создании ВМ | Да клонирует диски узлов этой группы, Нет создаёт их без клонирования. По умолчанию берёт значение экземпляра провайдера, а если и там По умолчанию — feature gate disk-clone. Подробнее — клонирование диска. |
OpenStack, VK Cloud, Selectel
Скриншот и поля шага

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

| Поле | Описание |
|---|---|
| Количество Control Plane узлов | Нечётное значение, не больше 5. |
| Тип платформы | Platform ID из списка, заданного на шаге 2. |
| Тип диска | Тип диска из списка шага 2. |
| Количество ядер | Не меньше 4. |
| Объем оперативной памяти | Не меньше 8Gi (8192Mi). |
| Объем диска | Размер загрузочного диска. В интерфейсе по умолчанию 60Gi. |
Шаг 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-узлов. |
| Клонировать диск при создании ВМ | Да клонирует диски узлов этой группы, Нет создаёт их без клонирования. По умолчанию берёт значение экземпляра провайдера, а если и там По умолчанию — feature gate disk-clone. Подробнее — клонирование диска. |
| Роли | Роли узлов через запятую; они будут добавлены в лейблы узлов. |
OpenStack, VK Cloud, Selectel
Скриншот и поля шага

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


| Поле | Описание |
|---|---|
| Группа Worker-узлов | Группа ВМ, например, default или infra. |
| Масштабирование | Ручное количество узлов или автоматический диапазон. |
| Тип платформы | Platform ID из списка, заданного на шаге 2. |
| Тип диска | Тип диска из списка шага 2. |
| Количество ядер | Не меньше 4. |
| Объем оперативной памяти | Не меньше 8Gi (8192Mi). |
| Объем диска | Размер диска 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 учётной записи. |
Yandex Cloud
Скриншот и поля шага

| Вариант | Описание |
|---|---|
| Самоподписной | Сертификат выпускается платформой. Подходит для тестовых и внутренних стендов. |
| Промежуточный | Используется промежуточный CA; загрузите цепочку сертификатов и закрытый ключ. |
| ACME | Используется ACME-сервер; укажите корневой CA и URL сервера. |
| Корпоративный | Используется готовый сертификат Ingress и закрытый ключ, выпущенные вашим CA. |
| Let’s Encrypt | Используется Let’s Encrypt; укажите email учётной записи. |
Имя в сертификате должно совпадать с DNS-записью Ingress.
Шаг 7. Выбор сервисов
Кластер управления по умолчанию разворачивается с Gateway API. Модуль управления внешними подключениями (shturval-ingress-controller) устанавливается в режиме absent. CRD модуля Gateway API критически важный сервис платформы устанавливаются включенным по умолчанию.
Shturval v2
Скриншоты и поля шага


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


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


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


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


| Поле | Описание |
|---|---|
| Критические сервисы | Обязательные компоненты платформы, включая CRD Gateway API. Всегда включены и недоступны для отключения. |
| Мониторинг | Метрики, дашборды и экспорт метрик. |
| Логирование | Сбор и обработка логов. |
| Резервное копирование и восстановление | Сервисы резервного копирования и работы со snapshot. |
| Доставка приложений | Компоненты непрерывной доставки и стратегий развёртывания. |
| Балансировщик нагрузки | Компоненты распределения нагрузки и управления трафиком. |
| Инструменты ИБ | Анализ конфигураций и сканирование образов. |
| Показать расширенные настройки | Переключает выбор с групп сервисов на отдельные сервисы и чарты. |
Модуль shturval-capy-csi в этот список не входит: он ставится при включённой интеграции CSI на шаге основных данных.
Шаг 8. Проверка данных
Shturval v2
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Кластер управления разворачивается с Gateway API. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
VMware vSphere
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Кластер управления разворачивается с Gateway API. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Кластер управления разворачивается с Gateway API. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
OpenStack, VK Cloud, Selectel
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Кластер управления разворачивается с Gateway API. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
Yandex Cloud
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Кластер управления разворачивается с Gateway API. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
Статус инсталляции кластера управления
Подробное описание этапов статуса, цветовой индикации, таблиц узлов и сервисов см. Статус развертывания кластера.
После запуска развёртывания на экране отображается статус инсталляции кластера управления с этапами.
Установка идёт долго, вкладку браузера можно закрыть или обновить, не дожидаясь конца. Адрес установщика в этом браузере запоминает незавершённую установку: откройте его снова — попадёте на страницу статуса, и этапы продолжат обновляться. На странице об этом написано: «Инсталляция запущена. При перезагрузке страницы прогресс установки восстановится автоматически. По завершении инсталляции вы получите данные для входа в платформу».
Когда кластер уже развёрнут, тот же адрес снова открывает мастер установки, а не страницу прошлой установки. Если временный кластер удалён и shtil install-gui запущен заново, ход предыдущей установки тоже не подхватывается.
По завершении инсталляции вы автоматически перейдёте на этап «Кластер готов». На этом этапе доступны:
- статический kubeconfig постоянного кластера управления — скачайте и сохраните его;
- ссылка для перехода в постоянный кластер управления. Для входа используйте логин и пароль администратора платформы, полученные при запуске установки.
Инсталляция кластера управления считается завершённой, когда выполнены минимальные требования:
- готова инфраструктура;
- готов минимум 1 Control Plane узел;
- успешно установлены сервисы
shturval-backend,shturval-auth,shturval-frontend,shturval-gateway-api-crds.
Когда 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 |
| Yandex Cloud | yandex |
Общие группы параметров
Сетевой контекст: схемы межсетевого взаимодействия и требования для открытого контура.
| Группа | Параметры (пример) | Назначение |
|---|---|---|
| Базовая | --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, --follow-install-logs, --install-logs-file | Альтернативная подача настроек, версия платформы, режим перезаписи, путь итогового 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"
Пароль SSH-пользователя для sudo
Если на хостах команды выполняются через sudo с паролем, передайте пароль SSH-пользователя. Параметр необязательный. Без него установка идёт как раньше: пользователь выполняет sudo без пароля.
- флаг
--ssh-user-password; - в YAML, блок
credentials.SSH—sshUserPassword; - в YAML, блок
hosts, если у хоста свои учётные данные, —credentials.SSH.sshUserPassword.
Как задать пароль в интерфейсе уже созданного провайдера — в разделе Как добавить пароль для команд sudo.
Обязательные сочетания и краткие формы (-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 и Yandex Cloud | Адрес API-сервера кластера управления (IP или FQDN без порта и протокола, например, 10.11.12.100) |
--provider-name [string] | Нет | Имя экземпляра провайдера (по умолчанию cluster-management-provider) |
--cluster-name [string] | Нет | Имя кластера (по умолчанию shturval-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 и Yandex Cloud | DNS-запись Ingress. Можно указать apps.example.corp или *.apps.example.corp |
--ingress-vip [string] | Да, если не задан --ingress-default-fqdn. Нельзя для OpenStack/VK Cloud/Selectel и Yandex Cloud | VIP Ingress |
--use-external-ingress-lb | Нет | Внешний балансировщик Ingress. Для OpenStack/VK Cloud/Selectel и Yandex Cloud по умолчанию 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 игнорируется |
--existing-bootstrap-kubeconfig, -b | Нет | Путь к kubeconfig уже существующего временного кластера. Не вместе с --bootstrap-kubeconfig-path |
--bootstrap-kubeconfig-path | Нет | Путь к файлу, куда записать kubeconfig создаваемого временного кластера. Не вместе с --existing-bootstrap-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 | Нет | Принудительное обновление при повторном запуске |
--follow-install-logs | Нет | Вывод логов подов bootstrap кластера в stderr. Поды неймспейсов Cluster API (capi-system, capi-kubeadm-bootstrap-system, capi-kubeadm-control-plane-system), shturval-cluster-manager и неймспейс контроллера провайдера. Строка начинается с [неймспейс/под]. По умолчанию выключено |
--install-logs-file [string] | Нет | Путь файла с логами подов bootstrap кластера. Работает только вместе с --follow-install-logs. Если путь не задан, файл создаётся в каталоге, из которого запущена команда: shtil-install-<имя-кластера>.log |
-v, --verbosity | Нет | Детализация лога |
Shturval v2
| Параметр | Обязательность | Описание |
|---|---|---|
--path-ssh-private-key [string] | Да | Путь к приватному SSH-ключу |
--ssh-user [string] | Да | Пользователь SSH |
--ssh-user-password [string] | Нет | Пароль пользователя SSH для команд sudo на узлах. Если флаг не задан, sudo выполняется без пароля. В мастере установки то же значение — поле Пароль пользователя. См. Пароль SSH-пользователя для sudo |
-c, --controlplane-nodes [string] | Да | IP/FQDN Control Plane через запятую |
-w, --worker-nodes [string] | Да, если --minimal false | IP или FQDN Worker через запятую. Кластер без Worker-узлов ставится только с --minimal: иначе shtil команду не выполняет |
--use-external-kubeapi-lb | Нет | Внешний балансировщик KubeAPI |
Кластер с провайдером Shturval v2 без Worker-узлов можно поставить только в минимальном режиме, для этого передайте --minimal. Если не заданы ни --worker-nodes, ни --minimal, установка не начнётся. При установке из YAML флаг --minimal в команде включает минимальный режим, даже если в файле этого параметра нет.
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 |
--delete-persistent-volumes | Нет | Удалять PV при удалении кластера (true / false). Если флаг не указан, используется политика профиля кластера |
--control-plane, --workers | Нет | Количество узлов |
--cores-control-plane, --memory-control-plane, --disk-control-plane, --sockets-*, --threads-* | Нет | Ресурсы ВМ Control Plane |
--cores-workers, --memory-workers, --disk-workers, … | Нет | Ресурсы Worker |
--disk-clone | Нет | Клонировать диск ВМ на уровне экземпляра провайдера. Если флаг не задан, поле не отправляется |
--disk-clone-control-plane | Нет | Клонировать диск ВМ узлов Control Plane. Если флаг не задан, поле не отправляется |
--disk-clone-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 |
--delete-persistent-volumes | Нет | Удалять PV при удалении кластера (true / false). Если флаг не указан, используется политика профиля кластера |
--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 |
--delete-persistent-volumes | Нет | Удалять PV при удалении кластера (true / false). Если флаг не указан, используется политика профиля кластера |
--control-plane, --workers | Нет | Число узлов |
--flavor-name-cp, --volume-type-cp, --availability-zone-cp, --disk-cp | Нет | CP в облаке |
--flavor-name-workers, --volume-type-workers, … | Нет | Workers в облаке |
Yandex Cloud
| Параметр | Обязательность | Описание |
|---|---|---|
--yandex-key-path | Да | Путь к JSON-ключу сервисного аккаунта. В запрос уходит содержимое файла. Для узлов нужны роли compute.editor и alb.editor, для CSI ещё k8s.clusters.agent |
--folder-id | Да | ID папки Yandex Cloud. В экземпляре указывается одна папка |
--network-id | Да | ID сети, в которой создаются узлы |
--subnet-id | Да | ID подсети узлов |
--zone-id | Да | Зона доступности, например, ru-central1-a |
--allowed-platform-ids | Да | Допустимые platform ID через запятую, например, standard-v3 |
--allowed-volume-types | Да | Допустимые типы дисков через запятую, например, network-ssd |
--template | Да | ID образа ВМ. Образ готовят с флагом stc --keep-cloud-init |
--enable-csi | Нет | Включить CSI (shturval-capy-csi) и разрешить его на экземпляре провайдера. По умолчанию false |
--load-balancer-type | Нет | Тип балансировщика облака: ALB или NLB. По умолчанию ALB |
--load-balancer-internal | Нет | Внутренний балансировщик. По умолчанию false |
--provider-name | Нет | Имя экземпляра. По умолчанию cluster-management-provider. |
--control-plane, --workers | Нет | Число узлов. Control Plane — положительное нечётное число, по умолчанию 1. Worker — целое число от 0, по умолчанию 3 |
--platform-id-control-plane, --cores-control-plane, --memory-control-plane, --disk-control-plane, --volume-type-control-plane | Нет | Ресурсы ВМ Control Plane. По умолчанию 4 vCPU, 16000Mi и диск 60Gi. vCPU не меньше 4, память не меньше 8Gi. Platform ID и тип диска, если не заданы, берутся первыми из допустимых списков |
--platform-id-workers, --cores-workers, --memory-workers, --disk-workers, --volume-type-workers | Нет | Ресурсы ВМ Worker. По умолчанию 8 vCPU, 32000Mi и диск 300Gi. Те же минимумы по vCPU и памяти |
Примеры команд под выбранную сетевую схему
Порты, протоколы и матрицы трафика — на странице Схемы межсетевого взаимодействия. Ниже — отдельные команды для копирования: блок 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"
Yandex Cloud
./shtil install-cli yandex \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--yandex-key-path="/home/admin/yandex-sa-key.json" \
--folder-id="b1g-folder-id" \
--network-id="enp-network-id" \
--subnet-id="e9b-subnet-id" \
--zone-id="ru-central1-a" \
--allowed-platform-ids="standard-v3" \
--allowed-volume-types="network-ssd,network-hdd" \
--template="fd8-image-id" \
--ingress-default-fqdn="*.apps.example.corp" \
--enable-csi=true
Пример: минимальная конфигурация (1 Control Plane)
Микрокластер — вариант управляющего кластера на одном Control Plane узле (6 vCPU, 8 GiB RAM, 80 GiB диск). Удобен для испытаний и пилотов. Требования: минимальная конфигурация в требованиях.
Обратите внимание! Внимание: не для production. До 5 клиентских кластеров. Логирование, мониторинг и резервное копирование в этом пресете не ставятся.
Консоль (install-cli):
В команде нет Worker-узлов, поэтому указан --minimal. Без этого флага shtil для 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" \
--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 и имена объектов зависят от проекта.
Yandex Cloud
Control Plane по умолчанию один. --workers=0 не создаёт Worker-узлы. --minimal=true ставит минимальный набор сервисов.
./shtil install-cli yandex \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--yandex-key-path="/home/admin/yandex-sa-key.json" \
--folder-id="b1g-folder-id" \
--network-id="enp-network-id" \
--subnet-id="e9b-subnet-id" \
--zone-id="ru-central1-a" \
--allowed-platform-ids="standard-v3" \
--allowed-volume-types="network-ssd,network-hdd" \
--template="fd8-image-id" \
--ingress-default-fqdn="*.apps.example.corp" \
--workers=0 \
--minimal=true
Установка с 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
Yandex Cloud:
./shtil install-cli yandex example > install.yaml
Конфигурация состоит из разделов: конфигурации провайдера и самого кластера, разделённых ---.
| Область | Тип первого документа | Тип второго документа |
|---|---|---|
| Shturval v2 | CapsmProviderConfig | CapsmClusterConfig |
| oVirt | CapovProviderConfig | CapovClusterConfig |
| vSphere | CapvsProviderConfig | CapvsClusterConfig |
| OpenStack, VK Cloud, Selectel | CaposProviderConfig | CaposClusterConfig |
| Yandex Cloud | CapycProviderConfig | CapycClusterConfig |
Конструкторы YAML
Интерактивные формы для подготовки манифестов (два файла: провайдер и кластер):
Параметры YAML-манифеста
Обязательность ниже приведена по аннотированным шаблонам YAML. Поля без явного значения можно оставить закомментированными, если они необязательны и подходит значение по умолчанию.
Общие параметры кластера
| Параметр YAML | Провайдеры | Обязательность | Описание |
|---|---|---|---|
type | Все | Да | Тип документа: CapsmProviderConfig, CapsmClusterConfig, CapovProviderConfig, CapovClusterConfig, CapvsProviderConfig, CapvsClusterConfig, CaposProviderConfig, CaposClusterConfig, CapycProviderConfig или CapycClusterConfig |
cluster | Все cluster-документы | Да | Конфигурация кластера управления |
cluster.apiEndpoint | Shturval v2, oVirt, vSphere | Да | Адрес API-сервера кластера управления: IP или FQDN без порта и протокола |
cluster.clusterName | Все, кроме Yandex Cloud | Нет | Имя кластера управления. По умолчанию cluster-management |
cluster.clusterName | Yandex Cloud | Да | Имя кластера управления. В шаблоне shturval-management. Пустое имя установщик не принимает |
cluster.enabledServices | Все | Нет | Список включённых сервисов. Если cluster.minimal: true, значение игнорируется |
cluster.externalKubeAPILB | Shturval v2 | Нет | Использовать внешний балансировщик для API-сервера. По умолчанию false |
cluster.externalingresslb | Все, кроме Yandex Cloud | Нет | Использовать внешний балансировщик для Ingress. По умолчанию false |
cluster.externalingresslb | Yandex Cloud | Нет | Внешний балансировщик Ingress. По умолчанию true |
cluster.ingress | Shturval v2, oVirt, vSphere | Да, если не задан cluster.ingressvip | Wildcard DNS-запись для Ingress, например, <cluster_name>.<base_domain> |
cluster.ingress | OpenStack, VK Cloud, Selectel, Yandex Cloud | Нет | DNS-запись Ingress. Допустимы apps.example.corp и *.apps.example.corp. Для Yandex Cloud имеет смысл при externalingresslb: true |
cluster.ingressvip | Shturval v2, vSphere | Да, если cluster.externalingresslb: false | VIP-адрес Ingress-контроллера |
cluster.ingressvip | oVirt | Нет | VIP-адрес Ingress-контроллера; используется при cluster.externalingresslb: false |
cluster.ingressvip | Yandex Cloud | Нет | VIP Ingress. Задаётся только при externalingresslb: false и не вместе с cluster.ingress |
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.deletePersistentVolumes | oVirt, vSphere, OpenStack, VK Cloud, Selectel | Нет | Удалять persistent volumes при удалении кластера. true / false. Если параметр не задан, используется политика профиля кластера |
cluster.shturvalVersion | Все | Нет | Версия платформы. Должна соответствовать версии shtil; в Shturval v2 переданное значение игнорируется |
cluster.minimal | Все | Нет | Минимальный набор сервисов. Если true, cluster.enabledServices игнорируется |
cluster.overwrite | Все | Нет | Перезаписывать провайдер, если он уже существует. По умолчанию false |
cluster.followInstallLogs | Все | Нет | Вывод логов подов bootstrap кластера в stderr. Поды неймспейсов Cluster API (capi-system, capi-kubeadm-bootstrap-system, capi-kubeadm-control-plane-system), shturval-cluster-manager и неймспейс контроллера провайдера. Строка начинается с [неймспейс/под]. По умолчанию выключено |
cluster.installLogsFile | Все | Нет | Путь файла с логами подов bootstrap кластера. Может быть задан только при followInstallLogs: true. Если путь пустой, shtil пишет в каталог запуска команды файл shtil-install-<имя-кластера>.log |
Сертификаты 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 |
credentials.SSH.sshUserPassword | Нет | Пароль SSH-пользователя для команд sudo на хостах с общими учётными данными. Если не задан, sudo выполняется без пароля. См. Пароль SSH-пользователя для sudo |
hosts | Да | Список хостов для узлов кластера |
hosts[].address | Да | IP-адрес или FQDN хоста |
hosts[].labelsSelector | Да | Селектор с меткой роли хоста role |
hosts[].credentials | Нет | null — общие учётные данные из credentials.SSH. Чтобы задать свои, укажите объект SSH с userName, privateKey и при необходимости sshUserPassword |
hosts[].credentials.SSH.sshUserPassword | Нет | Пароль SSH-пользователя для sudo на этом хосте. Задаётся, когда hosts[].credentials не null. Если пароль не задан ни здесь, ни в credentials.SSH.sshUserPassword, sudo выполняется без пароля |
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.diskClone | Нет | Клонировать диск ВМ при создании. true или false. Если поле не задано, действует feature gate disk-clone |
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.controlPlaneNodeConfig.capovNodeConfig.diskClone | Нет | Клонировать диск ВМ узлов Control Plane. Если поле не задано, берётся providerConfig.diskClone, затем feature gate disk-clone |
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 |
provider.workerNodeConfigs[].capovNodeConfig.diskClone | Нет | Клонировать диск ВМ этой группы. Если поле не задано, берётся providerConfig.diskClone, затем feature gate disk-clone |
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 |
Yandex Cloud (CapycProviderConfig)
| Параметр YAML | Обязательность | Описание |
|---|---|---|
name | Нет | Имя экземпляра провайдера. По умолчанию cluster-management-provider. Строчные латинские буквы, цифры и дефис. Имя create недоступно |
connection | Да | Учётные данные для подключения к Yandex Cloud |
connection.keyPath | Да | Путь к JSON-ключу сервисного аккаунта. В запрос уходит содержимое файла |
connection.folderId | Да | ID папки. В конфигурации одна папка |
networkID | Да | ID сети Yandex Cloud |
subnetID | Да | ID подсети Yandex Cloud |
zoneID | Да | Зона доступности, например, ru-central1-a |
allowedPlatformIDs | Да | Список допустимых platform ID |
allowedVolumeTypes | Да | Список допустимых типов дисков |
template | Да | ID образа ВМ |
kubeVersion | Нет | Версия Kubernetes образа. Если поле пустое, её подставляет shtil из версии платформы |
loadBalancerType | Нет | Тип балансировщика: ALB или NLB. По умолчанию ALB |
loadBalancerInternal | Нет | Внутренний балансировщик. По умолчанию false |
enableCSI | Нет | Включить CSI (shturval-capy-csi) в кластере. По умолчанию false |
Yandex Cloud (CapycClusterConfig)
| Параметр YAML | Обязательность | Описание |
|---|---|---|
cluster.clusterName | Да | Имя кластера управления. В шаблоне shturval-management |
cluster.externalingresslb | Нет | Внешний балансировщик Ingress. По умолчанию true |
cluster.ingress | Нет | DNS-запись Ingress, apps.example.corp или *.apps.example.corp. Используется при externalingresslb: true |
cluster.ingressvip | Нет | VIP Ingress. Только при externalingresslb: false и не вместе с cluster.ingress |
cluster.controlPlaneNodesCount | Нет | Число узлов Control Plane. Положительное нечётное, по умолчанию 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 |
cluster.minimal | Нет | Минимальный набор сервисов. Если true, cluster.enabledServices игнорируется |
cluster.enabledServices | Нет | Список включённых сервисов репозитория Shturval |
provider | Нет | Конфигурации узлов. Если блок не задан, shtil подставляет размеры по умолчанию и группу default |
provider.name | Нет | Имя экземпляра провайдера. Если задано, заменяет name из CapycProviderConfig |
provider.controlPlaneNodeConfig.nodeConfig.groupName | Не переопределять | Имя группы Control Plane |
provider.controlPlaneNodeConfig.nodeConfig.roles[].name | Не переопределять | Роль группы Control Plane |
provider.controlPlaneNodeConfig.capycNodeConfig.platformID | Нет | Platform ID Control Plane. Если не задан, берётся первый из allowedPlatformIDs |
provider.controlPlaneNodeConfig.capycNodeConfig.cpuCores | Нет | vCPU Control Plane. По умолчанию 4, не меньше 4 |
provider.controlPlaneNodeConfig.capycNodeConfig.memorySize | Нет | Память Control Plane, например, 16000Mi. По умолчанию 16000Mi, не меньше 8Gi |
provider.controlPlaneNodeConfig.capycNodeConfig.volumeSize | Нет | Размер диска Control Plane, например, 60Gi. По умолчанию 60Gi |
provider.controlPlaneNodeConfig.capycNodeConfig.volumeType | Нет | Тип диска Control Plane. Если не задан, берётся первый из allowedVolumeTypes |
provider.workerNodeConfigs | Нет | Группы Worker. Первая группа без роли infra становится группой default. Группа с ролью node-role.kubernetes.io/infra обрабатывается как infra. Если такой группы нет, shtil добавляет группу infra с 0 узлов и размером ВМ как у Worker |
provider.workerNodeConfigs[].nodeConfig.groupName | Нет | Имя группы, например, default или infra. Имена уникальны: infra нельзя отдать другой группе, а группу infra нельзя назвать default |
provider.workerNodeConfigs[].nodeConfig.roles[].name | Нет | Роль группы: node-role.kubernetes.io/workers или node-role.kubernetes.io/infra |
provider.workerNodeConfigs[].workersCount | Нет | Число узлов группы, целое от 0. Для default по умолчанию 3 |
provider.workerNodeConfigs[].capycNodeConfig.cpuCores | Нет | vCPU Worker. По умолчанию 8, не меньше 4 |
provider.workerNodeConfigs[].capycNodeConfig.memorySize | Нет | Память Worker. По умолчанию 32000Mi, не меньше 8Gi |
provider.workerNodeConfigs[].capycNodeConfig.volumeSize | Нет | Диск Worker. По умолчанию 300Gi |
provider.workerNodeConfigs[].capycNodeConfig.platformID | Нет | Platform ID Worker. Если не задан, берётся первый из allowedPlatformIDs |
provider.workerNodeConfigs[].capycNodeConfig.volumeType | Нет | Тип диска Worker. Если не задан, берётся первый из allowedVolumeTypes |
Подсети и 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
# sshUserPassword: пароль-пользователя
hosts:
- address: 10.11.12.1
labelsSelector: { role: controlplane }
credentials: null
# Свои учётные данные хоста вместо null:
# credentials:
# SSH:
# privateKey: /home/admin/.ssh/id_ed25519
# userName: shturval
# sshUserPassword: пароль-пользователя
- 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 | Если sudo требует пароль, передайте --ssh-user-password или credentials.SSH.sshUserPassword — см. Пароль SSH-пользователя для sudo. Для sudo без пароля добавьте пользователя в sudoers, например, shturval ALL=(ALL) NOPASSWD: ALL |
| SELinux блокирует доступ | По политике организации временно переведите в permissive или отключите SELinux для окна установки (согласуйте с ИБ) |
Устойчивый кластер и сеть
| Симптом | Действие |
|---|---|
| Занят VIP | Освободите адреса, выделите непингуемые VIP или опишите использование балансировщиков |
| Подсети / overlapping CIDR | См. проверку пересечения подсетей и согласуйте --pod-subnet, --service-subnet или поля YAML |
| Не монтируются образы узлами | Сеть до r.shturval.tech и исключённые блокировки; см. также репозиторий |
Дополнительно
- Время: NTP/Chrony на узлах, расхождения не более 1–2 с.
- Диск: ориентиры см. раздел ресурсов в требованиях для открытого контура.
- Отладка GUI:
install-gui ... --debug— контейнер локального установщика не удаляется при ошибке.