Планирование сети pod для службы Azure Kubernetes (AKS)

В этой статье описаны параметры сети pod для службы Azure Kubernetes (AKS). Сначала мы ставим вопрос, чтобы помочь вам в планировании, а затем предоставляем варианты, рекомендации и лучшие практики.

Нужен ли доступ к IP-адресу pod напрямую?

Сеть pod управляет назначением IP-адресов и определением того, как модули pod взаимодействуют друг с другом, узлами кластера и назначениями за пределами кластера. Kubernetes предоставляет сетевую структуру pod с помощью подключаемого модуля Container Network Interface (CNI), который отвечает за управление IP-адресами pod и сетевым подключением.

При настройке сети pod необходимо спланировать управление IP-адресами (IPAM) и маршрутизацию и транспорт (плоскость данных).

Параметры управления IP-адресами (IPAM)

При настройке IPAM можно выбрать между моделью наложения сети с Azure CNI Overlay и плоской сетевой моделью с подсетью Pod Azure CNI или подсетью узла Azure CNI:

Параметры IPAM Схема сетевых компонентов Функции и функциональные возможности
Модель наложенной сети (с наложением сетевой инфраструктуры Azure CNI) Снимок экрана: схема сетевых компонентов модели наложения сети. • IP-адреса pod приходят из диапазона наложения, который не входит в пространство виртуальной сети.
• Высокомасштабируемая сеть с до 5000 узлов и 250 000 модулей pod.
• Повторное использование пространства оверлея pod во всех кластерах без конфликтов. Такие действия, как пиринг виртуальных сетей или прямые подключения ExpressRoute, могут привести к конфликтам с частным IP-пространством.
• Поддержка двойного стека (IPV4/IPV6).
• Доступ к модулям Pod невозможно получить непосредственно извне кластера.
Плоская модель сетей (с подсетью Pod Azure CNI или подсетью узла) Снимок экрана: схема сетевых компонентов модели неструктурированных сетей. • IP-адреса узлов и pod берутся из пространства VNet.
• Доступ к модулям Pod можно получить непосредственно извне кластера.
• Параметры подсети Pod Azure CNI включают динамическое выделение IP-адресов для повышения эффективности или статическое выделение блоков для масштабирования.

Соображения по вариантам модели плоских сетей

При выборе между подсетью Pod Azure CNI с динамическим выделением IP-адресов, подсетью Pod Azure CNI с выделением статических IP-адресов и подсетью Azure CNI узла следует учитывать следующие рекомендации.

Параметр "Плоская сетевая модель" Соображения
Подсеть Pod Azure CNI с динамическим распределением IP-адресов • Включает в себя некоторую сложность и управление. Необходимо делегировать подсеть для узлов и pod, а также обеспечить правильное ограничение для обработки необходимого масштаба.
• Ограничение 64 000 IP-адресов.
Подсеть Pod Azure CNI с выделением статического блока • Требует тщательного планирования, так как необходимо выделить определенный диапазон IP-адресов для модулей pod и убедиться, что он не перекрывается с другими подсетями.
• Может получить до 1000 000 IP-адресов.
• IP-адреса могут использоваться не так эффективно, что может привести к разбою.
Подсеть узла Azure CNI • AKS управляет подсетью для вас, упрощая настройку.
• Ограничение 64 000 IP-адресов.

Параметры маршрутизации и транспорта (плоскости данных)

При настройке плоскости данных можно выбрать между плоскостью данных Azure CNI с поддержкой Cilium eBPF, плоскостью данных Azure IPTables и BYO CNI:

Параметры плоскости данных Функции и функциональные возможности
Azure CNI под управлением Cilium • Улучшены масштабируемость и производительность.
• Встроенный диспетчер политик сети (NPM).
• Расширенные сетевые политики, такие как фильтрация FQDN с помощью продвинутых сетевых служб контейнеров.
Azure IPTables • Установите Calico или NPM Azure (не рекомендуется) для диспетчера политик сети.
• Поддерживает все политики сети спецификации Kubernetes.
BYO CNI • Не установлен CNI-плагин. Вы можете использовать любой совместимый с AKS вариант.
• Корпорация Майкрософт не предоставляет поддержку по вопросам, связанным с CNI.

Recommendations

Наша общая рекомендация — использовать наложение Azure CNI. Если вам нужен прямой IP-доступ и у вас есть требования к эффективности или масштабированию, рассмотрите возможность использования подсети Pod Azure CNI с динамическим выделением IP-адресов или подсетью Pod Azure CNI с статическим выделением блоков. Если вам нужен прямой IP-адрес pod и требуется упрощенное управление, рассмотрите возможность использования подсети узла Azure CNI.