Предоставление виртуальной сети для внешней среды Контейнеров приложений Azure
В следующем примере показано, как создать среду Контейнеров приложений в существующей виртуальной сети.
Войдите на портал Azure.
Создание приложения-контейнера
Чтобы создать приложение-контейнер, откройте домашнюю страницу портала Azure.
- Введите Приложения-контейнеры в строке поиска вверху.
- В результатах поиска выберите Приложения-контейнеры.
- Выберите кнопку Создать.
Вкладка "Основные сведения"
На вкладке Основы выполните следующие действия.
Введите приведенные ниже значения в разделе Сведения о проекте.
Параметр Действие Отток подписок Выберите свою подписку Azure. Группа ресурсов Выберите Создать и введите my-container-apps. Имя приложения-контейнера Введите my-container-app. Источник развертывания Выберите образ контейнера.
Создать среду
Затем создайте среду для приложения-контейнера.
Выберите подходящий регион.
Параметр Значение Область/регион Выберите Центральная часть США. В поле Создание среды Контейнеров приложений Azure выберите Создать.
На странице Создание среды Контейнеров приложений Azure на вкладке Основные сведения введите следующие значения:
Параметр Значение Имя среды Введите my-environment. Тип среды Выберите профили рабочей нагрузки. Избыточность между зонами Выберите Отключено. Перейдите на вкладку Мониторинг, чтобы создать рабочую область Log Analytics.
Выберите Azure Log Analytics в качестве назначения журналов.
В поле Рабочая область Log Analytics нажмите Создать и введите приведенные ниже значения.
Параметр Значение Имя. Введите my-container-apps-logs. Поле "Расположение " предварительно заполнено центральной частью США .
Нажмите ОК.
Примечание.
Вы можете использовать существующую виртуальную сеть, но выделенная подсеть с диапазоном /23
CIDR или больше требуется для использования с приложениями-контейнерами при использовании только архитектуры потребления. При использовании среды /27
профилей рабочей нагрузки требуется или больше. Дополнительные сведения о размерах подсети см. в обзоре сетевой архитектуры.
Перейдите на вкладку Сеть, чтобы создать виртуальную сеть.
Выберите Да рядом с пунктом Использовать собственную виртуальную сеть.
Рядом с полем Виртуальная сеть выберите ссылку Создать и введите приведенное ниже значение.
Параметр Значение Имя. Введите my-custom-vnet. Выберите кнопку ОК.
Рядом с полем Подсеть инфраструктуры выберите ссылку Создать и введите следующие значения:
Параметр Значение Имя подсети Введите infrastructure-subnet. блок адресов виртуальной сети; Оставьте значения по умолчанию. блок адресов подсети; Оставьте значения по умолчанию. Выберите кнопку ОК.
В поле Виртуальный IP-адрес выберите Внешний.
Нажмите кнопку создания.
Развертывание приложения-контейнера
Выберите "Рецензирование" и создайте его в нижней части страницы.
Если ошибки не обнаружены, станет доступна кнопка Создать.
При наличии ошибок все вкладки с ошибками будут помечены красной точкой. Перейдите на соответствующую вкладку. Поля, содержащие ошибку, выделены красным цветом. После устранения всех ошибок выберите Проверить и создать еще раз.
Нажмите кнопку создания.
Отобразится страница с сообщением Выполняется развертывание. После успешного завершения развертывания появится сообщение: развертывание завершено.
Необходимые компоненты
- Учетная запись Azure с активной подпиской.
- Если у вас нет учетной записи, вы можете создать ее бесплатно.
- Установите Azure CLI версии 2.28.0 или выше.
Настройка
Чтобы войти в Azure из ИНТЕРФЕЙСА командной строки, выполните следующую команду и следуйте инструкциям, чтобы завершить процесс проверки подлинности.
az login
Чтобы убедиться, что вы используете последнюю версию интерфейса командной строки, выполните команду обновления.
az upgrade
Затем установите или обновите расширение "Приложения контейнеров Azure" для интерфейса командной строки.
Если при выполнении az containerapp
команд в Azure CLI или командлетах из модуля Azure PowerShell возникают ошибки о отсутствующих параметрах Az.App
, убедитесь, что установлена последняя версия расширения "Приложения контейнеров Azure".
az extension add --name containerapp --upgrade
Примечание.
Начиная с мая 2024 г. расширения Azure CLI больше не поддерживают предварительные версии функций по умолчанию. Чтобы получить доступ к функциям предварительной версии контейнерных приложений, установите расширение "Приложения контейнеров" с --allow-preview true
помощью .
az extension add --name containerapp --upgrade --allow-preview true
Теперь, когда установлено текущее расширение или модуль, зарегистрируйте Microsoft.App
пространства имен и Microsoft.OperationalInsights
пространств имен.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Настройка переменных среды
Задайте следующие переменные среды. Замените <ЗАПОЛНИТЕЛИ вашими значениями> :
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
создание группы ресурсов Azure;
Создайте группу ресурсов для упорядочивания служб, связанных с развертыванием приложения контейнера.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Создать среду
Среда в Azure Container Apps создает безопасную границу вокруг группы приложений-контейнеров. Развертываемые в одной среде приложения-контейнеры развертываются в одной виртуальной сети и записывают журналы в одну рабочую область Log Analytics.
Microsoft.ContainerService
Зарегистрируйте поставщика.
az provider register --namespace Microsoft.ContainerService
Объявите переменную для хранения имени виртуальной сети.
VNET_NAME="my-custom-vnet"
Теперь создайте виртуальную сеть Azure, чтобы связать ее со средой Контейнеров приложений. Эта виртуальная сеть должна иметь подсеть, доступную для развертывания среды.
Примечание.
Префикс адреса подсети сети требует минимального /23
диапазона CIDR для использования с приложениями-контейнерами при использовании только архитектуры потребления. При использовании архитектуры /27
профилей рабочих нагрузок требуется или больше. Дополнительные сведения о размерах подсети см. в обзоре сетевой архитектуры.
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--location $LOCATION \
--address-prefix 10.0.0.0/16
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--address-prefixes 10.0.0.0/21
При использовании среды профилей рабочей нагрузки необходимо обновить виртуальную сеть, чтобы делегировать подсеть Microsoft.App/environments
. Это делегирование неприменимо к среде только для потребления.
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--delegations Microsoft.App/environments
С помощью созданной виртуальной сети можно получить идентификатор для подсети инфраструктуры.
INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`
Наконец, создайте среду Контейнеров приложений, указав развернутую ранее пользовательскую виртуальную сеть.
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET
В таблице ниже описаны параметры, используемые для containerapp env create
.
Параметр | Описание |
---|---|
name |
Имя среды приложений-контейнеров. |
resource-group |
Имя группы ресурсов. |
location |
Расположение Azure, в котором будет развернута среда. |
infrastructure-subnet-resource-id |
Идентификатор ресурса подсети для компонентов инфраструктуры и контейнеров пользовательских приложений. |
С помощью среды, созданной с помощью пользовательской виртуальной сети, теперь можно развернуть приложения-контейнеры в среде.
Дополнительные настройки
Вы можете развернуть частную службу доменных имен (DNS) и определить настраиваемые диапазоны IP-адресов сети для среды Контейнеров приложений.
Развертывание с использованием частной DNS
Если вы хотите развернуть приложение-контейнер с частной DNS, выполните приведенные ниже команды.
Сначала извлеките из среды идентифицируемую информацию.
ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`
Затем настройте частную службу DNS.
az network private-dns zone create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--virtual-network $VNET_ID \
--zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
--resource-group $RESOURCE_GROUP \
--record-set-name "*" \
--ipv4-address $ENVIRONMENT_STATIC_IP \
--zone-name $ENVIRONMENT_DEFAULT_DOMAIN
Параметры сети
Существует три необязательных сетевых параметра, которые можно определить при вызове containerapp env create
. Используйте эти параметры, если у вас есть пиринговая виртуальная сеть с отдельными диапазонами адресов. Явно настраивая эти диапазоны, гарантирует, что адреса, используемые средой "Приложения контейнеров", не конфликтуют с другими диапазонами в сетевой инфраструктуре.
Либо укажите значения для всех трех этих свойств, либо не указывайте ни одного из них. Если они не указаны, то для вас создаются значения.
Параметр | Описание |
---|---|
platform-reserved-cidr |
Диапазон адресов, используемый внутренне для служб инфраструктуры среды. Должен иметь размер между /23 и /12 при использовании только архитектуры потребления |
platform-reserved-dns-ip |
IP-адрес из диапазона platform-reserved-cidr , используемого для внутреннего DNS-сервера. Этот адрес не может быть первым адресом в диапазоне или адресом сети. Например, если для platform-reserved-cidr задано значение 10.2.0.0/16 , то platform-reserved-dns-ip не может иметь значение 10.2.0.0 (это адрес сети) или 10.2.0.1 (инфраструктура резервирует использование этого IP-адреса). В этом примере первым IP-адресом, пригодным для использования в DNS, будет 10.2.0.2 . |
docker-bridge-cidr |
Диапазон адресов, назначенный сети моста Docker. Этот диапазон должен иметь размер от /28 до /12 . |
Диапазоны адресов
platform-reserved-cidr
иdocker-bridge-cidr
не могут конфликтовать друг с другом или с диапазонами любой из предоставленных подсетей. Кроме того, убедитесь, что эти диапазоны не конфликтуют с любым другим диапазоном адресов в виртуальной сети.Если эти свойства не предоставлены, CLI автоматически создает значения диапазона на основе диапазона адресов виртуальной сети, чтобы избежать конфликтов.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, можно удалить группу ресурсов my-container-apps . При этом удаляется экземпляр приложений контейнеров Azure и все связанные службы. Она также удаляет группу ресурсов, созданную службой "Приложения контейнеров", и которая содержит пользовательские сетевые компоненты.
Внимание
Следующая команда удаляет указанную группу ресурсов и все ресурсы, содержащиеся в ней. Если ресурсы вне области этого руководства существуют в указанной группе ресурсов, они также будут удалены.
az group delete --name $RESOURCE_GROUP