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


Перенос пользовательской виртуальной сети

Примечание.

Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

Эта статья относится к:✅ Basic/Standard ✅ Enterprise

В Azure Spring Apps можно развернуть приложения в управляемой виртуальной сети. Эта настройка обеспечивает безопасный обмен данными между приложениями и другими ресурсами в виртуальной сети, например базами данных и другими службами. Приложения контейнеров Azure предлагают аналогичные функции, но с некоторыми различиями. В этой статье рассматриваются эти различия и приводятся рекомендации по созданию сред контейнеров Azure и управлению ими с помощью управляемых виртуальных сетей.

Необходимые компоненты

Создание среды приложений контейнеров Azure с виртуальной сетью

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

В приложениях контейнеров Azure виртуальная сеть инфраструктуры изолирована от виртуальной сети клиента, устраняя необходимость предоставления службы виртуальной сети в соответствии с требованиями в Azure Spring Apps. Поддерживается два типа сред. Дополнительные сведения см. в разделе "Типы" сред контейнеров Azure. При использовании среды профилей рабочей нагрузки необходимо обновить виртуальную сеть, чтобы делегировать подсеть Microsoft.App/environments. Дополнительные сведения см. в разделе "Создание среды" в разделе "Предоставление виртуальной сети для среды приложений контейнеров Azure".

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

Чтобы создать среду приложений контейнеров Azure с виртуальной сетью, используйте следующую команду Azure CLI:

az containerapp env create \
    --resource-group $RESOURCE_GROUP \
    --name $ENVIRONMENT \
    --location "$LOCATION" \
    --internal-only true \
    --infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"

Переменная $INFRASTRUCTURE_SUBNET — это идентификатор ресурса подсети в виртуальной сети клиента, которая предназначена для компонентов инфраструктуры и контейнеров пользовательского приложения. Дополнительные сведения см. в разделе "Создание среды" в разделе "Предоставление виртуальной сети для среды приложений контейнеров Azure".

Выбор использования виртуальной сети клиента в приложениях контейнеров Azure не означает, что ваше приложение-контейнер не может принимать общедоступные запросы. Если вы хотите полностью ограничить доступ только к виртуальной сети клиента, необходимо задать для параметра trueзначение --internal-only . Этот параметр гарантирует, что общедоступные конечные точки не создаются. Дополнительные сведения см. в разделе "Виртуальный IP-адрес сети" в среде "Приложения контейнеров Azure" и "Предоставление виртуальной сети для внутренней среды приложений контейнеров Azure".

Перенос приложения в приложения контейнеров Azure

После создания среды приложений контейнеров Azure следующим шагом является перенос приложения в приложения контейнеров Azure. Дополнительные сведения см. в разделе "Сопоставление концепций". Сведения о переносе каждого приложения контейнеров Azure см. в разделе "Обзор миграции приложений" и выбор образа контейнера или артефакта для процесса миграции.

Изменение параметра входящего трафика

Приложения контейнеров Azure предлагают дополнительные возможности настройки параметров входящего трафика по сравнению с Azure Spring Apps. Дополнительные сведения см. в разделе "Настройка конфигурации входящего трафика" в Azure Spring Apps.

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

Функция Azure Spring Apps Приложения-контейнеры Azure
Сходство сеансов ingressSettings.sessionAffinity ingress.stickySessions.affinity
Максимальный возраст файла cookie сеанса ingressSettings.sessionCookieMaxAge EasyAuthConfig.login.cookieExpiration.timeToExpiration
Серверный протокол ingressSettings.backendProtocol ingress.transport
Проверка подлинности клиента ingressSettings.clientAuth ingress.clientCertificateMode
Время ожидания чтения входящего трафика ingressSettings.readTimeoutInSeconds 240
Время ожидания отправки входящего трафика ingressSettings.sendTimeoutInSeconds 240

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

Приложения контейнеров Azure напрямую session-max-age не поддерживают элемент конфигурации. Однако вы можете управлять длительностью сеанса и поведением с помощью других связанных параметров. Например, можно использовать параметр cookieExpiration в EasyAuth конфигурации для управления продолжительности сеанса проверки подлинности. Этот параметр позволяет указать длительность, в течение которой файл cookie проверки подлинности остается допустимым.

Дополнительные сведения о параметрах входящего трафика, предоставляемых приложениями контейнеров Azure, см. в разделе "Входящий трафик" в приложениях контейнеров Azure.

