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


Сетевое взаимодействие в среде приложений контейнеров Azure

Контейнерные приложения Azure работают в контексте среды, которая работает в собственной виртуальной сети. При создании среды существует несколько ключевых аспектов, которые определяют сетевые функции контейнерных приложений.

Выбор среды

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

Тип среды Поддерживаемые типы планов Описание
Профили рабочей нагрузки Выделенное потребление Поддерживает определяемые пользователем маршруты (UDR), исходящие данные через шлюз NAT и создание частных конечных точек в среде приложения-контейнера. Минимальный обязательный размер подсети — /27.
Только потребление Потребление Не поддерживает определяемые пользователем маршруты (UDR), исходящий трафик через шлюз NAT, пиринг через удаленный шлюз или другие пользовательские схемы исходящего трафика. Минимальный обязательный размер подсети — /23.

Дополнительные сведения см. в разделе "Типы среды".

Тип виртуальной сети

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

Используйте существующую виртуальную сеть, если вам нужны такие функции сети Azure:

  • группы сетевой безопасности;
  • Интеграция Шлюза приложений
  • Интеграция брандмауэра Azure
  • Управление исходящим трафиком из приложения-контейнера
  • Доступ к ресурсам за частными конечными точками в виртуальной сети

Если вы используете существующую виртуальную сеть, необходимо предоставить подсеть, выделенную исключительно для развернутой среды приложения-контейнера. Эта подсеть недоступна другим службам. Дополнительные сведения см. в разделе "Конфигурация виртуальной сети".

Уровень доступности

Вы можете настроить, разрешает ли приложение-контейнер общедоступный вход или входящий трафик только из виртуальной сети на уровне среды.

Уровень доступности Описание
Внешний. Позволяет приложению-контейнеру принимать общедоступные запросы. Внешние среды развертываются с виртуальным IP-адресом на внешнем, общедоступном IP-адресе.
Внутренняя Внутренние среды не имеют общедоступных конечных точек и развертываются с виртуальным IP (VIP), сопоставленным с внутренним IP-адресом. Внутренняя конечная точка — это внутренняя подсистема балансировки нагрузки Azure (ILB), а IP-адреса выдаются из списка частных IP-адресов существующей виртуальной сети.

Доступ из общедоступной сети

Параметр доступа к общедоступной сети определяет, доступна ли среда приложений-контейнеров из общедоступного Интернета. Можно ли изменить этот параметр после создания среды, зависит от виртуальной IP-конфигурации среды. В следующей таблице показаны допустимые значения для доступа к общедоступной сети в зависимости от виртуальной IP-конфигурации вашей среды.

Виртуальный IP-адрес Поддерживаемый доступ к общедоступной сети Описание
Внешний. Enabled, Disabled Среда приложений-контейнеров была создана с помощью конечной точки, доступной для Интернета. Параметр доступа к общедоступной сети определяет, принимает ли трафик через общедоступную конечную точку или только через частные конечные точки, а параметр доступа к общедоступной сети можно изменить после создания среды.
Внутренняя Disabled Среда приложений-контейнеров была создана без конечной точки, доступной в Интернете. Параметр доступа к общедоступной сети не может быть изменен, чтобы принять трафик из Интернета.

Чтобы создать частные конечные точки в среде приложения контейнеров Azure, необходимо задать Disabledдля общедоступного сетевого доступа.

Политики сети Azure осуществляются с помощью флага доступа к публичной сети.

Конфигурация входного доступа

В разделе ingress можно настроить следующие параметры:

  • Ingress: Вы можете включить или отключить функцию Ingress для вашего контейнерного приложения.

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

  • Правила разделения трафика: можно определить правила разделения трафика между различными версиями приложения. Дополнительные сведения см. в статье Разделение трафика.

Для получения дополнительной информации о различных сетевых сценариях см. Ingress в Azure Container Apps.

Функции для входящих запросов

Функция Узнайте, как
Вход

Настройка ингресса
Управление маршрутизацией внешнего и внутреннего трафика в приложение-контейнер.
Премиальный входящий трафик Настройте дополнительные параметры входящего трафика, такие как поддержка профиля рабочей нагрузки для входящего трафика и времени ожидания простоя.
Ограничения IP-адресов Ограничить входящий трафик в приложение-контейнер по IP-адресу.
Аутентификация на основе сертификата клиента Настройте проверку подлинности сертификата клиента (также называемую взаимный TLS или mTLS) для приложения-контейнера.
Разделение трафика

