С провайдером Shturval v2
Информация о процессе создания клиентского кластера здесь, кластера управления из графического интерфейса на странице Инсталляция с утилитой shtil.
Конфигурация провайдера (шаг только для кластера управления)
На экране можно создать конфигурацию провайдера shturval v2.
Скриншот

Основные данные
На экране доступны поля для определения основных настроек кластера. Заполнение данных доступно в базовом режиме и режиме расширенных настроек.
По умолчанию включен базовый режим. Для включения режима расширенных настроек переведите тумблер Показать расширенные настройки в активное состояние. При переходе из режима расширенных настроек в базовый режим, данные, внесенные в поля, которые будут скрыты, утрачиваются.
Основные данные для провайдера Shturval v2 в базовом режиме
Скриншот

- Шаблон провайдера. Выпадающий список. Если доступен только один шаблон, он будет выбран автоматически. Если к шаблону провайдера был привязан пул IP-адресов, то для этого шаблона будет отображена подсказка с количеством свободных IP-адресов в пуле. Вы можете выбрать свободные IP-адреса пула для адреса API-сервера кластера и VIP-адреса для Ingress.
- Адрес API-сервера кластера. В качестве адреса API управления кластером введите вручную IP-адрес или FQDN API или выберите свободный IP-адрес из выпадающего списка. Доступно копирование введенного значения.
- VIP-адрес для Ingress. Введите свободный IPv4-адрес вручную из внутренней подсети узлов кластера или выберите IP-адрес из выпадающего списка. Этот IP-адрес будет добавлен в сетевой интерфейс одного из Worker-узлов. По этому адресу будет доступен системный Ingress-контроллер. Доступно копирование введенного значения.
Для адреса API-сервера и VIP-адреса для Ingress список IP-адресов содержит только свободные IP-адреса пула выбранного шаблона провайдера. Если в пуле шаблона провайдера только один свободный IP-адрес, вы сможете указать его либо в качестве адреса API-сервера, либо в качестве VIP-адреса Ingress-контроллера. Когда выбранный вами шаблон провайдера не имеет привязанного пула или привязанный пул IP-адресов не содержит свободных IP-адресов, введите вручную IP-адреса.
Обратите внимание!
- Механизм резервирования для IP адресов отсутствует. Пул IP-адресов провайдера и предоставляет перечень IP-адресов, свободных на момент запроса. Возможны ситуации, когда IP-адрес был свободен на моменте конфигурации кластера, но к моменту инициализации создания кластера, IP-адрес был уже занят. В таком случае кластер не будет успешно развернут. Рекомендуем выделять различные подсети для каждого кластера управления, а также создавать пулы IP-адресов с непересекающимися подсетями под разные команды.
- В кластере FQDN формируются согласно одному из вариантов заданного Ingress:
- Если указана DNS-запись Ingress: *.<DNS-запись-Ingress>.
- Если задан VIP-адрес для Ingress: *.<CLUSTER_NAME>.ip-<VIP-адрес-Ingress>.shturval.link, где CLUSTER_NAME - заданное имя кластера.
Расширенные параметры информационной безопасности не устанавливаются. Внешний балансировщик не используется. Внешний механизм управления виртуальным IP кластера не используется. Параметры не отображаются в интерфейсе в базовом режиме. Для изменения значений параметров включите расширенные настройки.
Основные данные для провайдера Shturval v2 в режиме расширенных настроек
Скриншот

- Адрес API-сервера кластера. В качестве адреса API управления кластером введите IP-адрес или FQDN API. Доступно копирование введенного значения.
- VIP-адрес для Ingress. Введите свободный IPv4-адрес из внутренней подсети узлов кластера. Этот IP-адрес будет добавлен в сетевой интерфейс одного из Worker-узлов. По этому адресу будет доступен системный Ingress-контроллер. Доступно копирование введенного значения.
- Шаблон провайдера. Выпадающий список. Если доступен только один шаблон, он будет выбран автоматически.
- Использовать внешний балансировщик для Ingress. Если выбран внешний балансировщик, будет использован haproxy. Иначе балансировка внутри кластера не используется, весь управляющий трафик будет приходить на VIP.
- Использовать внешний балансировщик для API-сервера (по умолчанию не используется). Когда включен внешний балансировщик для API-сервера, укажите FQND для API-сервера в поле Адрес API-сервера кластера.
Обратите внимание! Внешний балансировщик для API-сервера должен быть корректно настроен обязательно до начала инсталляции кластера.
Скриншот использования внешнего балансировщика API-сервера

