Поделиться через


Сетевые интерфейсы контейнеров Azure (CNI) наложения сети

При наложении Azure CNI узлы кластера развертываются в подсети Azure виртуальная сеть (виртуальная сеть). Модули pod назначаются IP-адресам из частного CIDR логически отличается от виртуальной сети, на котором размещаются узлы. Трафик pod и узла в кластере используют сеть наложения. Преобразование сетевых адресов (NAT) использует IP-адрес узла для доступа к ресурсам за пределами кластера. Это решение экономит значительное количество IP-адресов виртуальной сети и позволяет масштабировать кластер до больших размеров. Дополнительное преимущество заключается в том, что вы можете повторно использовать частный CIDR в разных кластерах AKS, что расширяет пространство IP-адресов, доступное для контейнерных приложений в Служба Azure Kubernetes (AKS).

Общие сведения о сети overlay

В сети Overlay только узлы кластера Kubernetes назначаются ip-адресам из подсетей. Модули Pod получают IP-адреса из частного CIDR, предоставленного во время создания кластера. Каждому узлу назначается диапазон адресов /24 из одного и того же диапазона CIDR. Дополнительные узлы, созданные при горизонтальном масштабировании кластера, автоматически получают /24 адресные пространства из того же CIDR. Azure CNI назначает IP-адреса объектам pod из этого диапазона адресов /24.

Отдельный домен маршрутизации создается в стеке сетей Azure для частного пространства CIDR pod, который создает сеть наложения для прямого обмена данными между модулями pod. Нет необходимости подготавливать пользовательские маршруты в подсети кластера или использовать метод инкапсуляции для туннелирования трафика между модулями pod, что обеспечивает производительность подключения между модулями pod в паре с виртуальными машинами в виртуальной сети. Рабочие нагрузки, выполняемые в модулях pod, даже не знают, что происходит обработка сетевых адресов.

Схема с двумя узлами с тремя модулями pod, работающими в сети наложения. Трафик pod к конечным точкам за пределами кластера направляется через NAT.

Обмен данными с конечными точками за пределами кластера, такими как локальные и пиринговые виртуальные сети, происходит с помощью IP-адреса узла через NAT. Azure CNI преобразует исходный IP-адрес (наложенный IP-адрес pod) трафика на первичный IP-адрес виртуальной машины, который позволяет стеку сетей Azure направлять трафик в место назначения. Конечные точки за пределами кластера не могут напрямую подключаться к объектам pod. Необходимо опубликовать приложение pod как службу Load Balancer Kubernetes, чтобы сделать ее доступной в виртуальной сети.

Вы можете предоставить исходящее подключение к Интернету для модулей pod Overlay с помощью подсистемы балансировки нагрузки SKU уровня "Стандартный" или управляемого шлюза NAT. Также можно управлять исходящим трафиком, перенаправляя его в брандмауэр с помощью определяемых пользователем маршрутов в подсети кластера.

Вы можете настроить подключение входящего трафика к кластеру с помощью контроллера входящего трафика, например маршрутизации приложений Nginx или HTTP. Невозможно настроить подключение входящего трафика с помощью шлюза приложение Azure. Дополнительные сведения см. в разделе "Ограничения" с наложением Azure CNI.

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

В следующей таблице представлено подробное сравнение kubenet и Наложения Azure CNI.

Площадь Наложение Azure CNI kubenet
Масштаб кластера 5000 узлов и 250 модулей pod/node 400 узлов и 250 объектов pod/узел
Сетевая конфигурация Простой— не требуется дополнительных конфигураций для сети pod Сложная — для сети с объектами pod требуются таблицы маршрутов и определяемые пользователем маршруты в подсети кластера
Производительность подключений pod Производительность наравне с виртуальными машинами в виртуальной сети Дополнительный прыжок добавляет дополнительную задержку
Сетевые политики Kubernetes Политики сети Azure, Calico, Cilium Calico
Поддерживаемые платформы ОС Linux и Windows Server 2022, 2019 только Linux.

Планирование IP-адресов

Узлы кластера

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

/24 Подсеть может соответствовать до 251 узлов, так как первые три IP-адреса зарезервированы для задач управления.

Объекты pod

Решение Overlay назначает адресное /24 пространство для модулей pod на каждом узле из частного CIDR, указанного во время создания кластера. Размер /24 является фиксированным и не может быть увеличен или уменьшен. На узле можно запустить до 250 объектов pod.

