Сети
Egress Gateway
Страница "Egress Gateway" содержит список "Cilium Egress Gateway Policies", созданных в кластере. Ресурс "Cilium Egress Gateway Policy" определяет способ маршрутизации и доступа во внешнюю сеть из подов с предсказуемым IP-адресом или интерфейсом. Поскольку у подов постоянно меняются IP-адреса, "Cilium Egress Gateway Policy" может быть полезен в случаях, если для трафика требуется известный исходный IP-адрес или интерфейс.
На странице "Egress Gateway" можно создать, отредактировать, удалить или просмотреть ранее созданные "Egress Gateway".
Создание Egress Gateway
Для добавления нового ресурса нужно нажать + Добавить Egress Gateway.
На открывшейся странице заполнить сведения (рисунок 253):

Рисунок 253 ‒ Добавление Egress Gateway
- Имя Egress Gateway.
- IP-адрес, используемый для SNAT (преобразования сетевых адресов) трафика. Нельзя одновременно указать IP-адрес и сетевой интерфейс.
- Интерфейс. Вместо IP-адреса можно указать сетевой интерфейс, который будет использоваться для исходящего трафика, например
eth1. - Список целевых CIDRs ‒ destinationCIDRs. Пункты назначения, куда из подов будет направлен трафик. По умолчанию установлено
0.0.0.0/0. - Список исключаемых CIDR ‒ excludedCIDRs. Можно задать один или несколько исключаемых CIDRs.
- Неймспейс. Выбрать неймспейс, чтобы определить поды для исходящего трафика. Если выбран неймспейс, в таблице "Список подов" отобразится перечень потенциальных подов. Чтобы добавить поды из разных неймспейсов, нужно нажать
+ Добавить неймспейс. Это может потребоваться, когда приложение развернуто в нескольких экземплярах нескольких неймспейсов одного кластера, и для них требуется назначить единый IP-адрес исходящего трафика. - При необходимости задать совпадающие лейблы в "Селектор подов", чтобы определить потенциальные поды выбранного неймспейса для исходящего трафика (рисунок 254).

Рисунок 254 ‒ Селектор узлов
Чтобы определить Worker-узел кластера в качестве узла шлюза (gateway), необходимо задать в разделе "Селектор узлов" одно или несколько условий:
- Лейблы. Чтобы добавить лейблы, нажать
+и указать ключ лейбла, при необходимости указать значение ключа. - Совпадающие выражения. Нажать на
+, чтобы добавить выражение. В открывшемся окне выбрать ключ и оператора. Доступные операторы:In‒ будут выбраны узлы с совпадающим ключом и заданным значением;NotIn‒ не выбираются узлы с совпадающим ключом и заданным значением;Exists‒ будут выбраны узлы с совпадающим ключом. Указывать значение не требуется;DoesNotExist‒ не выбираются узлы с совпадающим ключом. Указывать значение не требуется.
В случае если заданному набору условий (лейблы, выражения) соответствует несколько Worker-узлов, будет использован первый узел в лексическом порядке. Необходимо нажать Сохранить, чтобы завершить создание "Egress Gateway".
Созданный ресурс будет отображаться в списке на странице "Egress Gateway".
Особенности настройки Egress Gateway
- В случае указания IP-адреса исходящий трафик будет выходить через указанный IP-адрес с Worker-узла.
- В случае указания сетевого интерфейса исходящий трафик будет проходить через сетевой интерфейс одного из выбранных в селекторе узлов. В случае если на выбранном узле указанный интерфейс будет недоступен, исходящий трафик будет запрещен.
- если в селекторе узлов выбраны такие условия (лейблы; совпадающие выражения), по которым не нашлось ни одного Worker-узла, исходящий трафик будет запрещен.
- В случае если в селекторе узлов выбран только один Worker-узел и этот узел будет недоступен, исходящий трафик будет запрещен.
- если не указывать напрямую сетевой интерфейс или IP-адрес, на одном из Worker-узлов кластера будет использован первый IPv4, назначенный интерфейсу с маршрутом по умолчанию.
Просмотр и изменение Egress Gateway
Для просмотра нужно нажать на строку "Egress Gateway" в списке на странице "Egress Gateway" (рисунок 255).

