Закрытый контур

Закрытый контур - в процессе инсталляции нет интернета на всех узлах и зеркале. Для инсталляции необходим дистрибутив и лицензия платформы Штурвал.

Запустите команду для скачивания бинарного файла:

wget URL -O stc

Где вместо URL подставьте соответствующую необходимой версии ссылку:

Скачайте с зеркала архив с образами на дополнительную машину. Подробнее о подготовке зеркала .

Подготовка архива дистрибутива платформы

Распакуйте загруженный или созданный архив на хосте, имеющим доступ в сеть Интернет.

Последовательно запустите на выполнение следующие скрипты:

  • ./check_runtime.sh для проверки наличия Docker/Podman и установки связи между ними. Если компонент не найден, устанавливает Podman;

  • ./download_images.sh --version [номер версии] --license [номер лицензии] --tar true загрузит образы требуемой версии и создаст полный архив инсталлятора.

    • Если не указана версия, будет выведен список доступных версий.
    • Параметр license обязателен.
    • Параметр --tar true подготовит архив со скаченными образами и пакетами для установки в закрытом контуре.

Обновление зеркала

Для обновления зеркала распакуйте архив на сервер с установленным зеркалом.

Запустите скрипт update_bundle.sh с параметром --mirror_path - полный путь для каталога с установленным зеркалом

Например: ./update_bundle.sh --mirror_path /opt/shturval

Порядок запуска offline-репозитория

Распакуйте созданный архив на хосте, который будет выполнять роль зеркала репозитория Штурвала.

Последовательно запустите на выполнение следующие скрипты:

  • ./check_runtime.sh для проверки наличия Docker/Podman и установки связи между ними. Если компонент не найден, устанавливает Podman;

  • ./gen_certs.sh для генерации сертификата репозитория. Скрипт в интерактивном режиме запрашивает имя сертификата. Если найдены старые сертификаты, предлагает удалить их;

  • ./run_repos.sh для запуска репозитория.

Обратите внимание! Если вы выписываете собственный сертификат зеркала (не предлагаемым скриптом), убедитесь, что в нем присутствует параметр subjectAltName. При отсутствии этого параметра containerd не спулит образы.

Если вы перезагрузили хост, выполните проверку состояния контейнера sht_offline_installer:

docker ps -a | grep sht_offline_installer   

Если контейнер не в состоянии Running, удалите его с помощью команды:

docker rm -f sht_offline_installer

Запустите контейнер с помощью скрипта:

./run_repos.sh

По умолчанию репозиторий начинает работать с порта 443. Его можно поменять с помощью параметра --port (./run_repos.sh --port 8443)

Установка кластера управления

Параметры команды

Для вызова справки о команде используйте параметр:

Параметр Описание
-h, --help Справка о команде

Пример:

./stc install management --help

Глобальные:

Наименование параметра Описание
--debug Выводить в лог всю информацию об ошибках (по умолчанию false)
--dry-run Только проверка конфигурации. Реальные изменения не вносятся. (по умолчанию false)
--force Удалять без подтверждения
--quiet Выключить stdout. Только код выхода
--ssh-private-key string Путь к файлу приватного ключа SSH
--ssh-user string Имя пользователя для подключения по SSH
--workdir string Рабочая директория кластера (для файлов конфигурации, логов и пр.)

Параметры инсталляции:

Параметр Описание
--api-endpoint [string] Адрес API управления кластером
--cluster-name [string] Имя кластера
--ha-type [string] Тип доступности кластера: single (одноузловой) или ha (высокодоступный)
--ingress [string] Wildcard DNS-запись для ingress в формате apps.corporate.domain
--ingress-vip [string] VIP адрес для ingress контроллера
--interactive Признак интерактивного режима. Значение по умолчанию – false
--license [string] Лицензионный ключ для загрузки пакетов
--monitoring-endpoint [string] Адрес кластера мониторинга для отправки системных метрик
--ntp-servers [string] Список серверов синхронизации времени (через запятую)
--registry [string] Адрес реестра образов и репозиториев пакетов. Значение по умолчанию – r.shturval.tech
--secure Признак установки дополнительных параметров безопасности. Значение по умолчанию – false
--timezone [string] Часовой пояс. Значение по умолчанию – Europe/Moscow
--skip-check Пропустить проверку хостов перед инсталляцией (по умолчанию false)
--use-external-ingress-lb Использовать внешний балансировщик для Ingress контроллера (по умолчанию false)
--use-external-kubeapi-lb Использовать внешний балансировщик кластерного IP (по умолчанию false)

