Общие сведения о сети Azure CNI
Kubernetes поддерживает различные подключаемые модули, позволяя добавлять новые функции и заменять или улучшать существующее поведение кластера. Сетевой интерфейс контейнера (CNI) — это спецификация, которая позволяет разработчикам создавать подключаемые модули для настройки сети контейнеров. Kubernetes применяет спецификацию CNI, позволяя использовать подключаемые модули CNI в кластерах.
Подключаемые модули Azure CNI
Подключаемый модуль Azure CNI обеспечивает совместную работу между контейнерами и виртуальными сетями Azure. Использование Azure CNI в кластере Kubernetes позволяет назначать IP-адреса pod из виртуальной сети Azure. Затем модуль pod может взаимодействовать с этой виртуальной сетью так же, как и любое другое устройство. Он может подключаться к другим модулям pod, пиринговым сетям, локальным сетям с помощью VPN или ExpressRoute или другим службам Azure с помощью приватного канала.
Помимо традиционного подключаемого модуля Azure CNI Служба Azure Kubernetes (AKS) поддерживает следующие подключаемые модули CNI:
Плагин | Описание | Когда следует использовать |
---|---|---|
наложение Azure CNI | Узлы кластера развертываются в подсети виртуальной сети Azure. Модулям pod назначаются IP-адреса из частного CIDR (маршрутизация без классов Inter-Domain), который логически отличается от виртуальной сети, в которой размещаются узлы. Трафик pod и узлов в кластере использует сеть наложения. NAT использует IP-адрес узла для доступа к ресурсам за пределами кластера. | • Вы хотите масштабировать большое количество подов, но пространство IP-адресов в виртуальной сети ограничено. • Большая часть общения pod происходит в кластере. • Вам не нужны расширенные функции AKS, такие как виртуальные узлы. |
Azure CNI на базе Cilium | Объединяет плоскость управления Azure CNI с плоскостью данных Cilium. Cilium применяет сетевые политики для разрешения или запрета трафика между подами, поэтому вам не нужно использовать отдельный движок политики сети. Вы можете выбрать один из двух способов назначения IP-адресов pod: через сеть наложения или виртуальную сеть. | • Вам нужна поддержка больших кластеров. • Требуется более быстрая маршрутизация служб, более эффективное применение политики сети и более высокая наблюдаемость трафика кластера. • Вы хотите использовать функциональные возможности традиционных подключаемых модулей Azure CNI и Azure CNI Overlay с высокопроизводительными сетями и безопасностью. |
Azure CNI для динамического распределения IP-адресов и расширенной поддержки подсети | Использует функции традиционного подключаемого модуля Azure CNI и расширяет их, выделяя IP-адреса pod из подсетей, отличных от той, в которой размещен кластер AKS. IP-адреса динамически выделяются для подов кластера из подсети подов. Подсети узлов и pod можно масштабировать независимо, и подсети pod могут совместно использоваться в нескольких пулах узлов или кластерах в одной виртуальной сети. Так как модули pod имеют отдельную подсеть, для них можно настроить отдельные политики виртуальной сети, которые отличаются от политик узлов. | • Вы хотите иметь возможность масштабировать подсети узлов и подов независимо друг от друга. • Вам нужна поддержка больших кластеров без снижения производительности. • Вы хотите настроить отдельные политики виртуальной сети для модулей pod. |
Взять с собой (BYO) CNI | Кластеры AKS развертываются без предварительно установленного подключаемого модуля CNI. Затем вы можете установить предпочитаемый подключаемый модуль Azure, отличный от Microsoft CNI. См. концепции сети для приложений в службе Azure Kubernetes Service (AKS). Помните, что поддержка Майкрософт не может помочь с проблемами, связанными с CNI в кластерах, развернутых с помощью BYO CNI. | • Вы хотите использовать в AKS тот же плагин CNI, который вы используете в вашей локальной среде Kubernetes. • Вы хотите использовать расширенные функции, доступные в поддерживаемых подключаемых модулях, отличных от Майкрософт. |