- Установить расширенные параметры информационной безопасности. Устанавливает Secret Encryption для ETCD и преднастроенную политику аудита (Audit Policy).
- Подсеть подов. Подсеть, из которой будут назначаться IPv4-адреса для Pods. Подсеть не должна пересекаться с сетью узлов и сервисов. Рекомендуемый диапазон: 172.16.0.1-172.16.255.254.
- Подсеть сервисов. Подсеть, из которой будут назначаться IPv4-адреса для сервисов с type: ClusterIP. Подсеть не маршрутизируется с сетью узлов и Pod и не должна с ней пересекаться. Рекомендуемый диапазон: 10.96.0.0/12 (по-другому kubeadm не поймет).
Прежде чем конфигурировать подсети, проверьте диапазоны на пересечение. Подробнее про выделение подсетей в кластере здесь.
Если вы решите использовать внешний балансировщик для Ingress, поле VIP-адрес для Ingress заменится на DNS-запись Ingress. Введите в него Wildcard FQDN.
Скриншот

Для адреса API-сервера и VIP-адреса для Ingress список IP-адресов содержит только свободные IP-адреса пула выбранного шаблона провайдера. Если в пуле шаблона провайдера только один свободный IP-адрес, вы сможете указать его либо в качестве адреса API-сервера, либо в качестве VIP-адреса Ingress-контроллера. Когда выбранный вами шаблон провайдера не имеет привязанного пула или привязанный пул IP-адресов не содержит свободных IP-адресов, введите вручную IP-адреса.
Обратите внимание!
- Механизм резервирования для IP адресов отсутствует. Пул IP-адресов провайдера и предоставляет перечень IP-адресов, свободных на момент запроса. Возможны ситуации, когда IP-адрес был свободен на моменте конфигурации кластера, но к моменту инициализации создания кластера, IP-адрес был уже занят. В таком случае кластер не будет успешно развернут. Рекомендуем выделять различные подсети для каждого кластера управления, а также создавать пулы IP-адресов с непересекающимися подсетями под разные команды.
- В кластере FQDN формируются согласно одному из вариантов заданного Ingress:
- Если указана DNS-запись Ingress: *.<DNS-запись-Ingress>.
- Если задан VIP-адрес для Ingress: *.<CLUSTER_NAME>.ip-<VIP-адрес-Ingress>.shturval.link, где CLUSTER_NAME - заданное имя кластера.
Конфигурация узлов
Конфигурация Control Plane узлов
- Количество Control Plane узлов (должно быть нечетное значение не больше 5) Конфигурация Control Plane узлов доступна в базовом режиме и режиме расширенных настроек.
По умолчанию включен базовый режим. Количество Control Plane узлов должно быть нечетное значение и не больше 5.
В блоке Потенциально доступные хосты отображены свободные для присоединения к кластеру хосты с ролью controlplane. Доступна информация о количестве хостов с ролью controlplane в выбранном экземпляре провайдера. Если нет доступных хостов, добавьте хосты с ролью controlplane в выбранном провайдере.
Скриншот

Для включения режима расширенных настроек переведите тумблер Показать расширенные настройки в активное состояние. В Селекторе хостов по умолчанию добавлен лейбл с ролью хостов controlplane. При необходимости вы можете добавить дополнительные лейблы, переопределить или удалить дефолтную роль, задать совпадающие выражения.
Скриншот

Обратите внимание! Лейблы, указанные в селекторе в качестве совпадающих в одной группе, должны быть указаны в совпадающих выражениях в качестве исключения в другие группы узлов по принципу:
- ключ = выбранный в другой группе ключ лейбла;
- оператор = NotIn;
- значение = выбранное в другой группе значение лейбла.
Worker-узлы
Скриншот