При использовании корпоративного зеркала корневой сертификат зеркала должен быть прописан в доверенные на все ВМ и шаблоны.

Интерактивный режим инсталляции

Запустите инсталляцию с помощью команды:

./stc install management --interactive

Введите данные в соответствии с подсказками, которые отобразятся на экране.

Пример процесса инсталляции в интерактивном режиме для высокодоступного кластера с тремя Master-узлами и двумя Worker-узлами:

Введите название кластера: test-cluster
Введите имя пользователя для доступа к узлам кластера:
%имя_пользователя%
Use the arrow keys to navigate: ↓ ↑ → ←
? Выберите ssh-ключ для подключения к узлам кластера
пользователя %имя_пользователя%:
  ▸ id_rsa
    указать другой путь к файлу
Use the arrow keys to navigate: ↓ ↑ → ←
? Выберите конфигурацию кластера:
    Одноузловой
  ▸ Высокодоступный
Введите адрес для узла master номер 1: master1
Введите адрес для узла master номер 2: master2
Введите адрес для узла master номер 3: master3

Введите адрес API кластера: xx.xxx.x.xxx
(указывается только для высокодоступной конфигурации)
Введите количество рабочих узлов кластера: x
Введите адрес для узла worker номер 1: xxx-xx
Use the arrow keys to navigate: ↓ ↑ → ←
? Использовать внешний балансировщик для Ingress контроллера:
  ▸ Да
    Нет
Введите VIP адрес для Ingress контроллера: xx.xxx.x.xxx
Use the arrow keys to navigate: ↓ ↑ → ←
? Автоматически сгенерировать DNS имя для Ingress контроллера:
  ▸ Да
    Нет
Введите виртуальный IP (VIP) для ingress: xx.xxx.x.xxx

В процессе инсталляции будет отображаться следующая информация:

Выполняется подготовка узлов для установки кластера.
Это может занять несколько минут.
Инициализация подсистемы управления кластера
Добавление Worker-узлов в кластер
Установка системных компонентов кластера
Статус установки системных компонентов:
kube-prometheus-crds : Успешно
cilium : Успешно
ingress-nginx : Успешно
Кластер успешно развернут
Для подключения используйте ключ
/%путь_до_конфигурационного файла%/clusteradmin.confclusteradmin.conf

Если инсталляция завершилась с ошибками, информация о них отобразится в логе.

Тихий режим инсталляции

./stc install management --cluster-name=test-cluster --license=$SHTURVAL_LICENSE \
--ssh-user=%имя_пользователя% --ssh-private-key=%путь к файлу с ключом%  --ha-type=ha \
--master-nodes=master1,master2,master3 --worker-nodes=worker1,worker2 --ingress-vip=[string]

Пример:

./stc install management --license="qwe123asd" --registry=corp.domain.local:443 --use-external-ingress-lb=true --api-endpoint=api.corp.domain.local --cluster-name=management --ha-type=ha --ingress=apps.corp.domain.local --master-nodes=10.0.0.3,10.0.0.4,10.0.0.56 --worker-nodes=10.0.0.11,10.0.0.12,10.0.0.13 --ssh-user=shturval --ssh-private-key=/home/shturval/.ssh/id_rsa --use-external-ingress-lb=true --pod-subnet=100.80.0.0/16 --service-subnet=100.64.0.0/12 --secure=true --skip-check --debug --ca-cert=./cert.pem  --ca-key=./key.pem

Если какой-либо параметр указан неверно:

  • инсталляция остановится;
  • отобразится сообщение с указанием ошибки и некорректного параметра;
  • процесс остановится.

В этом случае устраните ошибку и перезапустите процесс развертывания.

Смешанный режим инсталляции

В смешанном режиме пропишите в команде признак --interactive и добавьте необходимые параметры. Остальные необходимые для инсталляции параметры система запросит в режиме диалога.

Пример запуска установки кластера управления в смешанном режиме:

./stc install management  --interactive --license=$SHTURVAL_LICENSE \
--ntp-servers=0.ru.pool.ntp.org,1.ru.pool.ntp.org \
--disabled-system-services=shturval-cd,shturval-rollouts,shturval-policy-manager,shturval-scanner,shturval-policies

