Deckhouse Platform интегрируется с инфраструктурой встроенной виртуализации и использует ресурсы DVPInstanceClass для описания характеристик виртуальных машин, создаваемых в составе кластера.
Основные возможности:
- Управление ресурсами виртуализации через модуль
cloud-controller-manager; - Заказ дисков с использованием компонента CSI storage;
- Интеграция с модулем
node-managerдля поддержки DVPInstanceClass при описании NodeGroup.
Интеграция с виртуализацией включается автоматически для всех облачных кластеров, развёрнутых во встроенной виртуализации. Дополнительная настройка не требуется.
Балансировщики нагрузки
Встроенная виртуализация поддерживает объекты Service с типом LoadBalancer. Для каждого такого объекта cloud-controller-manager создаёт Service с типом LoadBalancer в родительском кластере и направляет трафик на узлы дочернего. Объект создаётся в неймспейсе, который задан параметром namespace, рядом с виртуальными машинами кластера.
Внешний адрес назначает родительский кластер, поэтому в нём должен работать контроллер балансировщиков, например модуль metallb. Контроллер обслуживает только те объекты Service, для которых определён класс балансировщика.
Чтобы задать класс по умолчанию, создайте в родительском кластере ресурс MetalLoadBalancerClass с параметром isDefault в значении true. Такой класс обслуживает объекты Service, в которых класс не указан, поэтому в дочернем кластере класс можно не указывать.
Чтобы выбрать другой класс, укажите его в параметре spec.loadBalancerClass объекта Service дочернего кластера. Платформа переносит значение в родительский кластер вместе с параметром externalIPs и устаревшим параметром loadBalancerIP.
Параметр spec.loadBalancerClass неизменяем. Задайте класс при создании объекта Service, иначе объект придётся пересоздать.
Без класса балансировщика объект Service остаётся в состоянии Pending, при этом cloud-controller-manager не выводит ошибок. Проверьте состояние объекта в родительском кластере:
d8 k -n <NAMESPACE> get svc
Замените <NAMESPACE> на неймспейс, заданный параметром namespace.