Развертывание Blue/Green
Разделение входящего трафика между активными редакциями приложения-контейнера.
Сходство сеансов Перенаправьте все запросы от клиента к одной реплике приложения-контейнера.
Общий доступ к ресурсам между источниками (CORS) Включите CORS для приложения-контейнера, которое позволяет запрашивать запросы, сделанные через браузер, в домен, который не соответствует источнику страницы.
Маршрутизация на основе пути Используйте правила для маршрутизации запросов в разные приложения-контейнеры в вашей среде в зависимости от пути каждого запроса.
Виртуальные сети Настройте виртуальную сеть для среды приложения контейнера.
DNS Настройте DNS для виртуальной сети приложения контейнера.
Приватная конечная точка Используйте частную конечную точку для безопасного доступа к приложению контейнера Azure без предоставления доступа к общедоступному Интернету.
Интеграция с Azure Front Door Подключитесь непосредственно из Azure Front Door к приложениям контейнеров Azure с помощью приватного канала вместо общедоступного Интернета.

Функции для исходящих запросов

Функция Узнайте, как
Использование брандмауэра Azure Используйте брандмауэр Azure для управления исходящим трафиком из приложения контейнера.
Виртуальные сети Настройте виртуальную сеть для среды приложения контейнера.
Защита существующей виртуальной сети с помощью группы безопасности сети Обезопасьте среду контейнерного приложения (VNet) с помощью группы безопасности сети (NSG).
Интеграция шлюза NAT Используйте шлюз NAT для упрощения исходящего подключения к Интернету в виртуальной сети в среде профилей рабочих нагрузок.

Учебники

Туториал Узнайте, как
Использование виртуальной сети Используйте виртуальную сеть.
Настройка шлюза приложений WAF Настройка шлюза приложений WAF.
Включение определяемых пользователем маршрутов (UDR) Включение определяемых пользователем маршрутов (UDR).
Использование взаимной безопасности уровня транспорта (mTLS) Создайте приложение mTLS в приложениях контейнеров Azure.
Использование частной конечной точки Используйте частную конечную точку для безопасного доступа к приложению контейнера Azure без предоставления доступа к общедоступному Интернету.
Интеграция с Azure Front Door Подключитесь непосредственно из Azure Front Door к приложениям контейнеров Azure с помощью приватного канала вместо общедоступного Интернета.

Безопасность среды

Схема того, как полностью заблокировать сеть для контейнерных приложений.

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

Поведение прокси-сервера http edge

Приложения контейнеров Azure используют пограничный HTTP-прокси, который завершает протокол TLS и направляет запросы к каждому приложению.

Приложения HTTP масштабируются на основе количества HTTP-запросов и подключений. Envoy направляет внутренний трафик внутри кластеров.

Подчиненные подключения поддерживают протокол HTTP1.1 и HTTP2 и Envoy автоматически обнаруживает и обновляет подключения, если клиентское подключение требует обновления.

Исходящие подключения определяются путем задания transport свойства объекта ingress .

Зависимости портала

Для каждого приложения в приложениях контейнеров Azure существует два URL-адреса.

Среда выполнения контейнерных приложений изначально создает полное доменное имя (FQDN), используемое для доступа к приложению. См. URL-адрес приложения в окне Обзор вашего приложения-контейнера в портале Azure, чтобы узнать полное доменное имя (FQDN) вашего приложения-контейнера.

Для вас также создается второй URL-адрес. Это расположение предоставляет доступ к службе потоковой передачи журналов и консоли. При необходимости может потребоваться добавить https://azurecontainerapps.dev/ в список разрешений брандмауэра или прокси-сервера.

Порты и IP-адреса

Следующие порты открыты для входящих подключений.

Протокол Порты
HTTP/HTTPS 80, 443

IP-адреса разбиваются на следующие типы:

Тип Описание
Общедоступный входящий IP-адрес Используется для трафика приложений во внешнем развертывании и трафика управления как во внутренних, так и во внешних развертываниях.
Исходящий общедоступный IP-адрес Используется в качестве IP-адреса «отправителя» для исходящих подключений, которые покидают виртуальную сеть. Эти подключения не маршрутизируются через VPN. Исходящие IP-адреса могут меняться со временем. Использование шлюза NAT или другого прокси-сервера для исходящего трафика из среды приложений контейнеров поддерживается только в среде профилей рабочих нагрузок.
IP-адрес внутренней подсистемы балансировки нагрузки Этот адрес существует только во внутренней среде.

Следующие шаги