Открытый контур

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

При отсутствии stc скачайте бинарный файл необходимой версии из сети Интернет:

Для запуска инсталляции используется команда ./stc install

Команда может использоваться для инсталляции:

  • кластера управления (management);
  • клиентского кластера (cluster);
  • добавления узлов в существующий кластер (node).

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

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

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

Параметр Описание
-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)
--ca-cert Путь до промежуточного сертификата (“pem” файла), который может быть использован в дальнейшем для подписания других сертификатов
--ca-key Путь до закрытого ключа промежуточного сертификата CA
--ingress-cert “Путь до корпоративного сертификата(“pem” файла), который был выпущен CA(в этом случае в файле будет цепочка сертификатов) или самоподписан для доменного имени Ingress
--ingress-key Путь до закрытого ключа корпоративного сертификата Ingress

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

Генерация ключевой пары

Для пользователя, под которым платформа будет устанавливаться (—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] \
--ca-cert=./cert.pem  --ca-key=./key.pem

Пример:

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

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

Установка отдельностоящего клиентского кластера

./stc install cluster --cluster-name="mycluster" --api-endpoint=10.111.122.3 --license="qwe123asd" --enabled-system-services=shturval-backup, shturval-cd, shturval-cert-expiration, shturval-dashboards, shturval-descheduler, shturval-ingress-controller, shturval-log-operator, shturval-metrics, shturval-rollouts, shturval-scanner --ha-type=single --ingress=apps.corporate.domain --interactive --monitoring-endpoint=12.133.144.15

Добавление Worker-узла

./stc install node --ssh-private-key=~/.ssh/id_rsa --ssh-user=root --worker-nodes=10.0.0.3,10.0.0.4 --workdir=./.my-cluster`

Полезная информация

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

  • Чтобы использовать системный 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 и распределить трафик на Worker-узлы.

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

Название чарта Название в графическом интерфейсе
shturval-descheduler Модуль распределения нагрузки узлов
shturval-log-operator Модуль локального сбора логов
shturval-logs-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 Модуль обновления кластера

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

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

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

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

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

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

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

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

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

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