Статус развертывания кластера

Блок статуса на дашборде кластера до завершения развертывания.

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

Шаги под капотом

После запуска создания клиентского кластера или инсталляции кластера управления ход работ отображается на в блоке «Статус развертывания кластера». Данные обновляются автоматически.

Блок доступен до завершения развертывания. В верхней части показаны этапы, а ниже — блок «Состояние» с деталями выбранного этапа. Этапы не обязательно выполняются строго последовательно: часть проверок и операций может идти параллельно.

Скриншоты: изменение статуса развертывания кластера

Шаги развертывания кластера, см. иллюстрацию ниже.

Статусы развертывания кластера

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

Статусы развертывания кластера

Пример этапа в процессе прохождения, см. иллюстрацию ниже.

Статусы развертывания кластера

ЭтапЧто отображается на дашборде
Ресурсы созданыНачальный этап подготовки ресурсов кластера
Инфраструктура кластера готоваГотовность инфраструктурных ресурсов кластера
Control Plane узлы инициализированыСписок Control Plane узлов и их состояния
Worker узлы созданыСписок Worker-узлов по группам и их состояния
Системные сервисы установленыСписок сервисов репозитория Shturval и статус их установки
Кластер готовИтоговое состояние развертывания

Цветовая индикация этапов

Цветовая индикация этапов показывает текущее состояние:

Состояние этапаИндикация
Этап успешно завершенЗеленый цвет
Этап выполняетсяЖелтый цвет
Этап еще не запущенСерый цвет
Этап завершился с ошибкойКрасный цвет

Шаги развертывания

Ресурсы созданы

На этом этапе создается неймспейс клиентского кластера в кластере управления и объект ClusterInfo.

Инфраструктура кластера готова

На этом этапе Cluster Manager ожидает появления condition InfrastructureReady:true у контроллера Cluster API. Это означает, что контроллер успешно связался с провайдером инфраструктуры.

Control Plane узлы инициализированы

На этапе «Инициализация Control Plane узлов» отображается таблица Control Plane узлов.

КолонкаОписание
ИмяИмя узла. По колонке доступна фильтрация.
IP-адресIP-адрес узла, если он уже получен.
Состояние Cluster API MachineConditions ресурса Cluster API Machine.
Состояние узлаConditions Kubernetes узла. При нажатии открывается дополнительная информация.
СтатусСтатус узла

Отображается количество поднятых Control Plane узлов и общее количество.

Объекты Cluster API Machine находятся в кластере управления; объект Node появляется в целевом кластере после успешного поднятия bootstrap машины и регистрации kubelet.

Worker узлы созданы

На этапе «Создание Worker-узлов в группах» отображаются Worker-узлы по группам узлов.

КолонкаОписание
ИмяИмя узла. По колонке доступна фильтрация.
IP-адресIP-адрес узла, если он уже получен.
Состояние Cluster API MachineConditions ресурса Cluster API Machine.
Состояние узлаConditions Kubernetes узла. При нажатии открывается дополнительная информация.
СтатусСтатус узла

Отображается количество поднятых и общее количество Worker узлов.

NCI применены

На этапе «Применение NCI на узлы» (в таблице этапов — NCI применены) отображается список дефолтных конфигураций узла (NodeConfigItem, NCI) для применения оператором shturval-node-config.

КолонкаОписание
ИмяИмя объекта NCI (например, controlplane-init-config, controlplane-oidc-nci, generic-init-config).
Настроенные разделыПеречень настроенных разделов конфигурации внутри NCI: Files, Users, KubeAPIServer, Packages, RuntimeCfg, Sysctl, SystemdUnits и другие разделы конфигурации.
Селектор узловЛейблы, по которым выбираются узлы для применения конфигурации.
Применено на узлахОтношение числа узлов, на которых конфигурация уже применена, к числу запланированных для применения, в формате успешно/всего (например, 1/1, 4/4).

После завершения развёртывания перечень NCI доступен в разделе Администрирование → Конфигурация узлов (см. Конфигурация узлов (NCI)).