Рисунок 255 ‒ Просмотр "Egress Gateway"
Страница просмотра содержит две вкладки:
- "Egress Gateway";
- "Манифест".
При необходимости изменения "Egress Gateway" можно обновить сведения:
- IP-адреса;
- сетевого интерфейса;
- списка целевых CIDRs ‒ destinationCIDRs;
- списка исключаемых CIDR ‒ excludedCIDRs;
- перечень неймспейсов, трафик подов которых будет выходить в соответствии с настройкой "Egress Gateway".
По завершении внесения изменений необходимо нажать Сохранить.
Также "Egress Gateway" можно изменить с помощью YAML-манифеста, перейдя на вкладку "Манифест". После изменения манифеста требуется выполнить проверку. Результат проверки будет доступен в правой части экрана. Можно раскрыть блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста "Cluster Issuer" не пройдена, проверка манифеста будет недоступна.
Далее следует сохранить изменения, внесенные в манифест. Несохраненные данные не будут применены.
Чтобы удалить "Egress Gateway", можно нажать в строке элемента на странице "Egress Gateway" или перейти на страницу просмотра, нажать Удалить и подтвердить действие.
Ingress Controllers
Страница "Ingress Controllers" содержит список Ingress-контроллеров, созданных в кластере. Ingress-контроллер позволяет управлять входящим трафиком неймспейсов кластера.
На странице "Ingress Controllers" можно создать, отредактировать, удалить или просмотреть ранее созданные "Ingress Controllers".
Создание Ingress Controller
Для добавления нового Ingress Controller нужно нажать + Добавить Ingress Controller.
На открывшейся странице заполнить сведения (рисунок 256):

Рисунок 256 ‒ Добавление Ingress Controller
- IP-адрес Ingress-контроллера. Установленный IP-адрес будет поднят на одном из Worker-узлов кластера. IP-адрес доступен для указания только при создании "Ingress Controller".
- При необходимости задать интерфейс. Интерфейс доступен для указания только при создании Ingress Controller.
- Селектор неймспейсов. Нажать
+и задать лейбл неймспейсов, для которых должен быть настроен входящий трафик и создан Ingress Controller. В результате добавления лейбла в разделе "Список неймспейсов" отобразится один или несколько неймспейсов с заданным лейблом.
Следует обратить внимание:
- Селектор неймспейсов работает по принципу объединения. Если требуется добавить несколько неймспейсов, необходимо назначить группе этих неймспейсов один лейбл и указать его в селекторе.
- Неймспейс, входящий в Ingress-контроллер, не может быть добавлен в другой Ingress-контроллер.
По завершении конфигурации Ingress-контроллера нужно нажать Сохранить. Ingress Controller будет отображаться в списке на странице "Ingress Controllers". Ingress Controller создается в новом автогенерируемом неймспейсе (рисунок 257).

Рисунок 257 ‒ Автогенерируемый неймспейс
В установленных сервисах будет добавлен "Модуль управления внешними подключениями" с именем, соответствующим имени созданного неймспейса (рисунок 258).

Рисунок 258 ‒ Установленные сервисы
Просмотр и изменение Ingress Controller
Для просмотра нужно нажать на строку "Ingress Controller" в списке (рисунок 259).

Рисунок 259 ‒ Просмотр "Ingress Controller"
При необходимости изменения "Ingress Controller" можно обновить перечень неймспейсов Ingress-контроллера, для чего обновить лейблы в блоке "Селектор неймспейсов". Обновленный список неймспейсов отобразится в таблице раздела "Список неймспейсов".
Следует обратить внимание, что селектор неймспейсов работает по принципу объединения.
Если в конфигурации "Ingress Controller" задан определенный неймспейс, блок "Селектор неймспейсов" будет заменен на имя этого неймспейса. Такой неймспейс недоступен для редактирования.
По завершении внесения изменений необходимо нажать Сохранить.
Чтобы удалить Ingress Controller, нужно нажать в строке элемента на странице "Ingress Controllers" или перейти на страницу просмотра, нажать Удалить и подтвердить действие.
Дополнительные сети
SriovNetwork
Ресурс SriovNetwork позволяет создать сеть для использования с SR-IOV-совместимой сетевой картой. Объект "SriovNetwork" связан с объектом "SriovNetworkNodePolicy". Оба объекта вместе обеспечивают полное управление сетевыми настройками SR-IOV на уровне узла.
Следует обратить внимание, что для создания ресурса SriovNetwork должен быть создан ресурс "SriovNetworkNodePolicy". Все ресурсы SR-IOV должны быть установлены в тот же неймспейс, где установлен SRI-OV-Operator. В этом случае неймспейс kube-system будет применен автоматически.
Для добавления нового ресурса на странице "SriovNetworks" раздела "Сети" нужно нажать + Добавить SriovNetwork. Созданные ресурсы будут отображаться в списке элементов (рисунок 260).

