Установка

Вводная информация

Для установки Комплекса используется модуль первичной установки shturval installer (stc) и лицензия. Прежде чем начать установку, следует определить лицензию для использования: enterprise или community edition.

Установка в открытом контуре (т.е. из публичного репозитория shturval) доступна в любой версии лицензии. Установка в закрытом контуре доступна только в enterprise-лицензии. В закрытом контуре дополнительно требуется файл типа ".bundle" ‒ tar-архив, который содержит в себе все необходимое для установки Комплекса, и утилита shturval mirror (stm) для работы с зеркалом. Файл ".bundle" и утилита передаются заказчику вместе с enterprise-лицензией.

Прежде чем начать установку, рекомендуется обязательно ознакомиться с требованиями к Комплексу:

Возможно инсталлировать платформу с различного типа сертификатами (п. Настройка TLS): самоподписаными, корпоративными, промежуточными сертификатами или сертификатами ACME. В случае установки с самоподписанными сертификатами потребуется принять их в веб-интерфейсе.

Установка

Для установки Комплекса нужно осуществить следующие шаги:

  1. определить контур установки:
  1. подготовить хосты с одной из ОС, указанных в п. Архитектура:
  • 1 Master (6/8/80) для минимальной конфигурации (при необходимости после установки можно будет добавить хосты в провайдере shturvalv2 с именем создаваемого кластера управления);
  • 3 Master (4/16/100) и 3 Worker(8/32/300) для отказоустойчивой конфигурации;
  • еще один (2/4/150) для зеркала, если инсталляция в закрытом контуре.

Следует проверить, что:

  • SELinux отключен или находится в режиме permissive;
  • время между хостами и рабочей машиной синхронизировано;
  • с хостов удалены недоступные (например, родные) репозитории (потребуется только iptables и gnupg).
  1. создать на каждом хосте пользователя. Этот пользователь должен иметь возможность выполнять sudo без пароля;
  2. можно использовать внешний или внутренний балансировщик KubeAPI и/или Ingress:
  • если используется внешний балансировщик, то для каждого компонента нужен FQDN (п. Межсетевые экраны);
  • если не используется внешний балансировщик, то подготовить два непингуемых (свободных) IP-адреса. Они не должны быть настроены на каком-либо из хостов кластера, но должны быть в одной подсети с хостами Master-узлов;
  1. подготовить сертификаты для применения при установке или запустить установку без них, тогда будут установлены самоподписанные сертификаты;
  2. для запуска установки:
  • с машины на ОС Linux скачать stc для Linux и выполнить команду, чтобы сделать файл исполняемым:
chmod +x ./stc-2.10.0
  1. сгенерировать ключевую пару с помощью команды:
ssh-keygen -t ed25519 -f shturval
  1. скопировать ключевую пару на каждый хост будущего кластера с помощью команды:
ssh-copy-id -i shturval.pub ssh-user@IP-адрес-хоста

где вместо IP-адрес-хоста прописать IP-адрес хоста будущего кластера. Если хостов будет более одного, выполнить команду для каждого хоста.

  1. подготовить адреса ntp-серверов, с которыми должна происходить синхронизация времени хостов (использованные на шаге 2).
  2. для установки на своей рабочей станции с ОС Linux или Windows (в зависимости от того, какой stc был скачан) запустить команду, в которую необходимо подставить свои значения параметров

Все доступные параметры инсталлятора stc-2.10.0 приведены в таблице 12.

Примеры команд для установки

Для установки в закрытом контуре добавить в нужную команду параметр "--registry=corp.domain.local:443", где вместо corp.domain.local ввести адрес вашего registry.

Для установки с цепочкой сертификатов (ваш промежуточный сертификат (п. Промежуточные сертификаты) → сертификат корпоративного центра сертификации (п. Корпоративные сертификаты)) в конец нужной команды добавить ключи --ca-cert=ввести-ПУТЬ-ДО-ПРОМЕЖУТОЧНОГО-СЕРТИФИКАТА(pem-файла) и —ca-key=ввести-ПУТЬ-ДО-ЗАКРЫТОГО-КЛЮЧА-ПРОМЕЖУТОЧНОГО-СЕРТИФИКАТА.

Для установки с корпоративными сертификатами в конец нужной команды добавить ключи --ingress-cert=ввести-ПУТЬ-ДО-КОРПОРАТИВНОГО-СЕРТИФИКАТА(pem-файла) и —ingress-key=ввести-ПУТЬ-ДО-ЗАКРЫТОГО-КЛЮЧА-ПРОМЕЖУТОЧНОГО-СЕРТИФИКАТА.

Для установки с ACME-сертификатами в конец нужной команды добавить ключи --acme-root-cert=ввести-ПУТЬ-ДО-КОРНЕВОГО-СA-ДЛЯ-ACME и —acme-url=ввести-АДРЕС-ACME-СЕРВЕРА-С-ПОРТОМ-И-ПУТЕМ-К-РЕСУРСУ.

Примеры команд для установки на одном Master-узле (minimal)

  • Команда для запуска установки на одном Master-узле с VIP для API-сервера и Ingress, самоподписаными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА  \
--api-endpoint=ввести-IP-ДЛЯ-API-СЕРВЕРА \
--master-nodes=ввести-IP-ХОСТА \
--timezone=Europe/Moscow \
--ingress-vip=ввести-IP-АДРЕС-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
--minimal=true
  • Команда для запуска установки на одном Master-узле с внешним балансировщиком для API-сервера и VIP для Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА  \
