• Русский
  • Создание пула внешних IP-адресов

    Пул внешних IP-адресов — это набор IP-адресов, который MetalLB использует для получения внешних IP-адресов доступа для внутренних маршрутов типа LoadBalancer.

    Содержание

    Предварительные требования

    Если необходимо использовать пул внешних IP-адресов типа BGP, обратитесь к администратору для включения соответствующих функций.

    Ограничения и условия

    IP-ресурсы для внешнего адреса должны соответствовать следующим условиям:

    • Пул внешних адресов должен быть связан на уровне канального уровня (L2) с доступными узлами.

    • IP-адреса должны быть пригодны для использования платформой и не могут включать IP-адреса, уже используемые физической сетью, например, IP-адреса шлюзов.

    • Не должно быть пересечений с сетями, используемыми кластером, включая Cluster CIDR, Service CIDR, подсети и т.д.

    • В среде с двойным стеком необходимо, чтобы в одном пуле внешних адресов одновременно присутствовали как IPv4, так и IPv6 адреса, и их количество было больше 0. В противном случае внутренние маршруты типа LoadBalancer с двойным стеком не смогут получить внешние адреса доступа.

    • В среде IPv6 DNS узлов должен поддерживать IPv6, иначе плагин MetalLB не сможет быть успешно развернут.

    Развертывание плагина MetalLB

    Использование пула внешних адресов зависит от плагина MetalLB.

    1. Перейдите в Platform Management.

    2. В левой навигационной панели выберите Marketplace > Cluster Plugin.

    3. Найдите MetalLB, нажмите на MetalLB справа от ⋮ > Deploy.

    4. Дождитесь, пока статус развертывания не изменится на Deployment Successful, чтобы завершить процесс.

    Пример ресурса custom resource (CR) IPAddressPool

    # 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
    1. Ссылка на пул IP-адресов.
    INFO

    Q: Что такое L2Advertisement?

    A:

    1. L2Advertisement — это Custom Resource (CRD), предоставляемый MetalLB для управления тем, какие IP-адреса из пула IPAddressPool должны транслироваться через ARP (IPv4) или NDP (IPv6) в режиме канального уровня (Layer 2).

    Q: Какова цель L2Advertisement?

    A:

    1. Указать, какие IP-адреса из IPAddressPool транслировать на уровне L2 (ARP/NDP объявления);

    2. Контролировать поведение трансляции, чтобы предотвратить конфликты IP или трансляцию между сегментами;

    3. Ограничивать область трансляции в средах с несколькими сетевыми интерфейсами и сетями.

    Проще говоря, это говорит MetalLB: какие IP-адреса можно транслировать и кому (например, каким узлам).

    Без определения L2Advertisement в режиме Layer2 MetalLB не будет транслировать никакие адреса.

    Q: Что такое BGPAdvertisement в MetalLB?

    A:

    BGPAdvertisement — это Custom Resource Definition (CRD) Kubernetes, используемый в MetalLB, реализации балансировщика нагрузки для bare-metal Kubernetes кластеров. Он управляет тем, как диапазоны IP-адресов (определённые в IPAddressPool) объявляются во внешние сети через BGP (Border Gateway Protocol).

    Q: Почему BGPAdvertisement важен?

    A:

    В режиме BGP MetalLB контроллер устанавливает пиринг с внешними маршрутизаторами через BGP и объявляет IP-адреса, назначенные объектам Kubernetes Service. Ресурс BGPAdvertisement позволяет:

    • Управлять тем, какие пулы адресов объявляются

    • Настраивать параметры объявления маршрутов, такие как:

      • Агрегация маршрутов

      • BGP сообщества

      • Локальные предпочтения (приоритет BGP)

    Без определения BGPAdvertisement MetalLB не будет объявлять никакие адреса, даже если настроены BGP пиры.

    Создание пула внешних IP-адресов через веб-консоль

    1. Перейдите в Platform Management.

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

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

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

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

    Создание пула внешних IP-адресов через CLI

    kubectl apply -f ippool-with-L2advertisement.yaml -f ippool-with-bgpadvertisement.yaml

    Просмотр политики оповещений

    1. Перейдите в Platform Management.

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

    3. Нажмите View Alarm Policy в правом верхнем углу страницы, чтобы просмотреть общую политику оповещений для MetalLB.