Системные сервисы установлены

Два этапа установки

Cluster Manager выполняет установку объектов ShturvalServiceCofings и ShturvalServicePatches в соответствии с выбором сервисов и особенностями, предусмотренными в ClusterProfile.

Установка сервисов выполняется в два этапа:

  1. Критически важные сервисы устанавливаются первыми. Их нельзя отключить. Для кластера управления это, в частности: shturval-backend, shturval-frontend, shturval-auth, сетевые компоненты, shturval-local-csi и другие сервисы из группы «Критические сервисы».
  2. Выбранные на шаге «Выбор сервисов» — устанавливаются после критических.

Этап «Установка сервисов репозитория Shturval» считается завершённым только после установки критически важных и выбранных на шаге «Выбор сервисов».

Сервисы, не выбранные при создании

Некоторые CRD сервисов, которые не были выбраны для автоматического включения:

  • Устанавливаются в кластер в процессе развёртывания;
  • Остаются отключёнными;
  • Доступны в разделе Сервисы и репозитории → Установленные сервисы.

Так выполняется предварительная конфигурация. При последующем включении сервиса не потребуется ручная настройка — достаточно включить его в интерфейсе. После развертывания кластера можно устанавливать дополнительно сервисы. Подробнее в инструкции как развернуть новый сервис.

Параметры выбранных сервисов

Выбранные сервисы устанавливаются с:

  • Версия — latest (для данной версии платформы);
  • Режим — автоматическое управление (auto);
  • Имя экземпляра принимает русскоязычное имя экземпляра сервиса, заданное в аннотации чарта.

Состав, версии и группировка сервисов зависят от версии платформы «Штурвал». Актуальный перечень сервисов репозитория Shturval, их групп быстрой установки и ролей приведён на странице «Сервисы репозитория Shturval».

Если при установке или обновлении сервиса возникает ошибка, сообщение выводится в conditions этапа статуса развертывания.

После развертывания

На этапе «Установка сервисов репозитория Shturval» отображается список сервисов.

КолонкаОписание
Имя сервисаНазвание сервиса (например, shturval-auth, shturval-capi, shturval-capi-crds).
Имя чартаИмя Helm-чарта, которым разворачивается сервис.
НеймспейсНеймспейс, в котором установлен сервис (например, shturval-backend, capi-system).
СтатусСтатус установки сервиса в платформе.
СостояниеConditions установки сервиса. По нажатию открывается детальная информация по condition.
КритическийПоказывает, является ли сервис критически важным для работы платформы. Сервисы репозитория Shturval

Возможные значения в колонке «Статус»:

ЗначениеСмыслЗначение в данных
УстановленСервис установлен и работаетworking
Не запущенУстановка еще не запущенаnotstarted
Не установленСервис не установлен, возникла ошибка установкиundefined

Под капотом

Создание узлов

Между нажатием Создать кластер и переходом кластера в статус «Готов» платформа получает узлы кластера: инфраструктурная машина или хост, затем установка Kubernetes. Пошаговые поля мастера см. в детализации шагов мастера установки.

В платформе “Штурвал"есть две модели подготовки узлов:

Для провайдеров виртуализации и облаков платформа через соответствующий CAPI-провайдер запрашивает у среды создание инфраструктуры узла из указанного шаблона или образа (в терминах конкретного провайдера). Платформа не готовит шаблоны сама: подготовка ОС и утилитой stc, связь версии Kubernetes с шаблоном и добавление шаблона в экземпляр описаны на странице Подготовка шаблона провайдера.

При создании ВМ из шаблона платформа самостоятельно устанавливает Kubernetes выбранной версии. Шаблон ВМ хранит ОС и связанные ограничения по диску, но не хранит ресурсы CPU/RAM исходной ВМ, т.е. при создании ВМ из шаблона провайдер Cluster API запрашивает у провайдера инфраструктуры ресурсы в том объеме, который указывает администратор при инициализации кластера.

