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

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

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

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

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

Дашборд доступен до завершения развертывания и показывает общий прогресс, а также состояние каждого этапа в динамике. Этапы не выполняются строго последовательно: часть проверок и операций может идти параллельно.

Пока кластер разворачивается, рядом с именем выводятся conditions, которые ещё не завершились успешно. Чтобы открыть полный список conditions и получить детальную информацию, нажмите «Показать подробнее».

В блоке развёртывания отображаются:

  • провайдер инфраструктуры разворачиваемого кластера;
  • версия платформы;
  • версия Kubernetes;
  • время последнего обновления данных — при инсталляции кластера управления;
  • общий прогресс развёртывания по результатам успешного завершения этапов.

При инсталляции кластера управления, как только Control Plane инициализирован и получен адрес API-сервера, кластер управления становится доступен по статическому kubeconfig. Скачать его можно по кнопке «Скачать Kubeconfig».

Состояния этапов и управление динамическим режимом

СостояниеОписание
ГотовоЭтап успешно завершён.
В процессеЭтап выполняется. Сведения обновляются каждые 5 сек.
ОжидаетПроцесс выполнения этапа еще не начался. Сведения по этапу отсутствуют.
Терминальная ошибкаЭтап завершился с ошибкой и инсталляция кластера дальше невозможна, см. подробнее причину и сообщение ошибки.

На дашборде доступно управление режимом отображения данных по этапам — переключатель «Отображать динамически сведения этапов»:

  • когда переключатель выключен (по умолчанию), отображаются только общий прогресс и статус этапа, а детальные сведения скрыты. Чтобы просмотреть подробную информацию, разверните нужный этап нажатием на его область;
  • когда переключатель включён, сведения по этапам в процессе прохождения и/или с терминальной ошибкой выводятся на экран. Данные актуализируются по мере обновления информации развертывания кластера. Обновление данных выполняется каждые 5 сек;
  • успешно завершенные этапы в обоих режимах объединяются в единый блок готовых этапов. Этап готовности кластера «Кластер готов» не включается в общий блок завершённых этапов;
  • ожидающие этапы в обоих режимах остаются на дашборде свёрнутыми.

При необходимости вывода полной информации всех этапов статуса развертывания кластера нажмите «Развернуть все», чтобы скрыть — «Свернуть все».

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

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

Создаются ресурсы, необходимые для развёртывания: неймспейс кластера в кластере управления и объект ClusterInfo.

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

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

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

На этом этапе отображается список узлов Control Plane: их адреса, статусы и conditions объектов Cluster API Machine, InfrastructureMachine и Node.

Сведения сгруппированы по узлам группы Control Plane. Каждый узел представлен отдельным блоком, в заголовке которого указаны:

  • имя;
  • IP-адрес;
  • hostname;
  • статус готовности.

Сведения по узлам, находящимся в процессе подготовки, отображаются в блоке этапа и обновляются по мере актуализации данных развертывания кластера. Изменения наглядно демонстрируют текущее состояние развертывания кластера.

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

Для каждого объекта Cluster API Machine, InfrastructureMachine и Node доступны сведения: имя, состояние и его статус, причина состояния, сообщение с подробностями состояния, время последнего изменения состояния.

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

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

На этом этапе отображается список Worker-узлов: их адреса, статусы и conditions объектов Cluster API Machine, InfrastructureMachine и Node.

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

  • имя;
  • IP-адрес;
  • hostname;
  • статус готовности.

Сведения по узлам, находящимся в процессе подготовки для кластера, отображаются в блоке этапа и обновляются по мере актуализации данных развертывания кластера. Изменения наглядно демонстрируют текущее состояние развертывания кластера.

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

Для каждого объекта Cluster API Machine, InfrastructureMachine и Node доступны сведения: имя, состояние и его статус, причина состояния, сообщение с подробностями состояния, время последнего изменения состояния.

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

NCI применены

Отображается применение оператором shturval-node-config дефолтных конфигураций NodeConfigItem (NCI) к каждому узлу кластера:

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

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

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

На этапе выводится список сервисов репозитория Shturval и ход их установки.

Cluster Manager создаёт объекты ShturvalServiceConfig и ShturvalServicePatch (SSP) в соответствии с выбранными сервисами и настройками ClusterProfile. Сначала устанавливаются критически важные сервисы, затем — сервисы, выбранные при создании кластера. Этап завершается после установки обеих групп.

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

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

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

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

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

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

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

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

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

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

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

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

В заголовке этапа отображается количество установленных критических сервисов в формате установлено/всего и выводят сведения:

КолонкаОписание
Имя сервисаНазвание сервиса.
Имя чартаИмя Helm-чарта, которым разворачивается сервис.
КритическийЯвляется ли сервис критически важным для работы платформы, см. — Сервисы репозитория Shturval
СтатусРезультат установки: «Установлен», «Не запущен», «Ошибка» или «Не установлен».
ПричинаПричина и сообщение из последнего condition сервиса.
Дата и время получения состоянияВремя последнего изменения condition.

Доступны поиск по тексту, фильтры по статусу и критичности, а также сортировка по дате получения состояния. Кнопка настройки колонок позволяет скрыть необязательные колонки; колонка «Имя сервиса» отображается всегда.

Состав и назначение сервисов описаны на странице «Сервисы репозитория Shturval». Если кластер перешёл в готовое состояние раньше, чем установлены все сервисы, после развёртывания управление доступно в разделе Сервисы и репозитории → Установленные сервисы.

Репликация

Если этап входит в сценарий развёртывания кластера управления, отображаются его conditions.

Кластер готов

Итоговое состояние развёртывания:

  • Когда кластер управления развернут, на этапе доступны для скачивания статический kubeconfig и URL для перехода в интерфейс платформы.
  • По завершении развертывания клиентского кластера автоматически осуществляется переход на дашборд развернутого кластера.

Под капотом

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

Между нажатием Создать кластер и переходом кластера в статус «Готов» платформа получает узлы кластера: инфраструктурная машина или хост, затем установка 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 этапа. Типичные причины ошибок: