Процесс установки
Инсталляция кластера управления через мастер установки или консоль, параметры закрытого контура, первые шаги и диагностика.
В закрытом контуре установка выполняется с локального рабочего места администратора с утилитой shtil. Узлы кластера и машина shtil должны иметь доступ к заранее подготовленному зеркалу образов.
Перед установкой сверьтесь с требованиями к закрытому контуру, с подготовкой к установке (зеркало, машина shtil, узлы, SSH) и с применимыми сценариями в схемах межсетевого взаимодействия. Состав сервисов репозитория см. на странице сервисы репозитория.
Исполняемый файл shtil актуальной версией поставляется менеджером со стороны вендора с бандлом платформы вместе с артефактами для корпоративного зеркала. После распаковки бандла скопируйте утилиту на машину shtil, сделайте файл исполняемым (chmod +x ./shtil или актуальное имя бинаря). Порядок работы с бандлом и зеркалом см. на странице подготовка к установке в закрытом контуре. Версия shtil должна соответствовать версии вашего бандла.
Доступные сценарии установки:
- с GUI —
install-gui, затем мастер установки в браузере; - с флагами —
install-cliи подкоманда провайдера; - с YAML —
install-cli … --yaml-path/-f.
Установка с GUI
Установка с GUI состоит из двух этапов: сначала shtil создаёт локальный установочный кластер, затем администратор настраивает кластер управления в веб-мастере установки.
Команда install-gui также доступна через синонимы create-cluster и create.
Этап 1. Запустите локальный установочный кластер
Для закрытого контура обязательно укажите лицензию1 и адрес зеркала:
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА"
1 Если лицензия содержит специальные символы ($, <, >, *, &, ?, /, ), заключите её в одинарные кавычки.
Если у зеркала самоподписной сертификат, используйте один из вариантов.
Пропустить проверку TLS зеркала:
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА" \
--bootstrap-insecure
Передать каталог с доверенными сертификатами зеркала:
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА" \
--bootstrap-registry-certs-dir="/path/to/certs"
Обратите внимание! Важно для Docker: если на машине shtil используется Docker, флаг --bootstrap-insecure не отключает TLS-проверку на этапе первичного docker pull: эту проверку выполняет демон Docker до запуска bootstrap-кластера. До запуска shtil настройте доверие к зеркалу: добавьте CA в /etc/docker/certs.d/<registry-host:port>/ca.crt или настройте insecure-registries в /etc/docker/daemon.json, затем перезапустите Docker.
Чтобы сразу задать пароль администратора платформы, добавьте --password. Пароль должен быть не короче 8 символов и содержать строчную букву, заглавную букву и цифру.
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА" \
--password="ПАРОЛЬ-ADMIN"
Основные параметры запуска:
| Параметр | Описание |
|---|---|
--bootstrap-license | Лицензия платформы. Обязательна для локального установочного сценария. Если лицензия содержит специальные символы ($, <, >, *, &, ?, /, \), заключите её в одинарные кавычки |
--bootstrap-registry | Адрес зеркала образов. В закрытом контуре обязателен |
--bootstrap-insecure | Отключает проверку TLS при обращении к зеркалу. Если используется Docker дополнительно настройте доверие к зеркалу |
--bootstrap-registry-certs-dir | Каталог с доверенными сертификатами зеркала; не заменяет настройку /etc/docker/certs.d/ или insecure-registries для Docker |
--bootstrap-kubeconfig-path | Путь к kubeconfig локального установочного кластера |
--password | Пароль администратора платформы |
--name, -n | Имя локального установочного кластера. По умолчанию используется shturval-installer |
--wait | Ожидание готовности Control Plane узла локального кластера |
--retry | Количество повторов при ошибках установки. Слишком малые значения автоматически повышаются до 10 |
--debug | Сохраняет контейнер при неуспешной установке для диагностики |
После успешного запуска команда выводит сообщение о старте установщика, учётной записи администратора и URL веб-интерфейса.
Браузер для веб-интерфейса — см. требования к браузерам.
Если shtil install-gui запускается на удалённой Linux-машине, откройте мастер установки в браузере по IP-адресу или hostname этой машины, без предварительного проброса портов, например, http://10.11.12.13:30080/.
Переход по hostname возможен только при условии, что в DNS настроен резолвинг доменного имени на IP-адрес.
Жизненный цикл локального установщика: кнопка «Отменить инсталляцию» в мастере установки сбрасывает заполненную форму создания кластера и возвращает к экрану инициализации; обновление страницы без отмены данные полей обычно не сбрасывает. После успешной установки постоянного кластера временный (bootstrap) кластер не удаляется автоматически — при необходимости очистите его по инструкции Деинсталляция временного кластера. При ошибке без --debug контейнер локального установщика может быть удалён; для диагностики используйте ./shtil install-gui ... --debug.
Этап 2. Откройте мастер установки и заполните параметры
- Откройте URL веб-интерфейса из вывода
shtil. - Войдите под учётной записью администратора.
- Нажмите Создать кластер управления.
- Заполните мастер установки и нажмите Создать кластер на шаге проверки данных.
- Дождитесь завершения развёртывания. Обычно установка занимает 20-60 минут. Вы можете закрыть вкладку браузера до завершения инсталляции, по возвращению откроется страница инсталляции кластера. Подробнее о статусе инсталляции кластера управления.
Скриншот стартового экрана локального установщика

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