После развертывания кластера администратор также может переопределить параметры шаблонов узлов с помощью ресурса InfraMachineTemplate. Этот ресурс хранится в кластере управления и не создает шаблон (образ) на стороне виртуализации (или облака).

Для провайдера Shturval v2 узлы — это уже выделенные физические хосты или существующие ВМ с поддерживаемой ОС и SSH-доступом; клонирования шаблона нет. Платформа разворачивает Kubernetes напрямую на выбранных в экземпляре провайдера хостах. В этом случае InfraMachineTemplate этого провайдера - это связь группы узлов с хостами экземпляра провайдера с помощью лейблов.

Кастомные ресурсы

Объекты Cluster API (CAPI) и инфраструктурных провайдеров описывают желаемое и фактическое состояние кластера и узлов; эти кастомные ресурсы находятся в кластере управления. Объект Node (узел) появляется в целевом кластере после поднятия bootstrap машины и регистрации kubelet.

Просмотр в GUI: Кастомные ресурсы в платформе. Иерархия и роли основных типов — в таблицах ниже. Связи владельца/зависимого в терминах CAPI см. в документации Cluster API (owner references).

Шаблоны инфраструктурных машин по провайдерам: InfraMachineTemplate. Самовосстановление узлов: MachineHealthCheck.

Ядро CAPI в платформе: Провайдер Cluster API (shturval-capi). Инфраструктурные провайдеры: vSphere (shturval-capvs), oVirt (shturval-capov), OpenStack (shturval-capos), Shturval v2 (shturval-capsm), Basis Dynamix (shturval-capbd), Yandex Cloud (shturval-capy), vCloud Director (shturval-capvcd). Настройка экземпляров провайдеров в UI: Как устроена работа с провайдерами.

Диаграмма создания узла с помощью ресурсов Cluster API

Ниже перечислены группы API и Kind, используемые для жизненного цикла узлов.

cluster.x-k8s.io

Кастомный ресурсНазначениеРоль в жизненном цикле узлаГде подробнее
ClusterКорневой объект CAPI, представляющий клиентский Kubernetes-кластерХранит ссылки на инфраструктурный кластер, Control Plane и группы Worker-узловCluster API
ClusterClassШаблонная модель для описания однотипных кластеровНе используется в платформе “Штурвал”документация Cluster API
MachineПредставление одной машины/узла в модели CAPIСвязывает bootstrap-конфигурацию и инфраструктурную машину; после bootstrap получает связь с Kubernetes NodeCluster API
MachineDeploymentДекларативное управление группой Worker-узловЗадаёт желаемое число Worker-узлов и шаблоны для создания Machine, BootstrapConfig и InfraMachineCluster API
MachineDrainRuleПравила дренажа машин при обслуживании или удаленииВлияет на порядок эвакуации нагрузок с узла; детали зависят от версии CAPIдокументация Cluster API
MachineHealthCheckПолитика автоматического восстановления неработоспособных MachineОтслеживает состояние узлов и может инициировать замену MachineMachineHealthChecks
MachinePoolМодель группы машин как единого пулаНе используется в платформе “Штурвал”документация Cluster API
MachineSetНабор однотипных Machine по шаблонуСоздаётся MachineDeployment и поддерживает нужное количество Worker MachineCluster API

controlplane.cluster.x-k8s.io

Кастомный ресурсНазначениеРоль в жизненном цикле узлаГде подробнее
KubeadmControlPlaneОбъект управления Control Plane на базе kubeadmСоздаёт и сопровождает Machine для Control Plane узловCluster API
KubeadmControlPlaneTemplateШаблон KubeadmControlPlaneИспользуется для создания KubeadmControlPlane по шаблонудокументация Cluster API

bootstrap.cluster.x-k8s.io

Кастомный ресурсНазначениеРоль в жизненном цикле узлаГде подробнее
KubeadmConfigBootstrap-конфигурация для одной MachineГенерирует данные для kubeadm init / kubeadm join и секрет, который используется при подготовке узлаCluster API
KubeadmConfigTemplateШаблон bootstrap-конфигурацииИспользуется MachineDeployment и другими объектами для создания KubeadmConfig при появлении новых MachineCluster API

