Сеть в среде Контейнеры приложений Azure

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

Выбор среды

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Включите или отключите входящий трафик для контейнерного приложения.

  • Разрешить трафик к вашему контейнерному приложению из любого источника или только из той же среды Container Apps.

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

Дополнительные сведения о сетевых сценариях см. в разделе Ingress в Контейнеры приложений Azure.

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

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

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

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

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

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

Статьи с инструкциями

Статья Узнайте, как
Предоставление виртуальной сети в среде приложений контейнеров Azure Используйте виртуальную сеть.
Защитите Контейнеры приложений Azure с помощью брандмауэра веб-приложений в Application Gateway Настройте Брандмауэр веб-приложений Azure на Шлюз приложений Azure.
Управление исходящим трафиком в Контейнеры приложений Azure с помощью пользовательских маршрутов Включите маршруты, определяемые пользователем.
Использование mTLS в Контейнеры приложений Azure Создание приложения mTLS в контейнерных приложениях.
Использовать частную конечную точку с Контейнеры приложений Azure средой Используйте частную конечную точку для безопасного доступа к приложению-контейнеру без предоставления доступа к общедоступному Интернету.
Создайте приватную ссылку для приложения-контейнера с помощью Azure Front Door Подключитесь непосредственно из Azure Front Door к приложению-контейнеру с помощью приватного канала вместо общедоступного Интернета.

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

Схема защиты сети для контейнерных приложений.

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

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

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

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

Исходящие подключения поддерживают HTTP/1.1 и HTTP/2. Envoy автоматически обнаруживает и обновляет подключения, если клиентское подключение требует обновления.

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

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

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

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

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

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

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

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

IP-адреса имеют следующие типы:

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