Предоставление виртуальной сети для внутренней среды Контейнеров приложений Azure
В следующем примере показано, как создать среду Контейнеров приложений в существующей виртуальной сети.
Войдите на портал Azure.
Создание приложения-контейнера
Чтобы создать приложение-контейнер, откройте домашнюю страницу портала Azure.
- Введите Приложения-контейнеры в строке поиска вверху.
- В результатах поиска выберите Приложения-контейнеры.
- Выберите кнопку Создать.
Вкладка "Основные сведения"
На вкладке Основы выполните следующие действия.
Введите приведенные ниже значения в разделе Сведения о проекте.
Параметр Действие Отток подписок Выберите свою подписку Azure. Группа ресурсов Выберите Создать и введите my-container-apps. Имя приложения-контейнера Введите my-container-app. Источник развертывания Выберите образ контейнера.
Создать среду
Затем создайте среду для приложения-контейнера.
Выберите подходящий регион.
Параметр Значение Область/регион Выберите Центральная часть США. В поле Создание среды Контейнеров приложений 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"
Теперь создайте экземпляр виртуальной сети, чтобы связаться со средой Контейнеров приложений. В виртуальной сети должно быть две подсети, доступные для экземпляра приложений-контейнеров.
Примечание.
Префикс адреса подсети сети требует минимального диапазона /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/23
При использовании среды профилей рабочей нагрузки необходимо обновить виртуальную сеть, чтобы делегировать подсеть 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 \
--internal-only
В таблице ниже описаны параметры, используемые для containerapp env create
.
Параметр | Описание |
---|---|
name |
Имя среды приложений-контейнеров. |
resource-group |
Имя группы ресурсов. |
logs-workspace-id |
(Необязательно) Идентификатор существующей рабочей области Log Analytics. Если опущено, для вас создается рабочая область. |
logs-workspace-key |
Секрет клиента Log Analytics. Обязателен при использовании существующей рабочей области. |
location |
Расположение Azure, в котором будет развернута среда. |
infrastructure-subnet-resource-id |
Идентификатор ресурса подсети для компонентов инфраструктуры и контейнеров пользовательских приложений. |
internal-only |
(Необязательно) Среда не использует общедоступный статический IP-адрес, а только внутренние IP-адреса, доступные в настраиваемой виртуальной сети. (Требуется идентификатор ресурса подсети инфраструктуры). |
После создания среды с использованием пользовательской виртуальной сети в этой среде с помощью команды az containerapp create
можно развернуть приложения-контейнеры.
Дополнительные настройки
Вы можете развернуть частную службу доменных имен (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 автоматически создает значения диапазона на основе диапазона адресов виртуальной сети, чтобы избежать конфликтов.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, можете удалить экземпляр Контейнеров приложений Azure и все связанные службы, удалив группу ресурсов my-container-apps. При удалении этой группы ресурсов группа ресурсов автоматически удаляет группу ресурсов, созданную службой приложений контейнеров, содержащей пользовательские сетевые компоненты.
Внимание
Следующая команда удаляет указанную группу ресурсов и все ресурсы, содержащиеся в ней. Если ресурсы вне области этого руководства существуют в указанной группе ресурсов, они также будут удалены.
az group delete --name $RESOURCE_GROUP
Дополнительные ресурсы
- Чтобы использовать входящий трафик в области виртуальной сети, необходимо настроить DNS.