Multus CNI#

Multus CNI - это плагин для DropApp Plus, который позволяет подключать несколько сетевых интерфейсов к pod в кластере.

Обычно в DropApp Plus каждый pod имеет только один сетевой интерфейс, однако Multus CNI расширяет эту возможность, позволяя создавать многоразовые pod с несколькими интерфейсами. Действует как «meta-plugin», который вызывает несколько других CNI-плагинов для создания дополнительных сетевых интерфейсов. Multus CNI следует стандарту определения пользовательских ресурсов сети и обеспечивает унифицированный способ указания конфигураций дополнительных сетевых интерфейсов. Инструмент полезен для сценариев, требующих подключения pod к нескольким сетям одновременно, или для обеспечения отдельных сетевых путей различных типов трафика в кластере.

Multus CNI предоставляет функции:

  1. Поддержка добавления нескольких сетевых интерфейсов к pod.

  2. Использование Custom Resource Definitions (CRD) для хранения конфигураций дополнительных интерфейсов.

  3. Поддержка различных типов сетевых интерфейсов, таких как MACVLAN, VLAN, VXLAN и другие.

  4. Возможность управления сетевыми конфигурациями через аннотации и настройки CRD.

  5. Расширяемость и гибкость конфигурации сетевых интерфейсов.

Основные команды и флаги для работы с Multus CNI:

  1. oc apply -f <file>: команда для установки Multus CNIс помощью YAML-файла.

  2. oc get pods --all-namespaces | grep -i multus: команда для проверки запущенных pod Multus CNI.

  3. oc get network-attachment-definitions: команда для получения списка созданных конфигураций дополнительных интерфейсов.

  4. oc describe network-attachment-definitions <name_interface>: команда для подробного описания конфигурации определенного дополнительного интерфейса.

Предусловия#

Настройте Kubelet на использование CNI.

Последовательность выполнения#

Установите Multus CNI. Рекомендуемый метод установки – установка через Daemonset. Для этого можно использовать «толстый» (thick) или «тонкий» (thin) плагин:

  • пример установки «толстого» (thick) плагина:

    oc apply -f https://<repoexample.ru>/k8snetworkplumbingwg/multus-cni/master/deployments/multus-daemonset-thick.yml # Укажите актуальный путь до локального репозитория
    
  • пример установки «тонкого» (thin) плагина:

    oc apply -f https://<repoexample.ru>/k8snetworkplumbingwg/multus-cni/master/deployments/multus-daemonset.yml # Укажите актуальный путь до локального репозитория
    

Проверка установки#

Чтобы проверить установку, выполните следующие действия:

  1. Проверьте, что все pod Multus CNI запущены без ошибок:

    oc get pods --all-namespaces | grep -i multus
    
  2. Убедитесь, что автоматически сгенерированный файл конфигурации существует в каталоге /etc/cni/net.d/:

    ls /etc/cni/net.d/
    

Результат#

Multus CNI установлен и готов к использованию.