По умолчанию создается 2 группы Worker-узлов с тремя узлами в каждой группе:
- default;
- infra.
Они защищены от удаления при создании кластера. Если во время создания кластера Worker-узлы в этих группах не требуются, проставьте значение “0” в поле “Количество worker-узлов”. Будут созданы MachineDeployments, а в будущем при необходимости вы сможете легко добавить узлы в группы. Помимо дефолтной и инфраструктурной групп есть возможность добавить дополнительные группы Worker-узлов.
Группа инфраструктурных узлов будет предпочтительно использована для развертывания инфраструктурных сервисов кластера. В случае отсутствия свободных узлов в группе, сервисы будут разворачиваться на Worker-узлах других групп. Дефолтная группа Worker-узлов, а также любые дополнительные группы могут быть использованы для разворачивания пользовательских нагрузок.
Есть возможность скопировать настройки дефолтной группы в другие группы Worker-узлов. Для этого нажмите на иконку копирования в правой части строки группы узлов.
Параметры групп Worker-узлов
Редактировать параметры группы можно, нажав на название группы в таблице. При редактировании есть возможность:
- дублировать конфигурацию созданной группы Worker-узлов. Для этого нажмите Дублировать конфигурацию из группы и выберите из списка имя группы, параметры которой необходимо скопировать. Дублирование конфигурации из групп Worker-узлов default и infra недоступно.
- создать дубликат группы с настроенными параметрами. Нажмите на элемент копирования в левом верхнем углу модального окна, чтобы добавить группу с теми же параметрами. В дубликате необходимо заполнить имя новой группы.
Для конфигурации группы доступны параметры:
- Масштабирование узлов: Ручное/Автоматическое
- При выбранном ручном масштабировании узлов, определите количество Worker-узлов.
- При выбранном автоматическом масштабировании узлов, определите диапазон для автоматического масштабирования Worker-узлов (по умолчанию минимальное и максимальное количество не установлено). Минимально количество узлов может быть 2. В графическом интерфейсе ограничена возможность задать минимально реплик менее 2-х.
- В базовом режиме настроек - Роль хостов.
- По умолчанию группам Worker-узлов default и infra установлены соответствующие роли workers и infra. При необходимости вы можете изменить роли. Роль controlplane недоступна для выбора в группах Worker-узлов во избежание захвата хостов, предназначенных для группы Control Plane-узлов.
- В Потенциально доступные хосты отображаются доступные для присоединения к кластеру хосты провайдера с заданной ролью.
Обратите внимание!
- Роль обязательно должна быть заполнена. Для кастомной настройки выбора потенциальных хостов вы можете перейти в режим расширенных настроек.
- Информационные подсказки помогут убедиться, что в выбранном провайдере достаточно хостов с заданной ролью в каждой группе Worker-узлов:
- Если хостов в провайдере меньше, чем общее количество запрошенных узлов во всех группам Worker-узлов.
- Если потенциально доступных хостов меньше, чем запланировано к добавлению узлов в группе. Добавьте хосты с соответствующими параметрами в провайдер.
- Если на момент инициализации кластера не будет достаточно хостов, то кластер будет создан без них. Добавьте хосты в провайдер, чтобы они могли быть присоединены к кластеру.
- Если выбраны одинаковые роли для нескольких групп, убедитесь в достаточности доступных хостов в провайдере с выбранной ролью.
Скриншот

- В режиме расширенных настроек - Селектор хостов. Чтобы включить расширенные настройки, переведите тумблер Показать расширенные настройки в активное состояние. В режиме расширенных настроек в Селекторе хостов по умолчанию добавлен лейбл с дефолтной ролью хостов (default или infra). При необходимости вы можете добавить дополнительные лейблы, переопределить или удалить дефолтную роль, задать совпадающие выражения. Если селектор не будет заполнен, хосты будут выбраны автоматически.
Скриншот

Обратите внимание! Лейблы, указанные в селекторе в качестве совпадающих в одной группе, должны быть указаны в совпадающих выражениях в качестве исключения в другие группы узлов по принципу:
- ключ = выбранный в другой группе ключ лейбла;
- оператор = NotIn;
- значение = выбранное в другой группе значение лейбла.
Если в поле Количество Worker-узлов проставить значение 0, Worker-узлы не будут созданы.
Обратите внимание! Если по каким-либо причинам хост не смог присоединиться к кластеру (не хватило хостов в принципе, не хватило хостов с выбранными лейблами, другие ошибки):
- перейдите на страницу провайдера;
- добавьте новые хосты или изменить существующие;
- уточнить, какие лейблы были назначены хостам (если вы назначали лейблы хостов для узлов при создании кластера) можно на странице “Управление узлами”/Узел/Лейблы и аннотации/Cluster API.
Новые хосты будут применены в создаваемом кластере.
Установка сертификатов
Вы можете создать кластер с сертификатом:
Скриншот