| Поле | Описание |
|---|---|
| Имя кластера | Уникальное имя кластера управления. Используется в служебных объектах и FQDN. Указывайте латиницу, цифры и дефис. |
| Выберите провайдер | Выберите провайдера инфраструктуры, подготовленного перед инсталляцией: Shturval v2, VMware vSphere или oVirt и подобные. |
Обратите внимание! провайдер, с которым разворачивается платформа, будет установлен в платформе как критически важный сервис - недоступен для отключения. Остальные инфраструктурные провайдеры в платформе будут выключены.
Перед заполнением формы проверьте требования выбранного провайдера: Shturval v2, VMware vSphere, oVirt и подобные провайдеры.
Шаг 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. Без пула адреса вводятся вручную. |
Шаг 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 должен быть доступен с рабочей станции администратора.
Шаг 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. Подробнее — клонирование диска. |
Шаг 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. Подробнее — клонирование диска. |
| Роли | Роли узлов через запятую; они будут добавлены в лейблы узлов. |
Шаг 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 учётной записи. |
Шаг 7. Выбор сервисов
Кластер управления по умолчанию разворачивается с Gateway API. Способа управления HTTP-трафиком на этом шаге нет: внешний HTTP-трафик принимает Gateway API на Cilium. Контроллер Gateway API в Cilium и выпуск сертификатов для Gateway API в cert-manager уже включены. Модуль управления внешними подключениями (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. |
| Доставка приложений | Компоненты непрерывной доставки и стратегий развёртывания. |
| Балансировщик нагрузки | Компоненты распределения нагрузки и управления трафиком. |
| Инструменты ИБ | Анализ конфигураций и сканирование образов. |
| Показать расширенные настройки | Переключает выбор с групп сервисов на отдельные сервисы и чарты. |
Шаг 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. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
Статус инсталляции кластера управления
Подробное описание этапов статуса, цветовой индикации, таблиц узлов и сервисов см. Статус развертывания кластера.
После запуска развёртывания на экране отображается статус инсталляции кластера управления с этапами.
Установка занимает 20-60 минут, вы можете закрыть вкладку браузера до завершения инсталляции. При возвращении на страницу инсталляции будет доступен статус инсталляции кластера управления. При перезагрузке страницы процесс установки восстановится автоматически. По завершении инсталляции вы получите данные для входа в платформу.
По завершении инсталляции вы автоматически перейдёте на этап «Кластер готов». На этом этапе доступны:
- статический kubeconfig постоянного кластера управления — скачайте и сохраните его;
- ссылка для перехода в постоянный кластер управления. Для входа используйте логин и пароль администратора платформы, полученные при запуске установки.
Инсталляция кластера управления считается завершённой, когда выполнены минимальные требования:
- готова инфраструктура;
- готов минимум 1 Control Plane узел;
- успешно установлены сервисы
shturval-backend,shturval-auth,shturval-frontend,shturval-gateway-api-crds.
Когда kubeconfig и ссылка в интерфейс постоянного кластера уже доступны, отдельные этапы могут ещё выполняться: например, могут устанавливаться не все сервисы или применяться не все NCI. Вы можете дождаться завершения всех этапов в интерфейсе временного кластера или проверить состояние в постоянном кластере: NCI — на странице Конфигурация узлов, при необходимости правьте узлы через создание и работу с NCI; сервисы — на странице Установленные сервисы.
Установка сервисов репозитория Shturval выполняется в два этапа: сначала поднимаются критически важные сервисы, затем сервисы, выбранные на шаге «Выбор сервисов». Этап установки сервисов репозитория Shturval считается завершённым только после установки всех сервисов: критически важных и выбранных пользователем (состав и обновление артефактов реестра см. в сервисах репозитория). Для кластера управления в статусе также отображается этап «Репликация» со списком conditions репликации.
Установка с флагами
Установка с флагами выполняется командой install-cli без веб-мастера установки. Команда также доступна через синоним install.
Провайдеры
В закрытом контуре используйте on-premise провайдеры:
| Провайдер | Подкоманда |
|---|---|
| Shturval v2 | shturvalv2 |
| oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization | ovirt |
| VMware vSphere | vsphere |
Сценарии и параметры сред описаны также в документации Shturval v2, oVirt и VMware vSphere.
Общие параметры
Для закрытого контура укажите --bootstrap-registry. Если у зеркала самоподписной сертификат, добавьте --bootstrap-insecure или передайте сертификаты через --bootstrap-registry-certs-dir. Если на машине shtil используется Docker, также заранее настройте доверие к зеркалу: --bootstrap-insecure не влияет на первичный docker pull. Сетевой контекст — схемы межсетевого взаимодействия и требования к закрытому контуру.
| Группа | Параметры | Назначение |
|---|---|---|
| Базовая | --api-endpoint, -a, --use-external-kubeapi-lb, --provider-name, --cluster-name | Адрес API управления, внешний балансировщик KubeAPI, имя экземпляра провайдера и имя кластера |
| Сеть | --pod-subnet, --service-subnet | Подсети Pod и Service по CIDR; при ошибках см. конфликт адресных пространств (подсетей) |
| Ingress | --ingress-vip, --ingress-default-fqdn, --use-external-ingress-lb | Параметры внешнего доступа к Ingress |
| Безопасность и сертификаты | --secure, параметры PEM, ACME и TLS | Политики запросов создания кластера и сертификаты Ingress |
| Системные сервисы | --enabled-system-services, --minimal | Список включаемых компонентов и минимальная конфигурация; см. установку сервисов |
| Bootstrap | --existing-bootstrap-kubeconfig, --bootstrap-kubeconfig-path, --bootstrap-license1, --bootstrap-registry, --bootstrap-insecure, --bootstrap-registry-certs-dir | Использование существующего bootstrap-кластера или создание локального, лицензия и параметры зеркала |
| Прочее | --yaml-path, -f, --platform-version, --overwrite (вместо overwrite можно писать команду -y), --cluster-kubeconfig-path | Файл настроек, версия платформы, перезапись конфликтующих ресурсов и путь итогового kubeconfig |
Обратите внимание! --existing-bootstrap-kubeconfig и --bootstrap-kubeconfig-path нельзя использовать вместе. --bootstrap-license не требуется, если передан kubeconfig действующего bootstrap-кластера.
1 Если лицензия содержит специальные символы ($, <, >, *, &, ?, /, ), заключите её в одинарные кавычки.
Shturval v2
./shtil install-cli shturvalv2 \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА" \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--ssh-user="ИМЯ-ПОЛЬЗОВАТЕЛЯ" \
--path-ssh-private-key="/path/to/private-key" \
--controlplane-nodes="IP-CP1,IP-CP2,IP-CP3" \
--worker-nodes="IP-W1,IP-W2,IP-W3" \
--api-endpoint="IP-API" \
--ingress-vip="IP-INGRESS" \
--cluster-name="ИМЯ-КЛАСТЕРА"
Обязательные параметры для Shturval v2:
| Параметр | Описание |
|---|---|
--api-endpoint, -a | Адрес API-сервера |
--path-ssh-private-key | Путь к файлу приватного SSH-ключа |
--ssh-user | Имя пользователя для SSH |
--controlplane-nodes, -c | IP или FQDN хостов Control Plane через запятую |
--worker-nodes, -w | IP или FQDN хостов Worker через запятую. При --minimal можно не указывать. Без Worker-узлов и без --minimal установка не начнётся |
Пароль SSH-пользователя для sudo
Если на хостах команды выполняются через sudo с паролем, передайте пароль SSH-пользователя. Параметр необязательный. Без него установка идёт как раньше: пользователь выполняет sudo без пароля.
| Параметр | Описание |
|---|---|
--ssh-user-password | Пароль SSH-пользователя для команд sudo. В YAML — credentials.SSH.sshUserPassword. Для отдельного хоста со своими учётными данными — hosts[].credentials.SSH.sshUserPassword |
Как задать пароль в интерфейсе уже созданного провайдера — в разделе Как добавить пароль для команд sudo. Полный справочник полей YAML — в процессе установки в открытом контуре.
Кластер с провайдером Shturval v2 без Worker-узлов можно поставить только в минимальном режиме, для этого передайте --minimal. Если не заданы ни --worker-nodes, ни --minimal, установка не начнётся. При установке из YAML флаг --minimal в команде включает минимальный режим, даже если в файле этого параметра нет.
Пример минимальной конфигурации на одном Control Plane узле:
./shtil install-cli shturvalv2 \
--bootstrap-registry="mirror.corp.local" \
--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"
oVirt / zVirt / HostVM / РЕД Виртуализация / ROSA
./shtil install-cli ovirt \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА" \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--url-provider="https://OVIRT-FQDN/ovirt-engine/api" \
--user-provider="ПОЛЬЗОВАТЕЛЬ" \
--password-provider="ПАРОЛЬ" \
--datacenter-provider="ДАТА-ЦЕНТР" \
--datacenter-cluster-provider="КЛАСТЕР" \
--vnic-profile-provider="VNIC-ПРОФИЛЬ" \
--template="ШАБЛОН-ВМ" \
--provider-csi-storage="STORAGE-DOMAIN" \
--api-endpoint="IP-API" \
--ingress-vip="IP-INGRESS" \
--cluster-name="ИМЯ-КЛАСТЕРА"
Основные параметры провайдера:
| Параметр | Описание |
|---|---|
--url-provider | URL API oVirt с суффиксом /ovirt-engine/api |
--user-provider, --password-provider | Учётные данные oVirt |
--datacenter-provider, --datacenter-cluster-provider | Дата-центр и кластер |
--vnic-profile-provider | VNIC-профиль |
--template, -t | Имя шаблона ВМ |
--provider-csi-storage | Storage Domain для CSI |
--delete-persistent-volumes | Удалять PV при удалении кластера (true / false). Если флаг не указан, используется политика профиля кластера |
--sub-type-provider | Тип совместимой виртуализации: zvirt, hostvm, redvirt, rosavirt |
--control-plane, --workers | Количество узлов |
--cores-*, --memory-*, --disk-* | Ресурсы ВМ |
--disk-clone, --disk-clone-control-plane, --disk-clone-workers | Клонировать диск ВМ: экземпляр провайдера, Control Plane и группа Worker по умолчанию. Если флаг не задан, поле не отправляется |
VMware vSphere
./shtil install-cli vsphere \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА" \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--address-vcenter="VCENTER-FQDN" \
--user-vcenter="ПОЛЬЗОВАТЕЛЬ" \
--password-vcenter="ПАРОЛЬ" \
--provider-datacenter="ДАТА-ЦЕНТР" \
--provider-datastore="DATASTORE" \
--provider-resource-pool="RESOURCE-POOL" \
--provider-network="NETWORK" \
--provider-folder="FOLDER" \
--template="ШАБЛОН-ВМ" \
--api-endpoint="IP-API" \
--ingress-vip="IP-INGRESS" \
--cluster-name="ИМЯ-КЛАСТЕРА"
Основные параметры провайдера:
| Параметр | Описание |
|---|---|
--address-vcenter, --user-vcenter, --password-vcenter | Подключение к vCenter |
--provider-datacenter, --provider-datastore | Дата-центр и хранилище |
--provider-resource-pool, --provider-network, --provider-folder | Пул ресурсов, сеть и папка ВМ |
--template, -t | Имя шаблона ВМ |
--control-plane, --workers | Количество узлов |
--cpu-*, --memory-*, --disk-* | Ресурсы ВМ |
--enable-csi, --delete-persistent-volumes, --provider-clone-mode, --provider-storage-policy | Дополнительные параметры |
Установка с YAML
Установка с YAML выполняется командой install-cli без веб-мастера установки. Команда также доступна через синоним install.
Параметры передаются через YAML-манифест с помощью --yaml-path или -f.
При использовании YAML сначала применяются параметры из файла, затем поверх них применяются только те флаги командной строки, которые явно указаны при запуске.
Провайдеры
В закрытом контуре используйте on-premise провайдеры:
| Провайдер | Подкоманда |
|---|---|
| Shturval v2 | shturvalv2 |
| oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization | ovirt |
| VMware vSphere | vsphere |
Сценарии и параметры сред описаны также в документации Shturval v2, oVirt и VMware vSphere.
Общие параметры
Для закрытого контура укажите --bootstrap-registry. Если у зеркала самоподписной сертификат, добавьте --bootstrap-insecure или передайте сертификаты через --bootstrap-registry-certs-dir. Если на машине shtil используется Docker, также заранее настройте доверие к зеркалу: --bootstrap-insecure не влияет на первичный docker pull. Сетевой контекст — схемы межсетевого взаимодействия и требования к закрытому контуру.
| Группа | Параметры | Назначение |
|---|---|---|
| Базовая | --api-endpoint, -a, --use-external-kubeapi-lb, --provider-name, --cluster-name | Адрес API управления, внешний балансировщик KubeAPI, имя экземпляра провайдера и имя кластера |
| Сеть | --pod-subnet, --service-subnet | Подсети Pod и Service по CIDR; при ошибках см. конфликт адресных пространств (подсетей) |
| Ingress | --ingress-vip, --ingress-default-fqdn, --use-external-ingress-lb | Параметры внешнего доступа к Ingress |
| Безопасность и сертификаты | --secure, параметры PEM, ACME и TLS | Политики запросов создания кластера и сертификаты Ingress |
| Системные сервисы | --enabled-system-services, --minimal | Список включаемых компонентов и минимальная конфигурация; см. установку сервисов |
| Bootstrap | --existing-bootstrap-kubeconfig, --bootstrap-kubeconfig-path, --bootstrap-license1, --bootstrap-registry, --bootstrap-insecure, --bootstrap-registry-certs-dir | Использование существующего bootstrap-кластера или создание локального, лицензия и параметры зеркала |
| Прочее | --yaml-path, -f, --platform-version, --overwrite(вместо overwrite можно писать команду -y), --cluster-kubeconfig-path | Файл настроек, версия платформы, перезапись конфликтующих ресурсов и путь итогового kubeconfig |
Обратите внимание! --existing-bootstrap-kubeconfig и --bootstrap-kubeconfig-path нельзя использовать вместе. --bootstrap-license не требуется, если передан kubeconfig действующего bootstrap-кластера.
1 Если лицензия содержит специальные символы ($, <, >, *, &, ?, /, ), заключите её в одинарные кавычки.
Конструкторы YAML
Интерактивные формы для подготовки манифестов (два файла: провайдер и кластер):
Установка по YAML-манифесту
Получите шаблон для нужного провайдера:
Shturval v2:
./shtil install-cli shturvalv2 example > install.yamloVirt (и совместимые виртуализации):
./shtil install-cli ovirt example > install.yamlVMware vSphere:
./shtil install-cli vsphere example > install.yamlЗаполните шаблон: провайдер, кластер, узлы, VIP, подсети и при необходимости сертификаты. Сверяйте сетевые значения и VIP с требованиями к закрытому контуру и схемами межсетевого взаимодействия. Исключите пересечения CIDR см. раздел про конфликт адресных пространств. Частые поля по провайдеру описаны также в документации Shturval v2, oVirt, VMware vSphere.
Запустите установку:
./shtil install-cli ТИП-ПРОВАЙДЕРА \ --yaml-path="ПУТЬ/К/ФАЙЛУ.yaml" \ --bootstrap-registry="АДРЕС-ЗЕРКАЛА" \ --bootstrap-license="ВАША-ЛИЦЕНЗИЯ"При самоподписанном сертификате зеркала добавьте
--bootstrap-insecureили--bootstrap-registry-certs-dir. При использовании Docker на машине shtil дополнительно настройте доверие к зеркалу до запуска команды.
Конфигурация в YAML — два документа (разделённых ---): конфигурация провайдера и конфигурация кластера.
| Провайдер | Конфигурация провайдера | Конфигурация кластера |
|---|---|---|
| Shturval v2 | CapsmProviderConfig | CapsmClusterConfig |
| oVirt | CapovProviderConfig | CapovClusterConfig |
| VMware vSphere | CapvsProviderConfig | CapvsClusterConfig |
Пример для Shturval v2: в первом документе — type: CapsmProviderConfig, credentials.SSH (privateKey, userName, при необходимости sshUserPassword), hosts (address, labelsSelector.role, при частных учётных данных — credentials.SSH.sshUserPassword). Во втором — type: CapsmClusterConfig, в cluster: apiEndpoint, clusterName, ingressvip, podSubnet, serviceSubnet, minimal, controlPlaneNodesCount; при необходимости — provider.controlPlaneNodeConfig, provider.workerNodeConfigs.
Первый документ — провайдер (CapsmProviderConfig):
---
type: CapsmProviderConfig
name: myprovidername
credentials:
SSH:
privateKey: /home/username/.ssh/id_ed25519
userName: shturval
# sshUserPassword: пароль-пользователя
hosts:
- address: 10.11.11.11
labelsSelector: { role: controlplane }
credentials: null
# Свои учётные данные хоста вместо null:
# credentials:
# SSH:
# privateKey: /home/username/.ssh/id_ed25519
# userName: shturval
# sshUserPassword: пароль-пользователя
- address: 10.11.12.12
labelsSelector: { role: workers }
credentials: null
Второй документ — кластер (CapsmClusterConfig). В рабочем install.yaml поместите его после провайдера с разделителем --- между документами:
---
type: CapsmClusterConfig
cluster:
apiEndpoint: 10.11.12.13
clusterName: myclustername
controlPlaneNodesCount: 1
ingressvip: 10.11.12.14
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 } }
Пример для 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
Для oVirt и VMware vSphere ориентируйтесь на актуальный шаблон команд install-cli ovirt example и install-cli vsphere example; см. страницы развёртывание через oVirt и развёртывание через VMware vSphere.
Минимальный пример запуска Shturval v2 по YAML:
./shtil install-cli shturvalv2 \
--yaml-path="install.yaml" \
--bootstrap-registry="mirror.corp.local" \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ"
Первые шаги после установки
| Действие | Описание |
|---|---|
| Проверьте доступ | Откройте URL веб-интерфейса. Логин: admin, пароль — из user.conf в каталоге данных установщика или значение, указанное в --password. Убедитесь, что кластер управления в статусе Готов |
| Сохраните учётные данные | Сохраните пароль администратора и kubeconfig. В интерфейсе kubeconfig доступен через меню пользователя → Скачать Kubeconfig |
| Настройте базовые сущности | Настройте доставку пользователей, пул IP-адресов, провайдер и шаблон ВМ. Дополнительные компоненты и сценарии установки см. на странице установки сервисов; реестр и артефакты платформы — сервисы репозитория; постоянная настройка узлов — через конфигурацию узлов (NCI) |
Каталог данных установщика по умолчанию — ~/.shturval/installer. Если домашний каталог пользователя недоступен, используется /tmp/shturval/installer. Файл с учётными данными администратора — user.conf внутри каталога данных.
Перед удалением локального установочного кластера или management-кластера сохраните user.conf, если он нужен для дальнейшего доступа к интерфейсу управления.
Диагностика
Полезные команды
./shtil --help
./shtil install-gui --help
./shtil install-cli --help
./shtil install-cli shturvalv2 --help
./shtil version
Для более подробного вывода используйте глобальный флаг --verbosity или -v.
Ошибки подключения к зеркалу
| Симптом | Возможная причина | Решение |
|---|---|---|
| Ошибка недостижимости реестра | Нет TCP-доступа к хосту или порту зеркала | Проверьте DNS, маршрутизацию, firewall и значение --bootstrap-registry |
| Ошибки TLS при доступе к зеркалу | Недоверенный или самоподписной сертификат | Используйте --bootstrap-insecure или передайте доверенные сертификаты через --bootstrap-registry-certs-dir |
Ошибка TLS Docker при первичном docker pull | Демон Docker не доверяет сертификату зеркала; флаги shtil ещё не применяются на этом этапе | Настройте Docker на машине shtil: положите CA в /etc/docker/certs.d/<registry-host>/ca.crt или добавьте зеркало в insecure-registries, затем перезапустите Docker и повторите запуск. См. настройку доверия Docker к зеркалу |
401 Unauthorized | Ошибка лицензии или настроек зеркала | Проверьте лицензию и настройки зеркала |
Проверка доступности зеркала:
curl -v https://mirror.corp.local
Ошибки рабочей станции
| Симптом | Решение |
|---|---|
В PATH нет контейнерного runtime | Проверьте наличие docker из состава бандла. Он нужен для install-gui и операций с локальным установочным кластером |
Delegate=yes / UserNS: cpu controller needs to be delegated | Подготовка к rootless Podman |
| Нужна диагностика неуспешной GUI-установки | Повторите запуск install-gui с --debug, чтобы сохранить контейнер |
Ошибки SSH при Shturval v2
| Симптом | Решение |
|---|---|
Permission denied | Проверьте SSH-ключ, пользователя и доступ к каждому хосту |
sudo: no tty present | Если sudo требует пароль, передайте --ssh-user-password или credentials.SSH.sshUserPassword — см. Пароль SSH-пользователя для sudo. Для sudo без пароля добавьте пользователя в sudoers, например, shturval ALL=(ALL) NOPASSWD: ALL |
| SELinux blocking | Переведите SELinux в permissive-режим или отключите его согласно требованиям вашей организации |
Ошибки при создании постоянного кластера
| Симптом | Решение |
|---|---|
| VIP уже используется | Используйте свободные непингуемые адреса |
| Подсети не совпадают / конфликт CIDR | Проверьте, что адрес API находится в подсети Control Plane и что podSubnet и serviceSubnet не пересекаются с сетью кластера; см. конфликт адресных пространств |
| Ошибка при загрузке образов | Проверьте доступ узлов к зеркалу (сервисы репозитория) |
Дополнительная диагностика
- Расхождение времени — проверьте NTP или Chrony на всех узлах и хосте зеркала.
- Недостаточно места — проверьте, что ресурсы узлов соответствуют требованиям.
- Проверка CLI — команда
versionвыводит версиюshturval-installer; режим вывода зависит от уровня--verbosity.