Процесс установки
Инсталляция кластера управления через мастер или консоль, параметры закрытого контура, первые шаги и диагностика.
В закрытом контуре установка выполняется с локального рабочего места администратора с утилитой 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. Запустите локальный установочный кластер
Для закрытого контура обязательно укажите лицензию и адрес зеркала:
./shtil install-gui \
--bootstrap-license="ВАША-ЛИЦЕНЗИЯ" \
--bootstrap-registry="АДРЕС-ЗЕРКАЛА"
Если у зеркала самоподписной сертификат, используйте один из вариантов.
Пропустить проверку 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 и устанавливает компоненты на выбранные узлы.
Скриншот и поля шага

| Поле | Описание |
|---|---|
| Название экземпляра | Имя конфигурации провайдера, по которому мастер будет ссылаться на подготовленные хосты. |
| Пул IP-адресов | Пул свободных адресов для API-сервера и VIP Ingress. Если пул не выбран или в нём нет свободных адресов, адреса задаются вручную на шаге основных данных. |
| Имя пользователя SSH | Пользователь для подключения к хостам. У пользователя должны быть права sudo без пароля. |
| Приватный SSH-ключ | Приватный ключ для подключения к хостам. Публичная часть ключа должна быть добавлена на все целевые хосты. |
| Хосты | IP-адреса или FQDN хостов, роли (controlplane, workers, infra и другие) и при необходимости лейблы для выбора узлов в мастере. |
По умолчанию в провайдере используются общие учётные данные для всех хостов. При необходимости вы можете указать частные учётные данные для некоторых или всех хостов.
Учётные данные сохраняются в Secret кластера управления в неймспейсе shturval-capsm. Имя Secret формируется из имени экземпляра провайдера с суффиксом capsm-v2-provider-secret. Пример Secret приведён на странице Провайдер Shturval v2 (shturval-capsm).
VMware vSphere
Для провайдера VMware vSphere используйте vCenter и параметры, подготовленные перед инсталляцией. Узлы кластера управления будут созданы из шаблона ВМ; если шаблон не был создан заранее, подготовьте его по инструкции и вернитесь к установке.
Скриншот и поля шага

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

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




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


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


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


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


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


| Поле | Описание |
|---|---|
| Критические сервисы | Обязательные компоненты платформы. Всегда включены и недоступны для отключения. |
| Мониторинг | Метрики, дашборды и экспорт метрик. |
| Логирование | Сбор и обработка логов. |
| Резервное копирование и восстановление | Сервисы резервного копирования и работы со snapshot. |
| Доставка приложений | Компоненты непрерывной доставки и стратегий развёртывания. |
| Балансировщик нагрузки | Компоненты распределения нагрузки и управления трафиком. |
| Инструменты ИБ | Анализ конфигураций и сканирование образов. |
| Показать расширенные настройки | Переключает выбор с групп сервисов на отдельные сервисы и чарты. |
Шаг 8. Проверка данных
Shturval v2
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
VMware vSphere
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
oVirt, zVirt, HostVM, РЕД Виртуализация, ROSA Virtualization
Описание шага
Проверьте сводку параметров: имя кластера, провайдер, адреса API и Ingress, сетевые CIDR, конфигурацию Control Plane, Worker-группы, сертификат и выбранные сервисы. Чтобы исправить параметр, вернитесь к нужному шагу через левую панель или кнопку Назад. После проверки нажмите Создать кластер.
Статус инсталляции кластера управления
Подробное описание этапов статуса, цветовой индикации, таблиц узлов и сервисов см. Статус развертывания кластера.
После запуска развёртывания на экране отображается статус инсталляции кластера управления с этапами.
По завершении инсталляции вы автоматически перейдёте на этап «Кластер готов». На этом этапе доступны:
- статический kubeconfig постоянного кластера управления — скачайте и сохраните его;
- ссылка для перехода в постоянный кластер управления. Для входа используйте логин и пароль администратора платформы, полученные при запуске установки.
Инсталляция кластера управления считается завершённой, когда выполнены минимальные требования:
- готова инфраструктура;
- готов минимум 1 Control Plane узел;
- успешно установлены сервисы
shturval-backend,shturval-auth,shturval-frontend,shturval-ingress-controller.
Когда 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-license, --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-кластера.
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 |
Пример минимальной конфигурации на одном 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 |
--sub-type-provider |
Тип совместимой виртуализации: zvirt, hostvm, redvirt, rosavirt |
--control-plane, --workers |
Количество узлов |
--cores-*, --memory-*, --disk-* |
Ресурсы ВМ |
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, --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-license, --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-кластера.
Установка по 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), hosts (address, labelsSelector.role). Во втором — 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
hosts:
- address: 10.11.11.11
labelsSelector: { role: controlplane }
credentials: null
- 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 |
Добавьте пользователя в sudoers, например shturval ALL=(ALL) NOPASSWD: ALL |
| SELinux blocking | Переведите SELinux в permissive-режим или отключите его согласно требованиям вашей организации |
Ошибки при создании постоянного кластера
| Симптом | Решение |
|---|---|
| VIP уже используется | Используйте свободные непингуемые адреса |
| Подсети не совпадают / конфликт CIDR | Проверьте, что адрес API находится в подсети Control Plane и что podSubnet и serviceSubnet не пересекаются с сетью кластера; см. конфликт адресных пространств |
| Ошибка при загрузке образов | Проверьте доступ узлов к зеркалу (сервисы репозитория) |
Дополнительная диагностика
- Расхождение времени — проверьте NTP или Chrony на всех узлах и хосте зеркала.
- Недостаточно места — проверьте, что ресурсы узлов соответствуют требованиям.
- Проверка CLI — команда
versionвыводит версиюshturval-installer; режим вывода зависит от уровня--verbosity.