infrastructure.cluster.x-k8s.io

Ниже — инфраструктурные CR по поставляемым в платформе провайдерам. Детальная справка по oVirt и Shturval v2 приведена на страницах сервисов shturval-capov и shturval-capsm.

Basis Dynamix

Кастомный ресурсНазначениеРольГде подробнее
BasisProviderКонфигурация подключения/провайдера Basis DynamixИспользуется для работы с конкретной средой Basis Dynamixshturval-capbd
BasisClusterИнфраструктурный объект кластера в Basis DynamixСвязывает объект Cluster с инфраструктурным контекстом провайдераshturval-capbd
BasisMachineОдна ВМ/машина в Basis DynamixИнфраструктурная часть Machine; провайдер создаёт или сопровождает по ней ВМshturval-capbd, InfraMachineTemplate
BasisMachineTemplateШаблон параметров BasisMachineИспользуется CAPI для создания новых BasisMachine в группах узловInfraMachineTemplate

oVirt

Актуально в том числе для zVirt, oVirt, HostVM, РЕД Виртуализация, ROSA Virtualization

Кастомный ресурсНазначениеРольГде подробнее
OVirtProviderПараметры подключения к oVirt EngineДаёт доступ к API oVirt для создания и сопровождения ВМshturval-capov (справочник CRD)
OVirtClusterИнфраструктурный объект кластера в oVirtХранит endpoint control plane и связывает Cluster с инфраструктурой oVirtshturval-capov
OVirtMachineОдна ВМ в oVirtИнфраструктурная часть Machine; создаёт ВМ из шаблона и выставляет ProviderIDshturval-capov
OVirtMachineTemplateШаблон параметров OVirtMachineИспользуется MachineDeployment или KubeadmControlPlane для создания OVirtMachineInfraMachineTemplate

OpenStack

Актуально в том числе для VK Cloud, Selectel

Кастомный ресурсНазначениеРольГде подробнее
OpenStackClusterИнфраструктурный объект кластера в OpenStackСвязывает CAPI Cluster с проектом, сетью и endpoint в OpenStackshturval-capos
OpenStackClusterTemplateШаблон OpenStackClusterИспользуется при шаблонном создании инфраструктурного кластераshturval-capos
OpenStackMachineОдна ВМ в OpenStackИнфраструктурная часть Machine; провайдер создаёт и сопровождает инстансshturval-capos
OpenStackMachineTemplateШаблон параметров OpenStackMachineИспользуется CAPI для создания новых OpenStackMachine в группах узловInfraMachineTemplate
OpenStackFloatingIPPoolПул Floating IP в модели провайдера OpenStackМожет использоваться провайдером для управления внешними адресами; детали зависят от версии CAPOSshturval-capos
OpenStackServerОбъект сервера/инстанса OpenStack в модели провайдераОтражает инфраструктурную сущность провайдера; детали — в CRD конкретной версии CAPOSshturval-capos

Shturval v2

Кастомный ресурсНазначениеРольГде подробнее
ShturvalProviderГлобальная конфигурация SSH-хостов, версии, registry и учётных данныхСоздаёт и сопровождает ShturvalHost для адресов из конфигурации провайдераshturval-capsm
ShturvalHostОписание физического хоста или существующей ВМПроверяется и подготавливается по SSH, затем может быть привязан к ShturvalMachineshturval-capsm
ShturvalClusterИнфраструктурный объект кластера для Shturval v2Связывает CAPI Cluster с конфигурацией провайдера и endpoint кластераshturval-capsm
ShturvalMachineИнфраструктурная машина Shturval v2Выбирает подходящий ShturvalHost, выполняет bootstrap и выставляет ProviderIDshturval-capsm
ShturvalMachineTemplateШаблон параметров ShturvalMachineОписывает селектор хостов для группы узловInfraMachineTemplate
ShturvalManualClusterРесурс инфраструктурного провайдера Shturval v2Назначение зависит от версии CRD; используйте справку сервиса провайдераshturval-capsm
ShturvalManualMachineРесурс инфраструктурного провайдера Shturval v2Назначение зависит от версии CRD; используйте справку сервиса провайдераshturval-capsm