- Самоподписным (не требует дополнительной конфигурации).
- Промежуточным. Загрузите цепочку сертификатов в формате PEM (промежуточный сертификат) и закрытый ключ промежуточного сертификата центра сертификации CA. Вы можете задать сертификат и ключ, загрузив файлы или указав данные в текстовом формате;
- ACME (Automatic Certificate Management Environment). Загрузите файл корневого сертификата CA для ACME и укажите адрес ACME сервера с портом и путем к ресурсу. Вы можете загрузить файл сертификата или указать сертификат в текстовом формате;
- Корпоративным. Загрузите корпоративный сертификат в формате PEM и закрытый ключ корпоративного сертификата Ingress. Вы можете задать сертификат и ключ, загрузив файлы или указав данные в текстовом формате. Сертификат должен быть выпущен центром сертификации (Certificate Authority, CA) (в этом случае в файле будет цепочка сертификатов) или самоподписан для доменного имени Ingress.
- Let’s Encrypt. Укажите Email, который связан с учетной записью Let’s Encrypt. Корневой сертификат СА для Let’s Encrypt загружается автоматически, адрес Let’s Encrypt сервера задан по умолчанию - https://acme-v02.api.letsencrypt.org/directory.
Обратите внимание! Если в кластере установлен сертификат ACME, необходимо мониторить работу ACME-сервера. В случае сбоя на сервере, кластеры с сертификатами ACME будут недоступны.
Скриншот создания кластера с самоподписным сертификатом

Скриншот создания кластера с промежуточным сертификатом

Скриншот создания кластера с ACME

Скриншот создания кластера с корпоративным сертификатом

Скриншот создания кластера с Let’s Encrypt

После успешной инсталляции кластера установленные сертификаты будут доступны в разделе Администрирование на странице ClusterIssuers созданного кластера.
Выбор сервисов
Этот шаг является общим для всех провайдеров.
На шаге доступен выбор сервисов для автоматического включения сервисов в кластере в базовом режиме или режиме расширенных настроек. При создании кластера автоматически устанавливаются критически важные для работы кластера сервисы, они недоступны для отключения ни в одном из режимов. При переключении между режимами установленный выбор отменяется.
По умолчанию включен базовый режим, где вы можете выбрать для автоматического включения сервисы, сгруппированные по функционалу:
- Резервного копирования и восстановления
- Логирования
- Доставки приложений
- Мониторинга
- Балансировки нагрузки
- Инструментов ИБ
Скриншот

При необходимости самостоятельного выбора сервисов для включения в кластере перейдите в режим расширенных настроек. Для этого переведите тумблер Показать расширенные настройки в активное состояние и выберите сервисы для включения. Список сервисов выводится согласно алфавитному порядку.
Скриншот

Обратите внимание! При выборе сервиса, зависимые сервисы будут выбраны автоматически. Это необходимо для корректной работы основного сервиса.
Выбранные для включения сервисы устанавливаются с версией latest, режимом автоматического управления и названием экземпляра сервиса равным названию сервиса. Для каждой версии платформы “Штурвал” состав сервисов и их версии будут отличаться.
После успешной установки кластера включенные сервисы доступны в разделе Сервисы и репозитории на странице Установленные сервисы. В процессе инсталляции кластера выполняется необходимое конфигурирование сервисов для работы в кластере. Поэтому сервисы, которые не были выбраны для автоматического включения, устанавливаются отключенным в кластере и доступны в разделе Сервисы и репозитории на странице Установленные сервисы. Это позволяет избежать ручной конфигурации сервисов в раскатанном кластере при необходимости их последующего включения.
Проверка данных
Экран представляет собой страницу, содержащую всю информацию, заполненную вами на предыдущих шагах. Информация отображается в режиме чтения. При необходимости изменить выбранные параметры вы можете вернуться на нужный шаг, нажав на название шага в левой части экрана или на кнопку Назад.
Для создания кластера нажмите на кнопку Создать кластер.
Статус создания
После инициализации создания клиентского кластера, инсталляции кластера управления доступен графический дашборд статуса развертывания кластера. Этот процесс является общим для всех провайдеров. Информация о статусной модели развертывания кластера находится здесь.