Закрытый контур
На этой странице
Закрытый контур - в процессе инсталляции нет интернета на всех узлах и зеркале. Для инсталляции необходим дистрибутив и лицензия платформы Штурвал.
При отсутствии скаченного stc запустите команду для скачивания бинарного файла:
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
Дополнительные рекомендации
Время должно быть синхронизировано не только между узлами, но и с тем узлом, с которого производите установку. Перейти на страницу с инструкцией по синхронизации времени.
Если вы устанавливаете кластер с версией до 2.6, рекомендуем сразу после завершения установки настроить ротацию логов. Отсутствие ротации логов может привести к стремительному заполнению диска и замедлению работы системы. В случае установки кластера с версией 2.6 и выше, ротация логов будет настроена автоматически.
Рекомендуем всегда прописывать ntp-серверы и указывать сервисы, которые не нужно включать по умолчанию:
--ntp-servers - укажите корпоративные или 0.ru.pool.ntp.org, 1.ru.pool.ntp.org
--disabled-system-services - укажите, какие сервисы не нужно включать по умолчанию
Рекомендуем использовать внешний балансировщик для кластера управления в промышленной (продуктивной) среде.
Как изменить пароль администратора
При завершении установки система предоставит временный пароль администратора для первого входа в систему и настройки интеграции с внешней системой аутентификации.
Чтобы сменить пароль администратора по умолчанию, перейдите в установленный системный сервис “Модуль программного управления платформой Штурвал” (shturval-backend) кластера управления (платформы). В спецификации системного сервиса найдите параметр: static_password и обновите его значение.