Модуль подключения нескольких сетевых интерфейсов
Multus CNI
На этой странице
Модуль подключения нескольких сетевых интерфейсов к модулям в Kubernetes (Multus CNI) является мета-плагином, который вызывает работу других плагинов CNI, таких как Flannel, Weave, Calico, Cilium, Macvlan. С помощью модуля возможно создать под с несколькими сетевыми интерфейсами, например, eth0, net0, net1.
По умолчанию модуль не установлен в кластерах. Чтобы установить модуль, перейдите на страницу Доступные чарты раздела Сервисы и репозитории в графическом интерфейсе. На вкладке “shturval” найдите чарт shturval-metacni
и нажмите “Установить”.
Выберите необходимую версию чарта. После выбора версии чарта в правой части экрана отобразятся доступные “Параметры конфигурации для сервиса” (values). Пропишите в блоке “Спецификация сервиса” необходимые параметры в качестве custom values.
Обратите внимание! Требуется установка модуля в неймспейс kube-system
.
Если вы настраиваете сетевые интерфейсы в графическом интерфейсе платформы, то также в кластере должны быть установлены и включены:
- оператор с SRIOV интерфейсами (
shturval-sriov
); - CRD оператор для работы с SRIOV интерфейсами (
shturval-sriov-crds
).
После завершения установки модулей в графическом интерфейсе станут доступны для конфигурации дополнительный сети. Подробнее о ресурсах SR-IOV.
Для организации мультисетей с разными IP-адресами или диапазонами адресов модуль (Multus CNI) интегрирован с модулем назначения IP-адресов на интерфейсах, созданных Multus (shturval-metacni-ipam
), который необходимо установить в кластере. Подробнее как установить модуль назначения IP-адресов на интерфейсах.
Создание дополнительных интерфейсов
Чтобы создать дополнительный интерфейс для использования подами необходимо сконфигурировать пользовательский ресурс, который определяет конфигурацию CNI для интерфейсов. Таким ресурсом является NetworkAttachmentDefinition. Подробнее о ресурсе дополнительной сети NetworkAttachmentDefinition.
Созданные NetworkAttachmentDefinitions подключаются к поду в блоке annotations, с помощью параметра k8s.v1.cni.cncf.io/networks
.
Пример пода с подключенными дополнительными интерфейсами, где macvlan-conf
и name-conf
названия NetworkAttachmentDefinitions:
apiVersion: v1
kind: Pod
metadata:
name: podname
annotations:
k8s.v1.cni.cncf.io/networks: macvlan-conf, name-conf
spec:
containers:
- name: containername
command: ["/bin/ash", "-c", "trap : TERM INT; sleep infinity & wait"]
image: alpine