При планировании пространства IP-адресов для модулей pod следует учитывать следующие факторы:

  • Убедитесь, что частный CIDR достаточно велик, чтобы предоставить /24 адресные пространства для новых узлов для поддержки будущего расширения кластера.
  • Один и тот же диапазон CIDR для pod можно использовать в нескольких независимых кластерах AKS в одной виртуальной сети.
  • Диапазон CIDR для pod не должен перекрываться с диапазоном подсети кластера.
  • Пространство CIDR pod не должно перекрываться напрямую подключенными сетями (например, пиринг виртуальных сетей, ExpressRoute или VPN). Если внешний трафик имеет исходные IP-адреса в диапазоне podCIDR, он должен передаваться в не перекрывающийся IP-адрес через SNAT для взаимодействия с кластером.

Диапазон адресов службы Kubernetes

Размер CIDR адреса службы зависит от количества создаваемых служб кластера. Он должен быть меньше /12. Этот диапазон не должен перекрываться с диапазоном CIDR pod, диапазоном подсети кластера и диапазоном IP-адресов, используемым в одноранговых виртуальных сетях и локальных сетях.

IP-адрес службы DNS Kubernetes

Этот IP-адрес находится в диапазоне адресов службы Kubernetes, используемых обнаружением службы кластера. Не используйте первый IP-адрес в диапазоне адресов, так как этот адрес используется для kubernetes.default.svc.cluster.local адреса.

Группы безопасности сети

Pod для трафика pod с помощью Наложения Azure CNI не инкапсулируется, а правила группы безопасности сети подсети применяются. Если группа безопасности сети подсети содержит правила запрета, влияющие на трафик CIDR pod, убедитесь, что существуют следующие правила, чтобы обеспечить правильную функциональность кластера (помимо всех требований исходящего трафика AKS):

  • Трафик от CIDR узла к узлу CIDR на всех портах и протоколах
  • Трафик от CIDR узла к CIDR pod на всех портах и протоколах (необходимых для маршрутизации трафика службы)
  • Трафик из CIDR pod в ciDR pod на все порты и протоколы (необходимый для pod для pod и pod в трафик обслуживания, включая DNS)

Трафик из модуля pod в любое место за пределами блока CIDR pod использует SNAT для установки исходного IP-адреса в IP-адрес узла, на котором выполняется модуль pod.

Если вы хотите ограничить трафик между рабочими нагрузками в кластере, рекомендуется использовать политики сети.

Максимальное число контейнеров pod на узле

Максимальное количество объектов pod на узел можно настроить во время создания кластера или при добавлении нового пула узлов. Значение по умолчанию и максимальное значение для наложения Azure CNI равно 250., а минимальное значение — 10. Максимальное число объектов pod на узел, указанное во время создания пула узлов, применяется только к узлам в этом пуле.

Выбор модели сети

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

Используйте сеть наложения, когда:

  • Вы хотите масштабировать до большого количества модулей pod, но имеют ограниченное пространство IP-адресов в виртуальной сети.
  • Большая часть обмена данными между объектами pod происходит в пределах кластера.
  • Вам не требуются расширенные возможности AKS, такие как виртуальные узлы.

Используйте традиционный параметр виртуальной сети, если:

  • У вас есть достаточный диапазон IP-адресов.
  • Объекты pod обмениваются данными в основном с ресурсами за пределами кластера.
  • Ресурсы за пределами кластера должны напрямую обращаться к объектам pod.
  • Вам требуются расширенные возможности AKS, такие как виртуальные узлы.

Ограничения, связанные с наложением Azure CNI

Наложение Azure CNI имеет следующие ограничения:

  • Вы не можете использовать Шлюз приложений в качестве контроллера входящего трафика (AGIC).
  • Группы доступности виртуальных машин (VMAS) не поддерживаются.
  • Виртуальные машины серии DCsv2 нельзя использовать в пулах узлов. Чтобы удовлетворить требования к конфиденциальным вычислениям, рекомендуется использовать конфиденциальные виртуальные машины серии DCasv5 или DCadsv5.
  • Если вы используете собственную подсеть для развертывания кластера, имена подсети, виртуальной сети и группы ресурсов, содержащей виртуальную сеть, должны быть 63 символами или меньше. Эти имена будут использоваться в качестве меток в рабочих узлах AKS и применяются к правилам синтаксиса меток Kubernetes.