Как Azure Spring Apps, так и приложения контейнеров Azure предлагают способы создания общедоступных конечных точек. В Azure Spring Apps каждый развертываний имеет уникальный URL-адрес для тестирования во время развертывания сине-зеленого цвета. Аналогичным образом в приложениях контейнеров Azure метка редакции предоставляет уникальный URL-адрес, который можно использовать для маршрутизации трафика к определенной редакции, назначенной метке. Дополнительные сведения см. в разделе "Метки" обновления и развертывания изменений в приложениях контейнеров Azure.

В Azure Spring Apps система автоматически пробует порт 1025 для приложений в плане "Базовый" или "Стандартный" и "порт 8080 " для приложений в плане Enterprise. Эти пробы помогают определить, готов ли контейнер приложения принять трафик. С другой стороны, приложения контейнеров Azure обеспечивают большую гибкость, позволяя пользователям указывать порт пробы --target-port самостоятельно с помощью параметра. Этот параметр дает пользователям больше контроля над конфигурацией и поведением приложения.

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

az containerapp ingress update \
    --resource-group <resource-group> \
    --name <app-name> \
    --target-port <target-port>

В следующем списке описываются все параметры:

  • --name: имя приложения-контейнера.
  • --resource-group: группа ресурсов, содержащая приложение контейнера.
  • --target-port: порт, на котором прослушивается приложение контейнера.

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

Изменение параметра исходящего трафика (UDR)

Azure Spring Apps и Приложения контейнеров Azure предлагают способы управления исходящим трафиком с помощью функции собственной таблицы маршрутов — определяемых пользователем маршрутов (UDR) с Брандмауэр Azure. Однако обратите внимание на следующие различия:

  • Нет необходимости добавлять назначение ролей для поставщика ресурсов azure Container Apps.
  • Выделенная подсеть для подсети среды выполнения службы "Приложения контейнеров Azure" не требуется.
  • Приложения контейнеров Azure предоставляют более гибкий способ поддержки UDR. В приложениях контейнеров Azure нет необходимости явно задать параметр --outbound-typeuserDefinedRouting при подготовке Azure Spring Apps.

Дополнительные сведения см. в разделе "Маршруты" конфигурации подсети с помощью интерфейса командной строки и управления исходящим трафиком в приложениях контейнеров Azure с определяемыми пользователем маршрутами.

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

Чтобы создать среду приложений контейнеров Azure, которая поддерживает UDR, используйте следующую команду:

az containerapp env create \
    --resource-group $RESOURCE_GROUP \
    --name $ENVIRONMENT \
    --location "$LOCATION" \
    --enable-workload-profiles \
    --infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"

Задайте параметр --enable-workload-profiles для true включения профилей рабочих нагрузок.

Защита виртуальных сетей с помощью групп безопасности сети

Как Azure Spring Apps, так и приложения контейнеров Azure обеспечивают надежную поддержку, что позволяет эффективно управлять и защищать исходящий трафик с помощью групп безопасности сети (NSG). Основные различия лежат в конкретных конфигурациях.

Дополнительные сведения см. в статье "Защита пользовательской виртуальной сети в приложениях контейнеров Azure с помощью групп безопасности сети".

Изменение параметров DNS

Как Azure Spring Apps, так и приложения контейнеров Azure поддерживают использование пользовательских DNS-серверов в виртуальной сети клиента. Рекомендуется добавить IP-адрес 168.63.129.16 Azure DNS в качестве вышестоящего DNS-сервера в пользовательский DNS-сервер.

Дополнительные сведения см. в разделе "Сеть" в среде "Приложения контейнеров Azure".

В настоящее время приложения контейнеров Azure в типе среды только для потребления не поддерживают изменение параметров DNS по мере использования Azure Spring Apps. Дополнительные сведения см. в статье Об изменениях параметров DNS Flush в Azure Spring Apps. Однако тип профиля рабочей нагрузки среды автоматически обновляет параметры DNS каждые 5 минут.

Приложения контейнеров Azure поддерживают развертывание с частной зоной DNS. Дополнительные сведения см. в разделе "Развертывание с помощью частного DNS-раздела"Предоставление виртуальной сети в среде приложений контейнеров Azure". Этот подход обеспечивает более гибкий способ связывания частной зоны DNS, чем использование Azure Spring Apps. Дополнительные сведения см. в разделе "Связывание частной зоны DNS с Azure Spring Apps" приложения в Azure Spring Apps в виртуальной сети.

Доступ к приложению в приложениях контейнеров Azure в виртуальной сети клиента

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