Модуль cni-simple-bridge обеспечивает базовую работу сети для подов в Deckhouse Platform и реализует Container Network Interface (CNI).

CNI-плагин cni-simple-bridge использовался по умолчанию для модулей cloud-provider-aws, cloud-provider-azure, cloud-provider-gcp и cloud-provider-yandex в версиях платформы Deckhouse до 1.77.0. Начиная с версии платформы 1.77.0 для указанных модулей по умолчанию используется CNI Cilium модуля cni-cilium.

Модуль не имеет настраиваемых параметров.

Архитектура модуля

Для упрощения схемы приняты следующие допущения:

  • На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
  • Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.

Архитектура модуля cni-simple-bridge на уровне 2 модели C4 и его взаимодействия с другими компонентами DP изображена на следующей диаграмме:

Архитектура модуля cni-simple-bridge

Компоненты модуля

Модуль состоит из следующих компонентов:

  1. Simple-bridge (DaemonSet) — компонент запускается на каждом узле кластера и подготавливает CNI-плагин к работе. Для этого компонент получает подсеть подов из поля spec.podCIDR ресурса Node и формирует конфигурацию для запуска исполняемого файла bridge компонентом containerd при каждом создании или удалении сетевого пространства имён пода. При вызове bridge запрашивает выделение IP-адреса у плагина IP Address Management (IPAM) host-local.

    Плагины bridge и host-local являются стандартными Open Source-плагинами CNI, устанавливаемыми на каждый узел кластера независимо от этого модуля, в рамках установки kubelet.

    Состоит из следующих контейнеров:

    • cni-migration-init-checker — init-контейнер, ожидающий завершения процесса миграции с другого CNI-плагина, если такая миграция была запущена;
    • iptables-wrapper — init-контейнер, подготавливающий исполняемые файлы для работы с iptables;
    • simple-bridge — основной контейнер.

Взаимодействия модуля

Модуль взаимодействует с компонентом Kube-apiserver:

Дополнительные ресурсы