--use-external-kubeapi-lb=true  \
--api-endpoint=ввести-ВАШ-FQDN \
--timezone=Europe/Moscow \
--master-nodes=ввести-IP-ХОСТА \
--ingress-vip=ввести-IP-АДРЕС-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
--minimal=true
  • Команда для запуска установки на одном Master-узле с VIP для API-сервера и внешним балансировщиком для Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
--api-endpoint=ввести-IP-ДЛЯ-API-СЕРВЕРА \
--timezone=Europe/Moscow \
--use-external-ingress-lb=true \
--master-nodes=ввести-IP-ХОСТА \
--ingress=--ingress=ввести-FQDN-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
--minimal=true
  • Команда для запуска установки на одном Master-узле с внешним балансировщиком для API-сервера и Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
-license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
-cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
-ssh-user=shturval \
-ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
-use-external-kubeapi-lb=true \
-api-endpoint=ввести-FQDN-API-СЕРВЕРА \
--timezone=Europe/Moscow \
--use-external-ingress-lb=true \
--master-nodes=ввести-IP-ХОСТА \
--ingress=ввести-FQDN-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
--minimal=true

Примеры команд для установки в отказоустойчивой конфигурации (3 Master + 3 Worker):

  • Команда для запуска установки на трех Master-узлах и трех Worker-узлах с VIP для API-сервера и Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
--api-endpoint=ввести-IP-ДЛЯ-API-СЕРВЕРА \
--master-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--worker-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--timezone=Europe/Moscow \
--ingress-vip=ввести-IP-АДРЕС-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
  • Команда для запуска установки на трех Master-узлах и трех Worker-узлах с внешним балансировщиком для API-сервера и VIP для Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
--use-external-kubeapi-lb=true \
--api-endpoint=ввести-FQDN-API-СЕРВЕРА \
--timezone=Europe/Moscow \
--master-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--worker-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--ingress-vip=ввести-IP-АДРЕС-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
  • Команда для запуска установки на трех Master-узлах и трех Worker-узлах с VIP для API-сервера и внешним балансировщиком для Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
--api-endpoint=ввести-IP-ДЛЯ-API-СЕРВЕРА \
--timezone=Europe/Moscow \
--use-external-ingress-lb=true \
--master-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--worker-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--ingress=ввести-FQDN-ДЛЯ-INGRESS \
--skip-check \
-ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
  • Команда для запуска установки на трех Master-узлах и трех Worker-узлах с внешним балансировщиком для API-сервера и Ingress, самоподписанными сертификатами в открытом контуре:
./stc-2.10.0 install management \
--license="ввести-ВАШУ-ЛИЦЕНЗИЮ" \
--cluster-name=ввести-НАЗВАНИЕ-КЛАСТЕРА \
--ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
--ssh-private-key=ввести-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
--use-external-kubeapi-lb=true \
--api-endpoint=ввести-FQDN-API-СЕРВЕРА \
--timezone=Europe/Moscow \
--use-external-ingress-lb=true \
--master-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--worker-nodes=ввести-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
--ingress=ввести-FQDN-ДЛЯ-INGRESS \
--skip-check \
--ntp-servers=ввести-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \

После завершения установки

После установки будут получены:

  • логин и пароль администратора Комплекса;
  • kubeconfig администратора Комплекса;
  • ссылка для перехода в графический интерфейс Комплекса.

Важно ‒ Следует сохранить логин, пароль и kubeconfig. Они являются статическими и пригодятся для дальнейшей эксплуатации.

Управление хостами, доступными для присоединения в кластер управления, происходит с помощью экземпляра провайдера shturvalv2 (п. Shturvalv2) с именем кластера управления. Чтобы открыть интерфейс кластера управления в веб-интерфейсе Комплекса, нужно перейти в раздел "Кластер" на вкладку "Кластер управления". Управление ресурсами кластера управления, в т.ч. количеством узлов в группе происходит из интерфейса кластера управления (рисунок 1).

Рисунок 1 ‒ Кластер управления

Следует обратить внимание, что экземпляр провайдера, с которым инсталлирован кластер управления, не должен использоваться при создании клиентских кластеров. Подробнее о создании провайдеров в Комплексе см. п. О провайдерах.

Управление ресурсами Комплекса проводится в разделе "Платформа" (п. Начальная страница веб-интерфейса). Информация о лимитах лицензии, Swagger находятся в разделе "О системе" (п. О системе).

Установка с самоподписанным сертификатом

Если используется самоподписанный сертификат при установке, после завершения установки и перехода в графический интерфейс Комплекса в веб-браузере потребуется принять сертификаты:

  • https://front.<shturval_cluster_name>.<base_domain>;
  • https://back.<shturval_cluster_name>.<base_domain>;
  • https://auth.<shturval_cluster_name>.<base_domain>.

где:

  • <shturval_cluster_name> ‒ IP-адрес или Ingress кластера управления;
  • <base_domain> ‒ доменная зона или shturval.link (если своя доменную зону не была настроена).

Чтобы заменить самоподписанные на цепочку сертификатов или ACME после завершения установки, следует воспользоваться Инструкцией "Как добавить в кластер промежуточный и ACME сертификаты".

Изменение пароля администратора

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

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