В модуле реализовано 6 алертов.
Модуль не включен по умолчанию в каком-либо наборе модулей.
Чтобы настроить модуль, используйте ресурс ModuleConfig
с именем metallb
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/metallb
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: metallb
spec:
version: 2
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
Примеры:
bgpPeers:
- peer-address: 192.168.1.1
peer-asn: 1111
my-asn: 2222
source-address: 192.168.1.2
hold-time: 10s
node-selector:
matchLabels:
node: test
addressPools:
- name: my-pool-bgp
protocol: bgp
addresses:
- 192.168.100.1-192.168.100.10
- 192.168.101.0/24
bgp-advertisements:
- aggregation-length: 32
localpref: 100
communities:
- no-advertise
bgpCommunities:
no-advertise: 65535:65282
speaker:
nodeSelector:
mylabel: speaker
addressPools:
- name: my-pool-l2
protocol: layer2
addresses:
- 192.168.100.1-192.168.100.10
- 192.168.101.0/24
speaker:
nodeSelector:
mylabel: speaker
tolerations:
- key: dedicated
operator: Equal
value: speaker
- 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
Имя пула, которое можно уточнять с помощью аннотации к сервису
metallb.universe.tf/address-pool: <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
Список BGP communities.
Пример:
bgpCommunities: no-advertise: 65535:65282
- settings.bgpPeers
Список внешних 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
Пароль для аутентификациии для роутеров, требующих 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
, реализующего протокол публикации и направляющего на свой узел прикладной трафик сервисов.- 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