Перенос пользовательской виртуальной сети
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья относится к:✅ Basic/Standard ✅ Enterprise
В Azure Spring Apps можно развернуть приложения в управляемой виртуальной сети. Эта настройка обеспечивает безопасный обмен данными между приложениями и другими ресурсами в виртуальной сети, например базами данных и другими службами. Приложения контейнеров Azure предлагают аналогичные функции, но с некоторыми различиями. В этой статье рассматриваются эти различия и приводятся рекомендации по созданию сред контейнеров Azure и управлению ими с помощью управляемых виртуальных сетей.
Необходимые компоненты
- Активная подписка Azure. Если у вас нет учетной записи Azure, вы можете создать бесплатную учетную запись Azure.
- Azure CLI.
Создание среды приложений контейнеров 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-type
userDefinedRouting
при подготовке 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 поддерживает эти функции, как описано в следующих статьях: