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

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

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

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

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

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

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

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

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

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

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

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

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

Этап Что отображается на дашборде
Ресурсы созданы Начальный этап подготовки ресурсов кластера
Инфраструктура кластера готова Готовность инфраструктурных ресурсов кластера
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 Machine Conditions ресурса Cluster API Machine.
Состояние узла Conditions Kubernetes узла. При нажатии открывается дополнительная информация.
Статус Статус узла

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

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

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

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

Колонка Описание
Имя Имя узла. По колонке доступна фильтрация.
IP-адрес IP-адрес узла, если он уже получен.
Состояние Cluster API Machine Conditions ресурса 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 Node Cluster API
MachineDeployment Декларативное управление группой Worker-узлов Задаёт желаемое число Worker-узлов и шаблоны для создания Machine, BootstrapConfig и InfraMachine Cluster API
MachineDrainRule Правила дренажа машин при обслуживании или удалении Влияет на порядок эвакуации нагрузок с узла; детали зависят от версии CAPI документация Cluster API
MachineHealthCheck Политика автоматического восстановления неработоспособных Machine Отслеживает состояние узлов и может инициировать замену Machine MachineHealthChecks
MachinePool Модель группы машин как единого пула Не используется в платформе “Штурвал” документация Cluster API
MachineSet Набор однотипных Machine по шаблону Создаётся MachineDeployment и поддерживает нужное количество Worker Machine Cluster 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

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

infrastructure.cluster.x-k8s.io

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

Basis Dynamix

Кастомный ресурс Назначение Роль Где подробнее
BasisProvider Конфигурация подключения/провайдера Basis Dynamix Используется для работы с конкретной средой Basis Dynamix shturval-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 с инфраструктурой oVirt shturval-capov
OVirtMachine Одна ВМ в oVirt Инфраструктурная часть Machine; создаёт ВМ из шаблона и выставляет ProviderID shturval-capov
OVirtMachineTemplate Шаблон параметров OVirtMachine Используется MachineDeployment или KubeadmControlPlane для создания OVirtMachine InfraMachineTemplate

OpenStack

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

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

Shturval v2

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

VMware vCloud Director

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

VMware vSphere

Кастомный ресурс Назначение Роль Где подробнее
VSphereCluster Инфраструктурный объект кластера в vSphere Связывает CAPI Cluster с инфраструктурой VMware vSphere shturval-capvs
VSphereClusterIdentity Учётные данные или identity для доступа к VMware vSphere Используется провайдером для аутентификации в vCenter shturval-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 конкретной версии CAPV shturval-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 группа Ресурс Назначение Роль Где подробнее
core Node Встроенный Kubernetes-объект зарегистрированного узла Появляется в целевом кластере после bootstrap; CAPI Machine получает ссылку на Node Cluster API (связь Machine ↔ Node)
node.k8s.io RuntimeClass Встроенный Kubernetes-объект выбора container runtime handler Не используется в платформе “Штурвал” документация Kubernetes

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

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