Условно-закрытый контур
На этой странице
Условно-закрытый контур - интернет только на зеркале. Для инсталляции необходим дистрибутив и лицензия платформы Штурвал.
Скачайте и установите локальное зеркало репозиториев и реестра образов. Подробнее о подготовке зеркала .
Обновление локального репозитория
Запустите на выполнение следующую команду:
./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
Обновление зеркала
Распакуйте архив с новым зеркалом на тот же хост, на котором запущено текущее зеркало. Скопируйте каталог certs с текущего зеркала в каталог с новым. Завершите контейнер с зеркалом:
docker stop sht_offline_installer
docker rm sht_offline_installer
Запустить новое зеркало:
./run_repos.sh
Если необходимо - произведите загрузку образов в свой registry с помощью скрипта make_external.sh
Установка кластера управления
Запустите команду для скачивания бинарного файла:
wget URL -O stc
Где вместо URL подставьте соответствующую необходимой версии ссылку:
Параметры команды
Для вызова справки о команде используйте параметр:
Параметр | Описание |
---|---|
-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) |
При использовании корпоративного зеркала корневой сертификат зеркала должен быть прописан в доверенные на все ВМ и шаблоны.
Генерация ключевой пары
Для пользователя, под которым платформа будет устанавливаться (—ssh-user
) необходимо передать открытую часть ключа командой ssh-copy-id
на хосты будущей платформы
Сгенерировать ключ можно с помощью команды:
# генерируем ключевую пару
ssh-keygen -t ed25519 -f shturval
# копируем открытую часть на машину
ssh-copy-id -i shturval.pub ssh-user@IP
Интерактивный режим инсталляции
Запустите инсталляцию с помощью команды:
./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 и обновите его значение.