Если инсталляция завершилась с ошибками, информация о них отобразится в логе.

Установка системных сервисов в процессе инсталляции

  • Чтобы использовать системный ingress-controller (Virtual IP) при инсталляции используйте параметр --ingress-vip. Пропишите свободный IP-адрес. Технические сервисы будут преконфигурированы при инсталляции.
  • Если у вас есть Wildcard-запись и вы хотите использовать системный ingress-controller (Virtual IP) при инсталляции используйте параметры --ingress-vip и --ingress. При этом IP-адрес имени хоста ingress должен совпадать с IP-адресом, указанным в ingress-vip.
  • Если у вас есть Wildcard-запись и вы хотите использовать внешний ingress-controller при инсталляции используйте параметры --ingress и --use-external-ingress-lb со значением true. При инсталляции будут выведены подсказки по конфигурации на примере HAProxy. В таком случае вам необходимо самостоятельно создать Load balancer и распределить трафик на воркер-узлы.

Для управления в процессе инсталляции необходимо использовать названия чартов системных сервисов. Список доступных для управления системных сервисов:

Название чарта Название в графическом интерфейсе
shturval-descheduler Модуль распределения нагрузки узлов
shturval-log-operator Модуль локального сбора логов
shturval-dashboards Модуль графического отображения метрик
shturval-metrics Модуль локального сбора метрик
shturval-local-csi Модуль локального хранения
shturval-node-config Модуль управления конфигурациями узлов
shturval-cluster-roles Кластерные роли Платформы
shturval-services Модуль управления системными и корпоративными сервисами
shturval-backup Модуль резервного копирования и восстановления
shturval-scanner Модуль сканирования образов контейнеров
shturval-rollouts Модуль управления развертыванием прикладных сервисов
shturval-policy-manager Модуль анализа конфигураций приложений
shturval-cd Модуль непрерывной доставки приложений
shturval-cert-manager Модуль управления TLS-сертификатами
shturval-cert-expiration Модуль проверки сертификатов API Kubernetes
shturval-networking Модуль управления сетями кластера
shturval-caching-dns Модуль управления локальным DNS
shturval-vip Модуль управления виртуальными IP-адресами
shturval-ingress-controller Модуль управления внешними подключениями (Ingress)
shturval-update Модуль обновления кластера

Перейти на страницу с описанием параметров для конфигурации системных сервисов.

Troubleshooting

Если установка происходит в закрытом контуре (без доступа к сети Интернет) на Red OS и была произведена ручная модификация файлов /etc/yum.repos.d/RedOS-*.repo (например baseurl изменён на адрес прокси репозитория или зеркала):

На всех нодах кластера необходимо:

  • Установить пакет python3-dnf-plugin-versionlock
  • Поставить versionlock на пакет redos-release
  • Определить тип установки дистрибутива (minimal, server, desktop). Тип установки можно посмотреть в файле /etc/redos-release . Также можно посмотреть наличие пакетов redos-release-minimal, redos-release-server или redos-release-desktop
  • Поставить versionlock, на соответветствующей установке дистрибутива пакет (redos-release-minimal, redos-release-server, redos-release-desktop).

Пример для minimal инсталляции:

 yum install python3-dnf-plugin-versionlock
 yum versionlock add redos-release redos-release-minimal

Дополнительные рекомендации

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

Рекомендуем сразу после завершения установки настроить ротацию логов. Отсутствие ротации логов может привести к стремительному заполнению диска и замедлению работы системы.

Рекомендуем всегда прописывать ntp-серверы и указывать сервисы, которые не нужно включать по умолчанию:

--ntp-servers - укажите корпоративные или 0.ru.pool.ntp.org, 1.ru.pool.ntp.org
--disabled-system-services - укажите, какие сервисы не нужно включать по умолчанию

Рекомендуем использовать внешний балансировщик для кластера управления в промышленной (продуктивной) среде.

Как изменить пароль администратора

При завершении установки система предоставит временный пароль администратора для первого входа в систему и настройки интеграции с внешней системой аутентификации.

Чтобы сменить пароль администратора по умолчанию, перейдите в установленный системный сервис “Модуль программного управления платформой Штурвал” (shturval-backend) кластера управления (платформы). В спецификации системного сервиса найдите параметр: static_password и обновите его значение.