Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как управлять профилями рабочей нагрузки в среде приложений контейнеров с помощью Azure CLI.
Создание приложения-контейнера в профиле
По умолчанию среда "Приложения контейнеров" создается с управляемой виртуальной сетью, которая автоматически создается для вас. Созданные виртуальные сети недоступны, так как они создаются в клиенте Microsoft.
Кроме того, можно создать среду с пользовательской виртуальной сетью. Используйте этот параметр, если вам нужна какая-либо из следующих функций:
- Определяемые пользователем маршруты
- Интеграция с Шлюз приложений
- группы сетевой безопасности;
- Взаимодействие с ресурсами через частные конечные точки в вашей виртуальной сети
Создайте среду приложений-контейнеров.
az containerapp env create \ --resource-group "<RESOURCE_GROUP>" \ --name "<NAME>" \ --location "<LOCATION>"Выполнение этой команды может занять до 10 минут.
Проверьте состояние среды. Следующая команда сообщает, успешно ли создана среда.
az containerapp env show \ --name "<ENVIRONMENT_NAME>" \ --resource-group "<RESOURCE_GROUP>"provisioningStateдолжен сообщитьSucceeded, прежде чем вы перейдете к следующей команде.Создайте новое приложение контейнера.
az containerapp create \ --resource-group "<RESOURCE_GROUP>" \ --name "<CONTAINER_APP_NAME>" \ --target-port 80 \ --ingress external \ --image mcr.microsoft.com/k8se/quickstart:latest \ --environment "<ENVIRONMENT_NAME>" \ --workload-profile-name "Consumption"
Эта команда развертывает приложение в встроенном профиле рабочей нагрузки потребления. Если вы хотите создать приложение в выделенном профиле, сначала необходимо добавить профиль в среду.
Эта команда создает новое приложение в среде с помощью определенного профиля рабочей нагрузки.
При создании среды с пользовательской виртуальной сетью у вас есть полный контроль над конфигурацией виртуальной сети. Этот элемент управления позволяет реализовать следующие функции:
- Определяемые пользователем маршруты
- Интеграция с Шлюз приложений
- группы сетевой безопасности;
- Взаимодействие с ресурсами через приватные конечные точки в виртуальной сети
Чтобы создать среду приложений контейнеров, используйте следующие команды.
Создайте виртуальную сеть.
az network vnet create \ --address-prefixes 13.0.0.0/23 \ --resource-group "<RESOURCE_GROUP>" \ --location "<LOCATION>" \ --name "<VNET_NAME>"Создайте подсеть, делегированную для
Microsoft.App/environments.az network vnet subnet create \ --address-prefixes 13.0.0.0/23 \ --delegations Microsoft.App/environments \ --name "<SUBNET_NAME>" \ --resource-group "<RESOURCE_GROUP>" \ --vnet-name "<VNET_NAME>" \ --query "id"Скопируйте значение идентификатора и вставьте его в следующую команду.
Делегирование
Microsoft.App/environmentsтребуется, чтобы предоставить среде выполнения Container Apps необходимые права управления виртуальной сетью для запуска профилей рабочей нагрузки в среде Container Apps.Для подсети можно указать размер вплоть до
/27CIDR (32 IP-адреса, 8 из которых зарезервированы). Если вы собираетесь указать/27CIDR-префикс, обратите внимание на следующие пункты:Для инфраструктуры приложений контейнеров зарезервировано 11 IP-адресов. Таким образом,
/27CIDR имеет не более 21 доступных IP-адресов.IP-адреса распределяются по-разному в планах Consumption и Dedicated:
Только потребление Выделенный Для каждой реплики требуется один IP-адрес. Пользователи не могут иметь приложения с более чем 21 репликами во всех приложениях. Для развертывания без простоев требуется вдвое больше IP-адресов, поскольку предыдущая версия продолжает работать, пока новая версия не будет успешно развернута. Для каждого экземпляра (узла виртуальной машины) требуется один IP-адрес. В этих профилях рабочей нагрузки может быть до 21 экземпляров, а также сотни или более реплик, работающих в этих профилях рабочей нагрузки.
Создайте среду приложений-контейнеров.
Примечание.
Вы можете настроить, разрешает ли приложение-контейнер общедоступный вход или только входящий трафик из виртуальной сети на уровне среды. Чтобы ограничить входящий трафик только виртуальной сетью
--internal-only, установите флаг.az containerapp env create \ --resource-group "<RESOURCE_GROUP>" \ --name "<NAME>" \ --location "<LOCATION>"Выполнение этой команды может занять до 10 минут.
Проверьте состояние среды. Следующая команда сообщает, успешно ли создана среда.
az containerapp env show \ --name "<ENVIRONMENT_NAME>" \ --resource-group "<RESOURCE_GROUP>"provisioningStateдолжен сообщить оSucceededперед переходом к следующей команде.Создайте новое приложение контейнера.
az containerapp create \ --resource-group "<RESOURCE_GROUP>" \ --name "<CONTAINER_APP_NAME>" \ --target-port 80 \ --ingress external \ --image mcr.microsoft.com/k8se/quickstart:latest \ --environment "<ENVIRONMENT_NAME>" \ --workload-profile-name "Consumption"
Эта команда развертывает приложение в встроенном профиле рабочей нагрузки потребления. Если вы хотите создать приложение в выделенном профиле, сначала необходимо добавить профиль в среду.
Эта команда создает новое приложение в среде с помощью определенного профиля рабочей нагрузки.
Добавление профилей
Добавьте новый профиль рабочей нагрузки в существующую среду. Необходимо указать тип рабочего профиля, как описано в этом разделе.
az containerapp env workload-profile add \
--resource-group <RESOURCE_GROUP> \
--name <ENVIRONMENT_NAME> \
--workload-profile-type <WORKLOAD_PROFILE_TYPE> \
--workload-profile-name <WORKLOAD_PROFILE_NAME> \
--min-nodes <MIN_NODES> \
--max-nodes <MAX_NODES>
При выборе профиля рабочей нагрузки для добавления убедитесь в региональной доступности. Значение, выбранное для заполнителя <WORKLOAD_PROFILE_NAME>, — это понятное имя профиля рабочей нагрузки.
Использование понятных имен позволяет добавлять несколько профилей одного типа в среду. Понятное пользователю имя используется при развертывании контейнерного приложения и управлении им в профиле рабочей нагрузки.
Тип рабочего профиля — это конкретный регион, а не один глобальный список жесткого кода. Предполагаемый путь обнаружения: az containerapp env workload-profile list-supported -l <REGION> Реализация получает поддерживаемые значения из конечной точки шаблона ARM для доступных типов профилей рабочей нагрузки в этом местоположении.
Используйте эту команду, чтобы просмотреть допустимые типы профилей рабочей нагрузки для региона:
az containerapp env workload-profile list-supported -l <REGION>
Используйте одно из возвращаемых значений для --workload-profile-type. Например, можно использовать D4 в регионах, где этот тип доступен.
Помните следующее поведение:
- Команда преобразует значение type в верхний регистр перед отправкой.
- Если не указано
--workload-profile-name, команда по умолчанию использует имя профиля для значения типа. - Добавление или обновление профилей рабочей нагрузки работает только для сред, поддерживающих профили рабочей нагрузки.
Редактирование профилей
Минимальное и максимальное количество узлов, используемых профилем рабочей нагрузки, можно изменить с помощью update команды.
az containerapp env workload-profile update \
--resource-group <RESOURCE_GROUP> \
--name <ENV_NAME> \
--workload-profile-type <WORKLOAD_PROFILE_TYPE> \
--workload-profile-name <WORKLOAD_PROFILE_NAME> \
--min-nodes <MIN_NODES> \
--max-nodes <MAX_NODES>
Удаление профиля
Используйте следующую команду, чтобы удалить профиль рабочей нагрузки.
az containerapp env workload-profile delete \
--resource-group "<RESOURCE_GROUP>" \
--name <ENVIRONMENT_NAME> \
--workload-profile-name <WORKLOAD_PROFILE_NAME>
Примечание.
Профиль рабочей нагрузки Consumption нельзя удалить.
Проверка профилей
Следующие команды позволяют перечислять доступные профили в регионе и те, которые используются в определенной среде.
Список доступных профилей рабочей нагрузки
list-supported Используйте команду для перечисления поддерживаемых профилей рабочих нагрузок для региона.
Следующая команда Azure CLI отображает результаты в таблице.
az containerapp env workload-profile list-supported \
--location <LOCATION> \
--query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
-o table
Ответ похож на таблицу, похожую на этот пример:
Name Cores MemoryGiB Category
------------------------- ------- ----------- --------------------
D4 4 16 GeneralPurpose
D8 8 32 GeneralPurpose
D16 16 64 GeneralPurpose
D32 32 128 GeneralPurpose
E4 4 32 MemoryOptimized
E8 8 64 MemoryOptimized
E16 16 128 MemoryOptimized
E32 32 256 MemoryOptimized
Consumption 4 8 Consumption
Consumption-GPU-NC24-A100 24 220 Consumption-GPU-A100
Consumption-GPU-NC8as-T4 8 56 Consumption-GPU-T4
Flex 4 16 Consumption
NC24-A100 24 220 GPU-NC-A100
NC48-A100 48 440 GPU-NC-A100
NC96-A100 96 880 GPU-NC-A100
Выберите профиль рабочей нагрузки и используйте поле Name при добавлении или обновлении профилей рабочей нагрузки с помощью команд az containerapp env workload-profile add или az containerapp env workload-profile update для параметра --workload-profile-type.
Отображение профиля рабочей нагрузки
Отображение сведений о профиле рабочей нагрузки.
az containerapp env workload-profile show \
--resource-group <RESOURCE_GROUP> \
--name <ENVIRONMENT_NAME> \
--workload-profile-name <WORKLOAD_PROFILE_NAME>