• Русский
  • Configure MetalLB

    Prerequisites

    Пожалуйста, убедитесь, что вы прочитали документацию по Installation перед продолжением.

    Configure an External IP Address Pool by using the web console

    1. Перейдите в Administrator.

    2. В левой навигационной панели выберите Network Management > External IP Address Pool.

    3. Нажмите Create External IP Address Pool.

    4. Следуйте приведённым ниже инструкциям для настройки параметров.

      ParameterDescription
      Type
      • L2: Связь и пересылка на основе MAC-адресов, подходит для небольших или локальных сетей, требующих простого и быстрого коммутации на уровне 2, с преимуществами в простоте настройки и низкой задержке.
      • BGP (Alpha): Маршрутизация и пересылка на основе IP-адресов, использующая протокол BGP для обмена маршрутной информацией, подходит для крупных сетей с необходимостью сложной маршрутизации между несколькими автономными системами, с преимуществами в высокой масштабируемости и надежности.
      IP ResourcesПоддерживается ввод в форматах CIDR и диапазона IP-адресов. Нажмите Add для добавления нескольких записей, примеры:
      CIDR: 192.168.1.1/24.
      IP Range: 192.168.2.1 ~ 192.168.2.255.
      Available NodesВ режиме L2 доступные узлы — это узлы, через которые проходит весь трафик VIP; в режиме BGP доступные узлы — это узлы, которые несут VIP, устанавливают BGP-соединения с пирингами и объявляют маршруты внешне.
      • Node Name: Выбор доступных узлов по имени узла.
      • Label Selector: Выбор доступных узлов по меткам.
      • Show Node Details: Просмотр итогового списка доступных узлов.
      Примечание:
      • При использовании типа BGP доступные узлы являются следующими хопами; убедитесь, что выбранные доступные узлы являются подмножеством узлов BGP Connection Nodes.
      • Можно настроить либо селектор меток, либо имя узла для выбора доступных узлов; если настроены оба параметра одновременно, итоговые доступные узлы — пересечение обоих.
      BGP PeersВыберите BGP-пиров; подробности настройки смотрите в разделе BGP Peers.
    5. Нажмите Create.

    Configure BGP Peers by using the web console

    1. Перейдите в Administrator.

    2. В левой навигационной панели выберите Network Management > BGP Peers.

    3. Нажмите Create BGP Peer.

    4. Следуйте инструкциям ниже для настройки параметров.

      ParameterDescription
      Local AS NumberНомер AS автономной системы, в которой находится узел с BGP-соединением.

      Примечание: Если нет особых требований, рекомендуется использовать конфигурацию IBGP, то есть локальный номер AS должен совпадать с номером AS пира.
      Peer AS NumberНомер AS автономной системы, в которой находится BGP-пир.
      Peer IPIP-адрес BGP-пира, должен быть действительным IP-адресом, способным установить BGP-соединение.
      Local IPIP-адрес узла с BGP-соединением. Если у узла несколько IP, выберите конкретный локальный IP для установления BGP-соединения с пиром.
      Peer PortНомер порта BGP-пира.
      BGP-Connected NodeУзел, который устанавливает BGP-соединение. Если параметр не задан, BGP-соединения будут установлены со всеми узлами.
      eBGP Multi-HopПозволяет устанавливать BGP-сессии между BGP-маршрутизаторами, которые не связаны напрямую. При включении этой функции значение TTL BGP-пакетов по умолчанию равно 5, что позволяет устанавливать пиринговые отношения BGP через несколько промежуточных сетевых устройств, делая дизайн сети более гибким.
      RouterID32-битное числовое значение (обычно в формате с точками, похожем на IPv4-адрес), используемое для уникальной идентификации BGP-маршрутизатора в сети BGP, обычно применяется для установления соседских отношений BGP, обнаружения петель маршрутизации, выбора оптимальных путей и устранения неполадок сети.
    5. Нажмите Create.

    Configure an External IP Address Pool with L2Advertisement or BGPAdvertisement by using the CLI

    # ippool-with-L2advertisement.yaml
    kind: IPAddressPool
    apiVersion: metallb.io/v1beta1
    metadata:
      name: test-ippool
      namespace: metallb-system
    spec:
      addresses:
        - 13.1.1.1/24
      avoidBuggyIPs: true
    ---
    kind: L2Advertisement
    apiVersion: metallb.io/v1beta1
    metadata:
      name: test-ippool
      namespace: metallb-system
    spec:
      ipAddressPools:
        - test-ippool
      nodeSelectors:
        - matchLabels: {}
          matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - 192.168.66.210

    Режим BGP

    # ippool-with-bgpadvertisement.yaml
    kind: IPAddressPool
    apiVersion: metallb.io/v1beta1
    metadata:
      name: test-pool-bgp
      namespace: metallb-system
    spec:
      addresses:
        - 4.4.4.3/23
      avoidBuggyIPs: true
    ---
    kind: BGPAdvertisement
    apiVersion: metallb.io/v1beta1
    metadata:
      name: test-pool-bgp
      namespace: metallb-system
    spec:
      ipAddressPools:
        - test-pool-bgp
      nodeSelectors:
        - matchLabels:
            alertmanager: 'true'
      peers:
        - test-bgp-example
    kubectl apply -f ippool-with-L2advertisement.yaml -f ippool-with-bgpadvertisement.yaml

    Troubleshooting MetalLB

    SymptomPossible CauseResolution
    No external IP assignedНет действительного IPAddressPool или неправильная конфигурация пулаПроверьте диапазон IP и namespace
    Pods CrashLoopОтсутствуют RBAC для Speaker или ControllerПроверьте разрешения оператора
    BGP not establishedНесовпадение ASN или пир недоступенПроверьте спецификацию BGPPeer и сетевые маршруты
    L2 not workingНеправильный VLAN или фильтрация ARPИспользуйте arping для проверки доступности широковещательной рассылки

    Для получения дополнительной информации смотрите Troubleshooting MetalLB