VMware vCloud Director

Кастомный ресурсНазначениеРольГде подробнее
VCDClusterИнфраструктурный объект кластера в vCloud DirectorСвязывает CAPI Cluster с контекстом vCDshturval-capvcd
VCDClusterTemplateШаблон VCDClusterИспользуется при шаблонном создании инфраструктурного кластераshturval-capvcd
VCDMachineОдна ВМ в vCloud DirectorИнфраструктурная часть Machine; провайдер создаёт и сопровождает ВМshturval-capvcd
VCDMachineTemplateШаблон параметров VCDMachineИспользуется CAPI для создания новых VCDMachine в группах узловInfraMachineTemplate

VMware vSphere

Кастомный ресурсНазначениеРольГде подробнее
VSphereClusterИнфраструктурный объект кластера в vSphereСвязывает CAPI Cluster с инфраструктурой VMware vSphereshturval-capvs
VSphereClusterIdentityУчётные данные или identity для доступа к VMware vSphereИспользуется провайдером для аутентификации в vCentershturval-capvs
VSphereClusterTemplateШаблон VSphereClusterИспользуется при шаблонном создании инфраструктурного кластераshturval-capvs
VSphereDeploymentZoneЗона размещения в модели CAPVSПомогает описать, где размещать машины; детали зависят от CRD провайдераshturval-capvs
VSphereFailureDomainДомен отказа в модели CAPVSИспользуется для распределения машин по отказоустойчивым доменам, если это настроеноshturval-capvs
VSphereMachineОдна ВМ в VMware vSphereИнфраструктурная часть Machine; провайдер создаёт и сопровождает ВМshturval-capvs
VSphereMachineTemplateШаблон параметров VSphereMachineИспользуется CAPI для создания новых VSphereMachine в группах узловInfraMachineTemplate
VSphereVMОбъект ВМ в модели CAPVSОтражает ВМ VMware vSphere на уровне провайдера; детали — в CRD конкретной версии CAPVshturval-capvs

Yandex Cloud

Кастомный ресурсНазначениеРольГде подробнее
YandexClusterИнфраструктурный объект кластера в Yandex CloudСвязывает CAPI Cluster с облачной инфраструктуройshturval-capy
YandexIdentityУчётные/идентификационные данные для Yandex CloudИспользуется провайдером для доступа к облакуshturval-capy
YandexMachineОдна ВМ в Yandex CloudИнфраструктурная часть Machine; провайдер создаёт и сопровождает ВМshturval-capy
YandexMachineTemplateШаблон параметров YandexMachineИспользуется CAPI для создания новых YandexMachine в группах узловInfraMachineTemplate

IPAM (CAPI)

Кастомный ресурсНазначениеРольГде подробнее
IPAddressОбъект отдельного IP-адреса в модели IPAM CAPIМожет использоваться CAPI/провайдерами для учёта выданных адресов; детали зависят от провайдера IPAMПровайдер Cluster API, документация Cluster API
IPPoolПул IP-адресов в модели IPAM CAPIИсточник адресов для объектов IPAddress, если соответствующий IPAM-провайдер используетсяПровайдер Cluster API

Встроенные ресурсы Kubernetes

API группаРесурсНазначениеРольГде подробнее
coreNodeВстроенный Kubernetes-объект зарегистрированного узлаПоявляется в целевом кластере после bootstrap; CAPI Machine получает ссылку на NodeCluster API (связь Machine ↔ Node)
node.k8s.ioRuntimeClassВстроенный Kubernetes-объект выбора container runtime handlerНе используется в платформе “Штурвал”документация Kubernetes

Ошибки развертывания

Если на этапе инсталляции или создания кластера возникает ошибка, соответствующий этап переходит в состояние с ошибкой (красная индикация). Детали — в conditions этапа. Типичные причины ошибок: