Основные понятия сети для приложений в Служба Azure Kubernetes (AKS)
В процессе разработки, опирающемся на использование контейнеров и микрослужб, компоненты приложения должны слаженно работать вместе для обработки задач. Kubernetes предоставляет различные ресурсы для обеспечения этой слаженной работы:
- К приложениям можно подключиться и предоставить внутренний или внешний доступ.
- Имеется возможность создавать приложения с высоким уровнем доступности путем распределения нагрузки.
- Вы можете ограничить поток сетевого трафика в модули pod и узлы, чтобы повысить безопасность.
- Вы можете настроить трафик входящего трафика для завершения SSL/TLS или маршрутизации нескольких компонентов для более сложных приложений.
В этой статье приводится обзор ключевых понятий сети в приложениях в AKS.
Основы сети Kubernetes
Kubernetes использует виртуальный сетевой уровень для управления доступом внутри и между приложениями или их компонентами:
Узлы Kubernetes и виртуальная сеть: узлы Kubernetes подключены к виртуальной сети. Эта настройка позволяет модулям pod (базовым единицам развертывания в Kubernetes) иметь как входящие, так и исходящие подключения.
Компонент Kube-proxy: kube-proxy выполняется на каждом узле и отвечает за предоставление необходимых сетевых функций.
Что касается конкретных функциональных возможностей Kubernetes:
- Подсистема балансировки нагрузки. Для равномерного распределения сетевого трафика между различными ресурсами можно использовать подсистему балансировки нагрузки.
- Контроллеры входящего трафика: это упрощает маршрутизацию уровня 7, что является важным для направления трафика приложения.
- Управление трафиком исходящего трафика: Kubernetes позволяет управлять исходящим трафиком с узлов кластера и управлять ими.
- Политики сети: эти политики обеспечивают меры безопасности и фильтрацию сетевого трафика в модулях pod.
В контексте платформы Azure:
- Azure упрощает виртуальные сети для кластеров AKS (Служба Azure Kubernetes).
- Создание подсистемы балансировки нагрузки Kubernetes в Azure одновременно настраивает соответствующий ресурс подсистемы балансировки нагрузки Azure.
- При открытии сетевых портов для модулей pod Azure автоматически настраивает необходимые правила группы безопасности сети.
- Azure также может управлять внешними конфигурациями DNS для маршрутизации приложений HTTP, так как устанавливаются новые маршруты входящего трафика.
Виртуальные сети Azure
В AKS можно развернуть кластер, использующий одну из следующих сетевых моделей:
- Наложенная сетевая модель: наложение сети — это наиболее распространенная сетевая модель, используемая в Kubernetes. Модули Pod получают IP-адрес из частной, логически отделяемой CIDR от подсети виртуальной сети Azure, в которой развертываются узлы AKS. Эта модель обеспечивает более простую, улучшенную масштабируемость по сравнению с плоской сетевой моделью.
- Модель неструктурированных сетей: модель плоской сети в AKS назначает IP-адреса модулям pod из подсети из той же виртуальной сети Azure, что и узлы AKS. Любой трафик, покидающий кластеры, не является SNAT, и IP-адрес pod напрямую предоставляется для назначения. Эта модель может быть полезна для таких сценариев, как предоставление IP-адресов pod внешним службам.
Дополнительные сведения о сетевых моделях в AKS см. в статье CNI Networking in AKS.
Управление исходящим трафиком (исходящего трафика)
Кластеры AKS развертываются в виртуальной сети и имеют исходящие зависимости от служб за пределами этой виртуальной сети. Эти исходящие зависимости почти полностью определены с полными доменными именами (FQDN). По умолчанию кластеры AKS имеют неограниченный исходящий (исходящий) доступ к Интернету, что позволяет узлам и службам, которые вы запускаете для доступа к внешним ресурсам по мере необходимости. При желании можно ограничить исходящий трафик.
Дополнительные сведения см. в разделе "Управление исходящим трафиком" для узлов кластера в AKS.
Группы безопасности сети
Группа безопасности сети фильтрует трафик для виртуальных машин, например для узлов AKS. При создании служб, таких как LoadBalancer, платформа Azure автоматически настраивает все необходимые правила группы безопасности сети.
Для фильтрации трафика для модулей pod в кластере AKS нет необходимости настраивать групповые правила безопасности сети вручную. Вы можете определить все необходимые порты и переадресацию в рамках манифестов службы Kubernetes и позволить платформе Azure создавать или обновлять соответствующие правила.
Чтобы автоматически применять правила фильтрации трафика к модулям pod, вы также можете использовать политики сети.
Дополнительные сведения см. в статье "Фильтрация сетевого трафика групп безопасности сети".
Политики сети
По умолчанию все контейнеры pod в кластере AKS могут отправлять и получать трафик без ограничений. Для повышения безопасности вы можете определить правила, управляющие потоком трафика, например:
- Внутренние приложения предоставляются только для необходимых интерфейсных служб.
- Компоненты базы данных доступны только для уровней приложений, которые к ним подключаются.
Политика сети — это функция Kubernetes, которая позволяет контролировать поток трафика между контейнерами pod. Вы можете разрешить или запретить трафик в pod на основе параметров, таких как назначенные метки, пространство имен или порт трафика. Несмотря на то что группы безопасности сети лучше подходят для узлов AKS, сетевые политики — это более подходящий и более тесно связанный с облаком способ управления потоком трафика для модулей Pod. Поскольку контейнеры pod динамически создаются в кластере AKS, необходимые политики сети могут применяться автоматически.
Дополнительные сведения см. в статье Secure traffic between pods using network policies in Azure Kubernetes Service (AKS) (Защита трафика между контейнерами pod с использованием политик сети в Azure Kubernetes Service (AKS)).
Следующие шаги
Чтобы приступить к работе с сетями AKS, создайте и настройте кластер AKS с собственными диапазонами IP-адресов с помощью наложения Azure CNI или Azure CNI.
Рекомендации и описания лучших практик представлены в статье Рекомендации по сетевому подключению и безопасности в AKS.
Дополнительные сведения о ключевых понятиях Kubernetes и AKS приведены в следующих статьях:
Azure Kubernetes Service