Рисунок 260 ‒ Добавление SriovNetwork
Детальное описание параметров объекта SriovNetwork:
Название;ResourceName‒ соответствует ResourceName сетевой политики SriovNetworkNodePolicy;Спецификация IPAM‒ IP-менеджер SR-IOV. Определяет параметры сети, например, подсеть и диапазон внутренних IP-адресов. IPAM настраивается в формате JSON.Спецификация capabilities‒ настраивается в формате JSON.vlan‒ (опциональный параметр) идентификатор VLAN.spoofChk‒ параметр для включения или отключения проверки поддельности.Включить режим доверия VF‒ (опциональный параметр) Указывает, должен ли VF доверять пакетам с потенциально вредоносным содержимым. Ограничение TX-скорости. Поля "maxTxRate" и "minTxRate" в объекте SriovNetwork указывают на наибольшую и наименьшую скорость передачи (в мегабитах в секунду). Допускается ограничивать только одно из значений:maxTxRate‒ максимальная TX-скорость;minTxRate‒ минимальная TX-скорость;linkState‒ текущее состояние связи VF. Принимает одно из значений:auto‒ состояние связи определяется драйвером сетевого интерфейса. Это значение по умолчанию.enable‒ сетевой интерфейс (VF) всегда включен, даже если PF не подключен к сети. При этом будут доступен исходящий трафик (инициализированный с VF), но входящий трафик от PF будет недоступен.disable‒ VF всегда выключен, независимо от состояния PF.- networkNamespace ‒ неймспейс, в котором будет создана сеть.
vlanQoS‒ определяет уровень обслуживания сетевого трафика внутри виртуальной локальной сети (VLAN). Он используется для настройки приоритета и обработки сетевых пакетов в сетевом интерфейсе, связанном с VF (Virtual Function ‒ виртуальной функцией).
Принимаемые значения поля "vlanQoS" могут включать:
0‒ "best effort", где все сетевые пакеты обрабатываются на равных условиях без каких-либо предпочтений или приоритетов.1-7‒ CoS ‒ Class of Service в соответствии с стандартом 802.1p. Они определяют приоритеты обработки пакетов в зависимости от их значимости или типа трафика. Например, значение "1" может обозначать наивысший приоритет, а значение "7" может обозначать наименьший приоритет.-1‒ использование настройки по умолчанию или отсутствие явной настройки VLAN QoS для данного VF.
При необходимости можно задать лейблы.
См. подробнее о технологии SR-IOV.
Примеры спецификаций
Пример IPAM-спецификации в формате JSON в объекте SriovNetwork:
{
"spec": {
"ipam": {
"type": "static",
"subnet": "10.56.217.0/24",
"rangeStart": "10.56.217.171",
"rangeEnd": "10.56.217.181",
"routes": [
{
"dst": "0.0.0.0/0"
}
],
"gateway": "10.56.217.1"
}
}
}
Описание спецификации:
- IPAM (IP Address Management) используется для управления и выделения IP-адресов.
- Тип "whereabouts" означает динамическое управление адресами. Он представляет собой систему, которая управляет диапазонами IP-адресов и присваивает их контейнерам.
- Тип "static" в IPAM представляет статическое управление адресами. В этом случае IP-адреса назначаются статически и могут быть заданы пользователем вручную. При использовании статического IPAM механизмы автоматического назначения и управления адресами отключаются, и все адреса должны быть вручную настроены.
Пример спецификации capabilities в формате JSON в объекте SriovNetwork:
{
"mac": true,
"ips": true
}
Описание спецификации:
В capabilities устанавливаются возможности SR-IOV. В данном примере mac указывает, что SR-IOV интерфейс может иметь свой собственный MAC-адрес, ips указывает, что SR-IOV интерфейс может иметь свой собственный IP-адрес.
NetworkAttachmentDefinitions
Ресурс NetworkAttachmentDefinition позволяет использовать пользовательские сети в дополнение к основному CNI Cilium при установленном модуле shturval-metacni.
NetworkAttachmentDefinition создается автоматически при создании SriovNetwork. Для созданного NetworkAttachmentDefinition можно изменять только лейблы и аннотации. Для изменения самой спецификации следует изменить сетевую политику SriovNetworkNodePolicy.
Для самостоятельного добавления нового ресурса NetworkAttachmentDefinition на странице "NetworkAttachmentDefinitions" раздела "Сети" нужно нажать + Добавить NetworkAttachmentDefinition (рисунок 261).

