Доступно в редакциях: EE
Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Описание
Модуль sdn предоставляет функции программно-определяемых сетей в рамках DKP. В настоящее время он поддерживает следующие возможности:
- Управление конфигурацией сети на узлах.
- Дополнительные сети.
- IPAM для дополнительных сетей.
- Underlay-сети для проброса аппаратных устройств.
- Системные сети (сервисные сети на узлах).
Управление конфигурацией сети на узлах
Модуль позволяет конфигурировать сетевые интерфейсы, используя декларативный API.
Возможности модуля по настройке сетевых интерфейсов на узлах:
- Агрегация портов.
- Объединение сетевых интерфейсов в бридж.
- Настройка VLAN-интерфейсов.
Дополнительные сети
Эта функция позволяет декларативно управлять дополнительными сетями для прикладных нагрузок (поды, виртуальные машины). При этом:
- Каждая дополнительная сеть подразумевает единственный L2-домен обмена данными.
- Внутри сетевого пространства пода дополнительная сеть представлена в виде tap-интерфейса.
- В качестве технологии организации L2-сети в настоящее время поддерживаются следующие режимы:
- Тегированный VLAN — для связи между подами на разных узлах сетевые пакеты помечаются соответствующим VLAN ID и используют инфраструктурное сетевое оборудование для коммутации. Данный метод позволяет создать 4096 дополнительных сетей в рамках одного кластера;
- Прямой доступ в сетевой интерфейс на узлах — для связи между подами на разных узлах используются локальные сетевые интерфейсы на узлах.
- С точки зрения управления сети бывают двух типов:
- Кластерная — сеть, общедоступная в каждом проекте, управляется администратором. Пример — публичная WAN-сеть или shared-сеть обмена трафиком между проектами;
- Сеть проекта — сеть, доступная в рамках неймспейса, управляется пользователем.
IPAM для дополнительных сетей
Механизм IPAM (IP Address Management) позволяет выделять IPv4-адреса из пулов и назначать их на дополнительные сетевые интерфейсы подов, подключаемых к кластерным сетям (ClusterNetwork) и сетям проекта (Network).
Для управления выделением адресов используются:
- Пулы адресов: для кластерных сетей (ресурс ClusterIPAddressPool) или сетей проекта (ресурс IPAddressPool).
- Параметры для включения IPAM для конкретной сети:
Network.spec.ipam.ipAddressPoolRef— для сетей проекта,ClusterNetwork.spec.ipam.ipAddressPoolRef— для кластерных сетей. - Ресурс IPAddress — запрос (автоматический или статический) на выделение адреса, который затем назначается на интерфейс пода.
Практические шаги по выделению и назначению IPv4-адресов для дополнительных сетевых интерфейсов подов и примеры манифестов см. в Руководстве администратора и Руководстве пользователя.
Underlay-сети для проброса аппаратных устройств
Ресурс UnderlayNetwork обеспечивает прямое подключение физических сетевых интерфейсов (Physical Functions и Virtual Functions) к подам через Kubernetes Dynamic Resource Allocation (DRA). Эта функция предназначена для высокопроизводительных рабочих нагрузок, требующих прямого доступа к оборудованию, таких как приложения DPDK.
Основные возможности
- Проброс аппаратных устройств: Физические сетевые интерфейсы (PF/VF) напрямую предоставляются подам, обходя сетевой стек ядра для максимальной производительности.
- Настройка SR-IOV: Автоматическая настройка SR-IOV на выбранных Physical Functions для создания Virtual Functions, позволяя нескольким подам совместно использовать одно и то же оборудование.
- Поддержка DPDK: Устройства могут быть привязаны в различных режимах, подходящих для рабочих нагрузок DPDK:
- VFIO-PCI: Явно подключает сетевое устройство в под, привязывая его к драйверу
vfio-pci. Внутрь пода монтируются соответствующие VFIO dev-устройства (например,/dev/vfio/vfio0) для доступа из пользовательского пространства. - DPDK: Универсальный режим, который автоматически выбирает подходящий драйвер для вендора сетевого адаптера. Для сетевых карт Mellanox устройство привязывается к драйверу
mlx5_coreс прокидыванием как netdev-интерфейса, так и необходимых dev-устройств (файлы InfiniBand verbs,/dev/net/tun, а также соответствующий sysfs-каталог). Для остальных вендоров устройство привязывается через VFIO (так же, как в режиме VFIO-PCI). - NetDev: Внутрь пода прокидывается только линуксовый сетевой интерфейс как стандартное сетевое устройство ядра.
- VFIO-PCI: Явно подключает сетевое устройство в под, привязывая его к драйверу
Режимы работы
- Shared mode: Создает Virtual Functions (VF) из Physical Functions (PF) с использованием SR-IOV, позволяя нескольким подам совместно использовать одно и то же оборудование. Каждый под получает одну или несколько VF.
- Dedicated mode: Предоставляет каждый Physical Function как эксклюзивное устройство без SR-IOV. Каждый под получает эксклюзивный доступ к полному PF.
Автоматическая группировка интерфейсов
При включенном autoBonding контроллер группирует интерфейсы от нескольких совпавших PF в одно DRA устройство. Интерфейсы пробрасываются в под как отдельные сетевые интерфейсы, позволяя приложениям (например, DPDK) обрабатывать bonding/агрегацию на уровне приложения. Обратите внимание, что это не создает bonding-интерфейсы на уровне ядра внутри пода.
Системные сети (сервисные сети на узлах)
Ресурс SystemNetwork создает дополнительную сервисную сеть на узлах кластера поверх существующей underlay-сети. Системные сети предназначены для служебного трафика на уровне узлов (например, хранилище, управление), и не используются как дополнительные сети подов.
Принципы и особенности работы системных сетей:
- Работа поверх underlay-сетей. Системная сеть подключается к underlay-сети (UnderlayNetwork). Для подключения в параметре
spec.underlayNetworkNameресурса SystemNetwork указывается имя underlay-сети, к которой должна быть подключена системная сеть. Набор интерфейсов узла (PF или VF), которые будет использовать системная сеть, определяется в параметреmemberNodeNetworkInterfacesобъекта UnderlayNetwork. - Поддержка разных типов подключения системной сети к underlay-сети. Можно создавать VLAN-интерфейсы для подов (
type: VLAN), использовать прямой доступ к интерфейсам на узлах, подключенным к underlay-сети (type: Access), или подключиться через SR-IOV виртуальную функцию (type: SRIOVVirtualFunction) с опциональной настройкой (MTU, MAC, spoof checking и т.д.). - Поддержка механизма IPAM. Опциональный параметр
spec.ipamссылается на ClusterIPAddressPool. Контроллер и агент выделяют адреса из этого пула и назначают их сетевым интерфейсам узла для данной системной сети. - Отслеживание статусов системных сетей. Агент отчитывается об адресах узла (включая IP-адреса системных сетей) в ресурсах NodeNetworkStatus. Внутренние ресурсы SystemNetworkNodeNetworkInterfaceAttachment отслеживают привязку каждой системной сети к родительскому интерфейсу на каждом узле.
Пошаговые инструкции см. в руководстве администратора.