Установка платформы
Установка может быть произведена в открытом, условно-закрытом или закрытом контуре.
Перед началом установки рекомендуем ознакомиться с информацией для подготовки к инсталляции .
- Открытый контур, если инсталляция происходит с доступом в сеть Интернет, т.е. доступ к центральным репозиториям (r.shturval.tech и public.shturval.tech) есть со всех узлов.
- Условно-закрытый контур, если инсталляция происходит с доступом в сеть Интернет есть только у зеркала, т.е. доступ к центральным репозиториям (r.shturval.tech и public.shturval.tech) есть у зеркала, все остальные узлы используют зеркало.
- Закрытый контур, если инсталляция происходит без доступа в сеть Интернет, например, с флешки.
Установите бинарный файл из сети Интернет или флешки.
Скачать бинарный файл из сети Интернет можно по ссылкам:
Для вызова перечня доступных команд вызовите команду help: ./stc -h
Установка в открытом контуре
Для запуска инсталляциии используется команда ./stc install
Команда может использоваться для инсталляции:
- кластера управления (management);
- клиентского кластера (cluster);
- добавления узлов в существующий кластер (node).
Глобальные параметры команды:
Параметр | Описание |
---|---|
--debug |
Признак вывода в лог всей информации об ошибках. (по умолчанию false) |
--dry-run |
Признак того, что нужна только проверка конфигурации. Реальные изменения не вносятся (по умолчанию false) |
-h, --help |
Справка о команде |
--master-nodes [strings] |
Адреса Master-узлов |
--quiet |
Признак выключения stdout. Только код выхода |
--ssh-private-key [string] |
Путь к файлу приватного ключа SSH |
--ssh-user [string] |
Имя пользователя для подключения по SSH |
--workdir [string] |
Рабочая директория кластера для файлов конфигурации, логов и пр. |
--worker-nodes [strings] |
Адреса Worker-узлов |
Для первичной инсталляции платформы Штурвал используется команда ./stc install management
Для запуска инсталляции необходимо выбрать, в каком режиме должна быть произведена инсталляция: интерактивном, тихом или смешанном.
Следующие шаги инсталляции описаны в режимах инсталляции.
Установка в условно-закрытом контуре
Скачайте и установите локальное зеркало репозиториев и реестра образов.
Запустите на выполнение следующую команду:
./stc install management [options] --registry [registry_name]:[registry_port]
Значение registry_name должно совпадать с именем, для которого были сгенерированы сертификаты.
Доступные для настройки параметры [options]:
Параметр | Описание |
---|---|
--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 |
--use-external-ingress-lb |
Использовать внешний балансировщик для Ingress контроллера (по умолчанию false) |
--use-external-kubeapi-lb |
Использовать внешний балансировщик кластерного IP (по умолчанию false) |
Обновление локального репозитория
Запустите на выполнение следующую команду:
./update_repos.sh [options]
Параметры этой команды [options]:
Параметр | Описание |
---|---|
--license |
Лицензионный ключ (обязательный) |
--versions |
Список доступных версий в r.shturval.tech |
--version |
Обновление репозитория на определенную версию. Значение по умолчанию --latest |
Зеркалирование репозитория
Скрипт make_external.sh позволяет загрузить образы во внешний docker registry (например в Nexus).
Скрипт может загрузить образы указанной версии из r.shturval.tech или загрузить все образы из локального зеркала.
Требование к registry:
- Должен быть доступен напрямую или через reverse proxy (nginx). В случае с Nexus - необходимо создать коннектор на выделенном порту.
- Для загрузки образов необходима учетная запись с правами PUSH.
- Для использования внешнего registry в качестве источника установки, необходим анонимный доступ на pull.
Параметры скрипта:
Параметры команды [options]:
Параметр | Описание |
---|---|
--license |
Лицензионный ключ (обязательно, если не указана опция --from_local , игнорируется, если опция указана) |
--versions |
Список доступных версий в r.shturval.tech |
--registry_addr |
Адрес целевого registry (обязательный) |
--registry_port |
Порт внешнего registry (443 по умолчанию) |
--registry_username |
Имя пользователя для доступа в целевой registry (обязательный) |
--registry_password |
Пароль пользователя для доступа в целевой registry (обязательный) |
--registry_proto |
Протокол внешнего registry (https по умолчанию) |
--from_local |
Откуда загружать образы во внешний registry, где true - образы будут загружены из локального зеркала (будут загружены все образы, имеющиеся в локальном registry, опция --version будет проигнорирована). Если опция не указана (или любое другое значение), образы будут загружены из r.shturval.tech |
--version |
Версия образов для загрузки (обязательно, если не указана опция --from_local , игнорируется, если опция указана) |
Примеры использования
Загрузка версии из r.shturval.tech
./make_external.sh --license XXXXXXXX --version X.Y.Z --registry_addr registry.domain.org --registry_port 8082 --registry_proto http --registry_username pushuser --registry_password password
Загрузка пакетов из локального зеркала
./make_external.sh --registry_addr registry.domain.org --registry_port 8082 --registry_proto http --registry_username pushuser --registry_password password --from_local true
Запуск локального зеркала с внешним registry
Для работы с локальным registry зеркало нужно запустить с ключом --registry_addr
(порт и протокол указывать обязательно)
./run_repos.sh --registry_addr http://registry.domain.org:8082
Развернуть программное обеспечение модуля управления можно в одном из трех режимов.
Для развертывания используйте команду: ./stc install management
Обновление зеркала
Распакуйте архив с новым зеркалом на тот же хост, на котором запущено текущее зеркало. Скопируйте каталог certs с текущего зеркала в каталог с новым. Завершите контейнер с зеркалом:
docker stop sht_offline_installer
docker rm sht_offline_installer
Запустить новое зеркало:
./run_repos.sh
Если необходимо - произведите загрузку образов в свой registry с помощью скрипта make_external.sh
Обновление с зеркала
Отредактируйте ssc shturval-update:
kubectl edit ssc shturval-update
Пропишите:
customvalues: |
shturval:
registry: mirror_addr:http_port
insecure: true
Если обновление происходит с версии 2.2.X:
Отредактируйте ssc shturval-update-controller-manager:
kubectl edit deploy -n shturval-update-system shturval-update-controller-manager
Добавьте новую или измените ранее созданную переменную SYSTEM_REGISTRY (в блоке, рядом с переменной WATCH_NAMESPACE)
- name: SYSTEM_REGISTRY
value: http://mirror_addr:http_port/repository/shturval_bin_public
Обновите систему, следуя общей инструкции.
Установка в закрытом контуре
Порядок подготовки архива дистрибутива платформы
Распакуйте загруженный или созданный архив на хосте, имеющим доступ в сеть Интернет.
Последовательно запустите на выполнение следующие скрипты:
-
./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
для запуска репозитория.
Если вы перезагрузили хост, выполните команду - ./docker run -d sht_offline_installer
По умолчанию репозиторий начинает работать с порта 443.
Его можно поменять с помощью параметра --port (./run_repos.sh --port 8443)
Развернуть программное обеспечение модуля управления можно в одном из трех режимов.
Для развертывания используйте команду:
./stc install management [options] --registry [registry_name]:[registry_port]
Значение registry_name должно совпадать с именем, для которого были сгенерированы сертификаты.
Подробнее о настройке DNS записей по ссылке.
При использовании корпоративного зеркала корневой сертификат зеркала должен быть прописан в доверенные на все ВМ и шаблоны.
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