Установка платформы

Установка может быть произведена в открытом, условно-закрытом или закрытом контуре.

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

  • Открытый контур, если инсталляция происходит с доступом в сеть Интернет, т.е. доступ к центральным репозиториям (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

Установка в закрытом контуре

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

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

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

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