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

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

В закрытом контуре установка выполняется с локального рабочего места администратора с утилитой shtil. Узлы кластера и машина shtil должны иметь доступ к заранее подготовленному зеркалу образов.

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

Исполняемый файл shtil входит в состав дистрибутивного бандла платформы вместе с артефактами для корпоративного зеркала. После распаковки бандла скопируйте утилиту на машину shtil, сделайте файл исполняемым (chmod +x ./shtil или актуальное имя бинаря). Порядок работы с бандлом и зеркалом см. на странице подготовка к установке в закрытом контуре. Версия shtil должна соответствовать версии вашего бандла.

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

  • с GUIinstall-gui, затем мастер установки в браузере;
  • с флагамиinstall-cli и подкоманда провайдера;
  • с YAMLinstall-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. Откройте мастер установки и заполните параметры

  1. Откройте URL веб-интерфейса из вывода shtil.
  2. Войдите под учётной записью администратора.
  3. Нажмите Создать кластер управления.
  4. Заполните мастер установки и нажмите Создать кластер на шаге проверки данных.
  5. Дождитесь завершения развёртывания. Обычно установка занимает 20-60 минут.

Не закрывайте вкладку браузера до завершения инсталляции.

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

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

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

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

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

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

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

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

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

Shturval v2

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

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

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

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

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

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

VMware vSphere

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

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

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

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

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

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

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

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

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

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

Shturval v2

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

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

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

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

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

Поле Описание
Версия 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

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

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

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

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

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

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

Поле Описание
Шаблон провайдера Шаблон ВМ для нужной версии 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

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

Shturval v2 — Control Plane

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

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

VMware vSphere

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

VMware vSphere — Control Plane

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

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

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

oVirt — Control Plane

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

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

Shturval v2

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

Shturval v2 — группы Worker

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

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

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

VMware vSphere

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

VMware vSphere — группы Worker

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

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

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

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

oVirt — группы Worker

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

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

Шаг 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-манифесту

  1. Получите шаблон для нужного провайдера:

    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
    
  2. Заполните шаблон: провайдер, кластер, узлы, VIP, подсети и при необходимости сертификаты. Сверяйте сетевые значения и VIP с требованиями к закрытому контуру и схемами межсетевого взаимодействия. Исключите пересечения CIDR см. раздел про конфликт адресных пространств. Частые поля по провайдеру описаны также в документации Shturval v2, oVirt, VMware vSphere.

  3. Запустите установку:

    ./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.