Рисунок 261 ‒ Добавление NetworkAttachmentDefinition
Затем требуется задать название ресурса и выбрать неймспейс, в котором он будет использован. При необходимости можно задать лейблы и аннотации.
Блок "Спецификация" содержит конфигурацию пользовательского ресурса. В нем необходимо указать параметры спецификации в формате JSON.
Пример:
config: '{
"cniVersion": "0.3.1",
"name": "my-multus-network",
"type": "macvlan",
"master": "eth0",
"mode": "bridge",
"ipam": {
"type": "host-local",
"subnet": "192.168.1.0/24",
"rangeStart": "192.168.1.200",
"rangeEnd": "192.168.1.216",
"routes": [{ "dst": "0.0.0.0/0" }],
"gateway": "192.168.1.1"
}
}'
Описание полей спецификации:
cniVersion‒ Версия CNI.name‒ Имя сети.type‒ Тип сетевого интерфейса, например macvlan.master‒ Название основного сетевого интерфейса на узле Kubernetes.mode‒ режим работы.ipam‒ Опции управления IP-адресами:type‒ Тип IPAM (IP Address Management).subnet‒ Сеть, в которой будут распределяться IP-адреса.rangeStart‒ rangeEnd ‒ Диапазон, в который будут распределяться IP-адреса.routes‒ Определение маршрутов для сети.gateway‒ Определения шлюза для сети.
Созданные NetworkAttachmentDefinitions будут отображаться в списке элементов.
SriovNetworkNodePolicy
Ресурс SriovNetworkNodePolicy позволяет подключать контейнеры непосредственно к сетевому оборудованию. Объект "SriovNetworkNodePolicy" связан с объектом "SriovNetwork". Оба объекта вместе обеспечивают полное управление сетевыми настройками SR-IOV на уровне узла.
Для добавления нового ресурса на странице "SriovNetworkNodePolicy" раздела "Сети" необходимо нажать + Добавить SriovNetworkNodePolicy (рисунок 262). Созданные ресурсы будут отображаться в списке элементов.
Все ресурсы SR-IOV должны быть установлены в тот же неймспейс, где установлен SRI-OV-Operator. В этом случае неймспейс kube-system будет применен автоматически.

Рисунок 262 ‒ Добавление SriovNetworkNodePolicy
Детальное описание параметров объекта SriovNetworkNodePolicy:
Название;ResourceName‒ связывает сетевую политику "SriovNetworkNodePolicy" с сетью "SriovNetwork";Селектор узлов‒ определить, какие узлы охватываются политикой SR-IOV, используя лейблы узлов.Приоритет‒ приоритет применения политики SR-IOV. Если у узла есть несколько политик, то они применяются в соответствии с приоритетом.deviceTypes‒ тип драйвера для создаваемых VF. Возможные значения:- "netdevice" (драйвер в ядре Linux);
- "vfio-pci" (драйвер для DPDK).
mtu‒ значение MTU (Maximum Transmission Unit) для устройств определяет максимальный размер пакета данных, который может быть передан через сетевой интерфейс.nicSelector‒ фильтры для выбора NIC (Network Interface Cards) политики. Может включать подмножества на основе Vendor ID, Device ID, Root Device ID, а также имена PfNames (рисунок 263).

Рисунок 263 ‒ Фильтры для выбора NIC (Network Interface Cards)
numVfs‒ количество виртуальных функций, которое должно быть настроено на каждом NIC.linkType‒ тип сетевого соединения. Возможные значения:- "Eth" ‒ описывает Ethernet-соединение;
- "IB" ‒ описывает InfiniBand-соединение;
eSwitchMode‒ режим работы виртуального коммутатора (eSwitch). Возможные значения:- "legacy" ‒ описывает режим виртуального коммутатора, основанного на legacy-драйвере;
- "switchdev" ‒ описывает режим виртуального коммутатора, который предлагает увеличенную производительность и более низкую задержку по сравнению с традиционной программной коммутацией.
isRdma‒ признак, который указывает, поддерживается ли RDMA (Remote Direct Memory Access).
При необходимости можно задать лейблы и аннотации.