Критерии принятия решений

Завершено

Выбор оптимального сетевого подключаемого модуля для вашего варианта использования зависит от условий. Каждый вариант имеет собственные преимущества, минусы и компромиссы, которые следует учитывать при выборе.

Критерии принятия решений высокого уровня

Исчерпание IPv4

Kubenet разработан с учетом сохранения пространства IP-адресов. Azure CNI предоставляет pod'ы с полным сетевым подключением, но требует большего диапазона IP-адресов и тщательного планирования. Исчерпание IPv4 — это состояние, при котором количество адресов достигает предела и не позволяет узлам участвовать в операциях масштабирования или обновления. Во время исчерпания приложение требует слишком большого количества ресурсов и отстает.

Kubenet позволяет узлам получать определенные IP-адреса без необходимости заранее резервировать большое количество IP-адресов для всех потенциальных pod, которые могут выполняться в кластере. При использовании kubenet вы беспокоитесь меньше об исчерпании IPv4 и обрабатываете небольшой диапазон IP-адресов для поддержки больших кластеров и требований приложений.

Следующие основные вычисления сравнивают адресное пространство в сетевых моделях:

  • kubenet: простой диапазон IP-адресов /24 может поддерживать до 251 узлов в кластере (каждая подсеть виртуальной сети Azure резервирует первые три IP-адреса для операций управления). Это число узлов может поддерживать до 27 610 pods (по умолчанию максимально 110 pods на узел при использовании kubenet).
  • Azure CNI: тот же базовый диапазон подсети /24 может поддерживать только 8 узлов в кластере. Эти узлы могут поддерживать только до 240 модулей (с максимальным значением по умолчанию, равным 30 модулям на узел с Azure CNI).

Размер кластера

Kubenet имеет жесткий максимум в 400 узлов на кластер, а максимальное число узлов для Azure CNI зависит от конфигурации плагина.

Связь

В Kubenet необходимо вручную управлять и поддерживать маршруты, определяемые пользователем. Для доступа к pod извне кластера необходимо использовать балансировщик нагрузки. С помощью Azure CNI модули pod получают полное подключение к виртуальной сети и могут быть напрямую доступны через частный IP-адрес из подключенных сетей.

Поддержка нескольких кластеров

В kubenet несколько кластеров не могут использовать одну подсеть узла. С помощью Azure CNI эта конфигурация возможна.

Задержка

По сравнению с Azure CNI Kubenet требует дополнительного перехода, что может вызвать некоторую небольшую задержку. Чувствительные к задержкам рабочие нагрузки должны развертываться в кластерах с использованием Azure CNI.

Дополнительные возможности

Azure CNI поддерживает сложные топологии сети с сетями Azure CNI, такими как виртуальные узлы или политики сети Azure.

Эти дополнительные возможности:

  • Подсеть для пула узлов
  • Динамическое выделение IP-адресов
  • Выделение подсети узла и подсети pod

Различия в поведении между Kubenet и Azure CNI

Помимо критериев высокого уровня, существует множество различий в поведении и несоответствий в поддержке функций:

Способность Kubenet Azure CNI Наложение Azure CNI Azure CNI на базе Cilium
Развертывание кластера в существующей или новой виртуальной сети Поддерживается — UDR вручную применены Поддерживается Поддерживается Поддерживается
Подключение между подами Поддерживается Поддержанный Поддержанный Поддержанный
Pod-VM подключение; Виртуальная машина в той же виртуальной сети Работает при инициировании пода Работает обоими способами Работает при инициировании pod-ом Работает при запуске podа
Pod-VM подключения; Виртуальная машина в пиринговой виртуальной сети Работает, когда инициализируется pod Работает обоими способами Работает при запуске модулем (pod) Работает при инициировании подом
Локальный доступ с помощью VPN или Express Route Работает, когда инициировано модулем pod Работает обоими способами Работает при инициировании pod'ом Работает, когда инициируется pod
Доступ к ресурсам, защищенным конечными точками службы Поддержанный Поддерживается Поддерживается
Доступ к ресурсам, предоставляемым частными конечными точками Поддерживается Поддерживается
Экспонирование служб Kubernetes через балансировщик нагрузки, шлюз приложений или Ingress-контроллер Поддерживается Поддержанный Поддерживается Те же ограничения при использовании режима наложения
Azure DNS и частные зоны по умолчанию Поддерживается Поддерживается Поддержанный
Поддержка пулов узлов Windows Не поддерживается Поддерживается Поддерживается Доступно только для Linux
Виртуальные узлы Не поддерживается Поддержанный Не поддерживается
Несколько кластеров, совместное использование одной подсети Не поддерживается Поддерживается Поддерживается
Поддерживаемые политики сети Ситец Политики сети Calico и Azure Calico, политики сети Azure, Cilium Цилиум