Узлы и шаблоны ВМ

Связь обновления платформы и узлов

При обновлении платформы этап «Обновление версии Kubernetes» обновляет компоненты Kubernetes в кластере. Модуль shturval-node-config (std) автоматически обновляет версию Kubernetes на уже существующих узлах.

Соответствие имени шаблона и версии Kubernetes хранится в InfrastructureProvider экземпляра провайдера, поле spec.templates. Учётные данные подключения остаются в ресурсе провайдера.

При обновлении до версии 2.15 включительно InfraMachineTemplate не меняется. Новые узлы создаются со старой версией из этого шаблона, поэтому шаблон в группах узлов необходимо заменить вручную. Начиная с версии 2.15 при стратегии RollingUpdate потребуется добавить в экземпляр провайдера шаблон ВМ целевой версии Kubernetes для применения при обновлении.

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


Требование cgroup v2 (Kubernetes 1.35)

в Kubernetes 1.35 kubelet не запускается на узлах с cgroups v1. Поддержка cgroups v1 исключена в Kubernetes 1.35. Если не обновить шаблон ВМ, то при масштабировании узлов возникнет ошибка, типичный сценарий после обновления:

  1. Платформа обновлена до 2.14.0 и существующие узлы прошли rolling update через shturval-node-config.
  2. Администратор масштабирует узлы в группе.
  3. Новая ВМ создаётся из старого шаблона в InfraMachineTemplate — с cgroups v1 и прежней версией Kubernetes (например, 1.34.3).
  4. Узел регистрируется в кластере, shturval-node-config инициирует обновление до 1.35.
  5. Обновление зависает: kubelet отказывается стартовать с ошибкой [ERROR SystemVerification]: cgroups v1 support is deprecated....

Причина: шаблон ВМ не был обновлён после обновления платформы. Старые шаблоны, подготовленные для Kubernetes 1.34 и ниже, не включают cgroup v2.

Решение: выполните шаги из раздела Действия после обновления.


Действия после обновления (провайдеры с шаблонами ВМ)

Для кластеров на VMware vSphere, oVirt, OpenStack и других провайдерах с шаблонами виртуальных машин:

Шаг 1: Подготовка шаблона (администратор платформы)

  1. Создайте шаблон виртуальной машины в платформе виртуализации с версией Kubernetes, соответствующей обновлённой версии кластера. Начиная с версии 2.14.0 платформы шаблон обязательно должен быть подготовлен с включённым cgroup v2 — см. Пошаговый процесс создания шаблона. Утилита stc при подготовке шаблона включает cgroup v2.
  2. На вкладке Платформа в карточке Провайдеры инфраструктуры нажмите Управлять. Выберите экземпляр провайдера.
Скриншот: вкладка «Платформа» — переход в конфигурацию провайдеров

Вкладка Платформа: карточка Провайдеры инфраструктуры и ссылка Управлять

Скриншот: конфигурация провайдера

Конфигурация провайдера

  1. Добавьте шаблон ВМ в блоке «Шаблоны виртуальных машин» — укажите версию Kubernetes, соответствующую обновлённой версии платформы. Соответствие сохранится в InfrastructureProvider. Если в экземпляре несколько шаблонов ВМ с одинаковой версией Kubernetes, платформа выберет первый по алфавиту и применит его ко всем группам узлов. Чтобы гарантированно выбрать нужный шаблон, добавьте один шаблон следующей версии.
Скриншот: добавление шаблона с версией Kubernetes

Добавление шаблона ВМ

  1. Сохраните изменения.

Соответствие версий Штурвал и Kubernetes — таблица.

Шаг 2: Замена шаблона в группах узлов (администратор кластера)

  1. Администрирование → Управление узлами.
Скриншот: управление узлами

Управление узлами

  1. Для каждой группы (Control Plane и все группы Worker) откройте конфигурацию группы.
  2. Перейдите на вкладку InfraMachineTemplate.
Скриншот: вкладка InfraMachineTemplate

InfraMachineTemplate

  1. В поле «Шаблон ВМ» замените шаблон на вновь добавленный в экземпляр провайдера.
Скриншот: замена шаблона ВМ

Замена шаблона

  1. Сохраните изменения.

Обратите внимание! Внимание: Замена шаблона в InfraMachineTemplate запускает автоматическое пересоздание узлов в группе. Убедитесь, что это допустимо для вашего окружения.

Обратите внимание! Внимание: для провайдеров zVirt, oVirt, HostVM, РЕД Виртуализация, ROSA Virtualization, VMware vSphere, Yandex Cloud и VMware vCloud Director в выпадающем списке InfraMachinetemplate доступны все шаблоны ВМ, существующие в платформе провайдера инфраструктуры и к которым у сервисной УЗ есть права доступа. Используйте только те шаблона ВМ, которые подготовлены с помощью STC!!!


Исключение: Shturval v2

Для кластеров с провайдером Shturval v2 шаблоны виртуальных машин не используются — узлы создаются на «голых» хостах. Обновление версии Kubernetes на узлах выполняется автоматически модулем shturval-node-config. Отдельные действия по замене шаблонов не требуются.


Если нет прав на провайдер

Обновление шаблона в экземпляре провайдера доступно администратору платформы. Если у вас только права администратора кластера — обратитесь к администратору платформы для подготовки и добавления шаблона ВМ. После этого выполните шаги 2 (замена шаблона в группах узлов) в вашем кластере.