Доступно с ограничениями в редакциях: Core, SE, SE+, Certified Core/CSE Lite (1.73)
Доступно без ограничений в редакциях: Ultimate/EE, Certified Pro/CSE Pro (1.73)
Входит с ограничениями в расширения: Продвинутые сетевые возможности
Стадия жизненного цикла модуля: General Availability
В модуле реализовано 7 алертов.
Модуль не включен по умолчанию в каком-либо наборе модулей.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Удалите все элементы
addressPoolс протоколомlayer2. - Обновление из версии 2 в 3:
Настройки пулов и BGP вынесены в отдельные Custom Resources. Пожалуйста, удалите следующие поля из
ModuleConfigmetallb:.settings.addressPools.settings.bgpPeers.settings.bgpCommunities
Параметры
Версия схемы: 3
Пример:
nodeSelector:
node-role.deckhouse.io/control-plane: ''
- объектsettings
- массив объектовsettings.addressPoolsПараметр устарел
Список диапазонов IP, которые будут выдаваться сервисам.
Формат — массив, как у оригинального MetalLB.
По умолчанию:
[]- массив строкsettings.addressPools.addresses
Обязательный параметр
Список диапазонов, где диапазон — это либо подсеть с маской, либо диапазон значений с “-“ в качестве разделителя.
- булевыйsettings.addressPools.auto-assign
Флаг auto-assign используется для предотвращения автоматического выделения IP из пула.
По умолчанию:
true - булевыйsettings.addressPools.avoid-buggy-ips
Запрещает использование адресов из пула, заканчивающихся на
.0и.255.По умолчанию:
false - массив объектовsettings.addressPools.bgp-advertisements
Определяет BGP advertisements.
- целочисленныйsettings.addressPools.bgp-advertisements.aggregation-length
Опция aggregation-length позволяет «свернуть» префикс в более крупный.
Работает для адресов IPv4.
По умолчанию:
32Допустимые значения:
1 <= X - массив строкsettings.addressPools.bgp-advertisements.communities
BGP communities, связанные с анонсом. Каждый элемент — это ключ из параметра bgpCommunities.
Пример:
communities: - no-advertise - целочисленныйsettings.addressPools.bgp-advertisements.localpref
Атрибут
BGP LOCAL_PREFиспользуется алгоритмом BGP best path.Путь с более высоким localpref предпочтительнее пути с более низким localpref.
- строкаsettings.addressPools.name
Обязательный параметр
Имя пула. Должно соответствовать RFC 1123: разделенные точками части в нижнем регистре, состоящие из букв и ‘-‘. Каждое имя должно начинаться и заканчиваться буквой алфавита.
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ - строкаsettings.addressPools.protocol
Обязательный параметр
Технология публикации сервисов, которую должен реализовать speaker.
Допустимые значения:
bgp,layer2
- объектsettings.bgpCommunitiesПараметр устарел
Доступно в редакциях: Ultimate/EE, Certified Pro/CSE Pro (1.73)
Список BGP communities.
Пример:
bgpCommunities: no-advertise: 65535:65282 - массив объектовsettings.bgpPeersПараметр устарел
Доступно в редакциях: Ultimate/EE, Certified Pro/CSE Pro (1.73)
Список внешних BGP-роутеров, которые будут работать с этим модулем.
Формат — массив, как у оригинального MetalLB.
По умолчанию:
[]- строка или числоsettings.bgpPeers.hold-time
Таймаут, после которого партнерский BGP-пир считается утерянным. Это значение делится на 3 и получается интервал для keep-alive.
Рекомендуемое значение —
3s(keep-alive раз в секунду), протокол BGP не поддерживает меньшие значения. По умолчанию —90s(keep-alive раз в 30 секунд).Шаблон:
^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ - целочисленныйsettings.bgpPeers.my-asn
Обязательный параметр
Номер автономной системы для кластера.
Допустимые значения:
0 <= X <= 4294967295 - объектsettings.bgpPeers.node-selector
Дополнительный псевдоселектор, который реализуется приложением speaker’а. Говорит о том, с каких узлов стоит устанавливать связь с внешними BGP-роутерами. Не путать с
speaker.nodeSelectorиnodeSelector.Опциональный параметр.
Формат —
matchLabelsилиmatchExpressions.- массив объектовsettings.bgpPeers.node-selector.matchExpressions
- строкаsettings.bgpPeers.node-selector.matchExpressions.key
- строкаsettings.bgpPeers.node-selector.matchExpressions.operator
- массив строкsettings.bgpPeers.node-selector.matchExpressions.values
- объектsettings.bgpPeers.node-selector.matchLabels
- строкаsettings.bgpPeers.password
Пароль аутентификации для BGP-маршрутизаторов, использующих TCP MD5-аутентифицированные сессии.
- строкаsettings.bgpPeers.peer-address
Обязательный параметр
IP внешнего BGP-роутера.
Шаблон:
^([0-9]{1,3}\.){3}[0-9]{1,3}$ - целочисленныйsettings.bgpPeers.peer-asn
Обязательный параметр
Номер автономной системы на внешнем BGP-роутере.
Допустимые значения:
0 <= X <= 4294967295 - целочисленныйsettings.bgpPeers.peer-port
Порт, к которому устанавливать сессию.
По умолчанию:
179Допустимые значения:
0 <= X <= 16384 - строкаsettings.bgpPeers.router-id
ID BGP-роутера для анонса.
- строкаsettings.bgpPeers.source-address
IP-адрес для исходящих соединений.
Шаблон:
^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
- строкаsettings.loadBalancerClass
Необязательное поле, описывающее класс LoadBalancer. Поле LoadBalancerClass следует использовать в режиме L2 LoadBalancer для указания MetalLoadBalancerClass, задающего параметры балансировщика для Service.
- объектsettings.nodeSelector
Селектор узлов, на которых будет работать главный контроллер. Структура, аналогичная параметру
spec.nodeSelectorпода Kubernetes.Если значение не указано или указано
false, будет использоваться автоматика. - объектsettings.speakerПараметр устарел
Настройки для компонента
speaker, который реализует протокол публикации IP-адресов LoadBalancer’а для внешней инфраструктуры.- объектsettings.speaker.nodeSelectorПараметр устарел
Селектор узлов, на которых будет работать DaemonSet speaker. Структура, аналогичная параметру
spec.nodeSelectorпода Kubernetes.Если значение не указано или указано
false, будет использоваться автоматика. - массив объектовsettings.speaker.tolerations
Структура для DaemonSet speaker’а, аналогичная параметру
spec.tolerationsпода Kubernetes.Если значение не указано или указано
false, будет использоваться автоматика.- строкаsettings.speaker.tolerations.effect
- строкаsettings.speaker.tolerations.key
- строкаsettings.speaker.tolerations.operator
- целочисленныйsettings.speaker.tolerations.tolerationSeconds
- строкаsettings.speaker.tolerations.value
- массив объектовsettings.tolerations
Структура, аналогичная параметру
spec.tolerationsпода Kubernetes для главного контроллера.Если значение не указано или указано
false, будет использоваться автоматика.- строкаsettings.tolerations.effect
- строкаsettings.tolerations.key
- строкаsettings.tolerations.operator
- целочисленныйsettings.tolerations.tolerationSeconds
- строкаsettings.tolerations.value

