Открытый контур
Открытый контур - на всех узлах есть интернет. Для инсталляции необходим дистрибутив и лицензия платформы Штурвал. Номер лицензии передает заказчику менеджер со стороны Штурвала.
Подготовка к инсталляции из сети Интернет
- Поднять 6 хостов (3 для Master и 3 для Worker узлов) с одинаковой ОС из списка поддерживаемых.
- системные требования для Master и Worker узлов;
- Для каждого хоста разрешить сетевой доступ к r.shturval.tech.
- Проверить синхронизацию времени на хостах и при необходимости выполнить настройки.
- На каждом хосте убедиться, что SElinux отключен. При необходимости внести изменения в файл /etc/selinux/config на каждом хосте и поочередно перезагрузить хосты.
- Отключить или удалить недоступные репозитории на хостах, например, родные репозитории дистрибутива.
- На каждом хосте настроить OpenSSH-сервер, отслеживающий входящие подключения на порте TCP 22.
- Создать на каждом хосте учетную запись, при этом имя сервисной учетной записи должно быть одинаковым для всех узлов кластера.
- Для каждой сервисной учетной записи настроить аутентификация с использованием публичного ключа, при этом ключ должен быть одинаковым на всех хостах. Каждая сервисная учетная запись должна иметь права на выполнение команды sudo без указания пароля.
- Создать для Linux пользователя домашний каталог в операционной системе (например, /home/shturval).
- Определить адрес для API сервера кластера управления:
- При использовании внутреннего балансировщика для API сервера кластера управления найти свободный (непингуемый) IP адрес в той же сети, что и подготовленные хосты.
- При использовании внешнего балансировщика, настроить внешний балансировщик.
- Определить адрес для Ingress:
- При использовании внутреннего балансировщика для Ingress найти второй свободный (непингуемый) IP адрес в той же сети, что и подготовленные хосты.
- При использовании внешнего балансировщика, настроить внешний балансировщик.
- приготовить FQDN и IP адрес, в который будет резолвиться FQDN. FQDN необходим для использования сертификата.
- Подготовить корпоративный сертификат или уточнить настройки вашего корпоративного ACME сервера (CA сертификат и URL до ACME сервера). Пропустить этот шаг для использования внутреннего самоподписного сертификата. (/platform/install/tls-settings/)
Начало инсталляции
При отсутствии stc скачайте бинарный файл необходимой версии из сети Интернет:
Обратите внимание! Запуск STC необходимо выполнять на рабочей машине (не на хосте кластера) с ОС Linux.
Для запуска инсталляции используется команда ./stc install
.
Пример для версии 2.8.1
./stc-2.8 install
Установка кластера управления
Параметры команды
Вызов справки
Параметр | Описание |
---|---|
-h, --help |
Справка о команде |
Пример
./stc install management --help
Параметры инсталляции
Параметр | Описание |
---|---|
--debug |
Выводить в лог всю информацию об ошибках (по умолчанию false) |
--dry-run |
Проверка конфигурации. Установка службы shturvald на узлы будущего кластера. (по умолчанию false) |
--quiet |
Выключить stdout. Только код выхода |
--ssh-private-key [string] |
Путь к файлу приватного ключа SSH |
--ssh-user [string] |
Имя пользователя для подключения по SSH |
--workdir [string] |
Рабочая директория кластера (для файлов конфигурации, логов и пр.) |
--skip-check |
Пропустить проверку хостов перед инсталляцией. Значение по умолчанию – false |
--master-nodes [string] |
Адреса Master-узлов |
--worker-nodes [string] |
Адреса Worker-узлов |
--api-endpoint [string] |
Адрес API управления кластером |
--cluster-name [string] |
Имя кластера |
--disabled-system-services [string] |
Список отключенных системных сервисов |
--enabled-system-services [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 |
--ca-cert |
Путь до промежуточного сертификата (“pem” файла), который может быть использован в дальнейшем для подписания других сертификатов |
--ca-key |
Путь до закрытого ключа промежуточного сертификата CA |
--acme-root-cert |
Путь до файла корневого сертификата CA для ACME |
--acme-url |
Адрес ACME сервера с портом и путем к ресурсу, например: https://acme.corp.lan:8443/directory |
--ingress-cert [string] |
Путь до корпоративного сертификата(“pem” файла), который был выпущен CA(в этом случае в файле будет цепочка сертификатов) или самоподписан для доменного имени Ingress |
--ingress-key [string] |
Путь до закрытого ключа корпоративного сертификата Ingress |
--pod-subnet [string] |
Подсеть для подов. Значение по умолчанию – 172.16.0.0/16 |
--service-subnet [string] |
Подсеть сервисов. Значение по умолчанию – 10.96.0.0/12 |
Обратите внимание! Диапазон подсетей может быть изменен в соответствии с вашими потребностями. Подсети подов и сервисов располагаются в общем overlay network кластера. Подсеть подов и сервисов разворачивается только внутри кластера и не пересекается с другими кластерами и вашей корпоративной сетью. Фактически, даже если подсеть подов/сервисов совпадает с вашей корпоративной, то доступа у подов к сервисам вне кластера не будет.
При использовании корпоративного зеркала корневой сертификат зеркала должен быть прописан в доверенные на все ВМ и шаблоны.
Генерация ключевой пары
Для пользователя, под которым платформа будет устанавливаться (—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-узлом
Введите название кластера: clustername
Введите адрес реестра образов и репозиториев пакетов: r.shturval.tech
Введите лицензию: ХХХХХХХ
Ведите имя пользователя для подключения по SSH: shturval
Введите путь к файлу приватного ключа SSH: ./путь к приватному ключу
Определите конфигурацию группы ControlPlane:
▸ single (1 master-узел)
ha (3 master-узла)
master-узел 1: ХХ.ХХ.ХХX.ХХX
worker-узел 1: ХХ.ХХ.ХХX.ХХX
Продолжить добавление узлов?:
Да
▸ Нет
Использовать внешний балансировщик для API-сервера?:
▸ Да, использовать внешний
Нет, использовать внутренний
Введите IP-адрес KubeAPI-сервера кластера управления:
Использовать внешний балансировщик для Ingress?:
Да, использовать внешний
▸ Нет, использовать внутренний
Применить стандартные настройки для подсетей, адреса реестра образов, NTP и часовой пояс?:
Да, использовать стандартные
▸ Нет, задать кастомные
Укажите подсеть подов: 172.16.0.0/16
Укажите подсеть сервисов: 10.96.0.0/12
Укажите NTP-сервера через запятую: 0.ru.pool.ntp.org,1.ru.pool.ntp.org
Введите часовой пояс: Europe/Moscow
Какой тип сертификата использовать в платформе?:
корпоративный
Wildcard
▸ ACME
самоподписной
Введите путь до файла корневого сертификата CA для ACME:
: ./hack/create-cluster/acme-ca.crt
Введите адрес ACME сервера с портом и путем к ресурсу:
: https://issuer.ip-xx-xx-xx-xx.shturval.link:9443//directory
Установить стандартный набор системных сервисов?:
Да, установить стандартный набор системных сервисов
▸ Нет, выбрать состав сервисов самостоятельно
Выберите сервисы для установки:
? Установить сервис shturval-descheduler:
▸ Да
Нет
# Когда выбрана установка сервисов
Сервис shturval-log-operator будет установлен
Сервис shturval-logs-operator будет установлен
# Если не выбирать установку сервисов
Сервис shturval-dashboards не будет установлен
Сервис shturval-metrics не будет установлен
Сервис shturval-backup не будет установлен
Сервис shturval-scanner не будет установлен
Сервис shturval-rollouts не будет установлен
Сервис shturval-policy-manager не будет установлен
Сервис shturval-cd будет не установлен
Сервис shturval-cert-expiration не будет установлен
Сервис shturval-monitoring-alertmanager будет установлен
Сервис shturval-monitoring-agent будет установлен
Сервис shturval-capbd будет установлен
Сервис shturval-capos будет установлен
Сервис shturval-nfs-csi будет установлен
Сервис shturval-ceph-cephfs будет установлен
Сервис shturval-ceph-rbd будет установлен
Сервис shturval-coreha будет установлен
Сервис shturval-metacni будет установлен
Сервис shturval-metacni-ipam будет установлен
Сервис shturval-sriov будет установлен
Сервис shturval-trust-manager будет установлен
Укажите адрес мониторинга для отправки системных метрик: example.link
Установить рекомендуемую Audit Policy и secret encryption?:
▸ Да
Нет
В процессе инсталляции будет отображаться следующая информация
Выполняется установка модуля управления конфигурацией узлов
Имя кластера: clustername
Адрес Kubernetes API: ХХ.ХХ.ХХX.ХХX:6443
Ingress: apps.ip-xx-xx-xx-xx.shturval.link
Ingress VIP: ХХ.ХХ.ХХX.ХХX
Ingress external LB: false
Kubernetes API external LB: false
Конфигурация Controlplane: Отдельный узел
Расширенные параметры информационной безопасности: выкл.
Используемый репозиторий: r.shturval.tech
Версия платформы Штурвал: 2.8.1
Узлы:
Информация об узлов кластера кластера управления
Роль Имя узла Адрес Операционная система
master redosmzq2 ХХ.ХХ.ХХX.ХХX redos
... ... ... ...
Настройка узлов
Инициализация первого узла кластера redosjbwq успешно
Добавление узлов в кластер
Выполняется попытка установить лейблы для worker-узлов кластера.
Лейблы для worker-узлов успешно установлены.
Установка CNI...
Может занять несколько минут.
CNI успешно установлен
Подготовка конфигурации для Ingress VIP успешно завершена.
Создаю ClusterIssuer ACME
Установка системных компонентов (base) кластера...
Может занять несколько минут.
Установка системных компонентов (mgmt) кластера...
Может занять несколько минут.
Осуществляю подпись сертификатов
Статус установки системных сервисов:
Модули и компоненты, устанавливаемые в кластер управления
Компонент создания ресурсов для модуля управления TLS-сертификатами развернут
... ...
Выполняется попытка установить Cluster API ресурсы
Выполняется попытка обновить machines
Кластер успешно развернут
Для подключения используйте ключ /путь_до_конфигурационного файла/clusteradmin.conf
Веб интерфейс Штурвала доступен по адресу https://front.apps.ip-XX-XX-XXX-XXX.shturval.link
Для подключения используйте логин admin и пароль XXXXXXXXXX
Если инсталляция завершилась с ошибками, информация о них отобразится в логе.
Тихий режим инсталляции
Команда для запуска инсталляции кластера управления в тихом режиме
./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
Полезная информация
Установка сервисов в процессе инсталляции
- Чтобы использовать системный 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-backup | Модуль резервного копирования и восстановления |
shturval-scanner | Модуль сканирования образов контейнеров |
shturval-rollouts | Модуль управления развертыванием прикладных сервисов |
shturval-policy-manager | Модуль анализа конфигураций приложений |
shturval-cd | Модуль непрерывной доставки приложений |
shturval-cert-expiration | Модуль проверки сертификатов API Kubernetes |
shturval-monitoring-alertmanager | Алертинг модуля сбора метрик системного мониторинга |
shturval-monitoring-agent | Модуль мониторинга. Компонент автоматизированного управления мониторингом созданных ресурсов |
shturval-capbd | Провайдер Basis Dynamix |
shturval-capos | Провайдер OpenStack |
shturval-nfs-csi | Модуль NFS оператора |
shturval-ceph-cephfs | Модуль Ceph CSI - Ceph File System |
shturval-ceph-rbd | Модуль Ceph CSI - Ceph Block Device |
shturval-capov-csi | Модуль oVirt CSI |
shturval-capvs-csi | Модуль VMWare vSphere CSI |
shturval-coreha | Модуль поиска узлов с запущенными hostport сервисами |
shturval-metacni | Модуль подключения несколько сетевых интерфейсов к модулям в Kubernetes |
shturval-metacni-ipam | Модуль назначения IP-адресов на интерфейсах, созданных Multus |
shturval-sriov | SR-IOV Operator |
shturval-trust-manager | Модуль доставки корневых сертификатов |
Перейти на страницу с описанием параметров для конфигурации сервисов.
Дополнительные рекомендации
Время должно быть синхронизировано не только между узлами, но и с тем узлом, с которого производите установку. Перейти на страницу с инструкцией по синхронизации времени.
Рекомендуем сразу после завершения установки настроить ротацию логов. Отсутствие ротации логов может привести к стремительному заполнению диска и замедлению работы системы.
Рекомендуем всегда прописывать ntp-серверы и указывать сервисы, которые не нужно включать по умолчанию
--ntp-servers - укажите корпоративные или 0.ru.pool.ntp.org, 1.ru.pool.ntp.org
--disabled-system-services - укажите, какие сервисы не нужно включать по умолчанию
Рекомендуем использовать внешний балансировщик для кластера управления в промышленной (продуктивной) среде.
Как изменить пароль администратора
При завершении установки система предоставит временный пароль администратора для первого входа в систему и настройки интеграции с внешней системой аутентификации.
Чтобы сменить пароль администратора по умолчанию, перейдите в установленный сервис “Модуль программного управления платформой Штурвал” (shturval-backend) кластера управления. В спецификации сервиса найдите параметр: static_password и обновите его значение.