Управление профилями рабочей нагрузки с помощью Azure CLI

Узнайте, как управлять средой профилей рабочих нагрузок с помощью Azure CLI.

Создание приложения-контейнера в профиле

По умолчанию среда "Приложения контейнеров" создается с помощью управляемой виртуальной сети, которая автоматически создается для вас. Созданные виртуальные сети недоступны при создании в клиенте Майкрософт.

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

При создании среды с пользовательской виртуальной сетью у вас есть полный контроль над конфигурацией виртуальной сети. Этот объем управления позволяет реализовать следующие функции:

Используйте следующие команды для создания среды профилей рабочих нагрузок.

  1. Как создать виртуальную сеть.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Создание делегированной подсети 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 необходимо предоставить среде выполнения контейнерных приложений необходимый контроль над виртуальной сетью для запуска профилей рабочих нагрузок в среде "Приложения контейнеров".

    Для подсети можно указать значение /27 CIDR (32 IP-адреса-8). Если вы собираетесь указать /27 CIDR, рассмотрите следующие элементы:

    • Для инфраструктуры приложений контейнеров зарезервировано 11 IP-адресов. Таким образом, /27 CIDR имеет не более 21 доступных IP-адресов.

    • IP-адреса распределяются по-разному между только потреблением и выделенными планами:

      Только за использование Выделенные
      Для каждого реплика требуется один IP-адрес. Пользователи не могут иметь приложения с более чем 21 реплика во всех приложениях. Для развертывания нулевого простоя требуется двойные IP-адреса, так как старая редакция выполняется, пока новая редакция не будет успешно развернута. Для каждого экземпляра (узла виртуальной машины) требуется один IP-адрес. В этих профилях рабочей нагрузки может быть до 21 экземпляров, а также сотни или более реплика, выполняемых в этих профилях рабочей нагрузки.
  1. Создание среды профилей рабочей нагрузки

    Примечание.

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

    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    
    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    Эта команда может занять до 10 минут.

  2. Проверьте состояние среды. Следующая команда сообщает, если среда успешно создана.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    Перед provisioningState переходом к следующей команде необходимо сообщить Succeeded .

  3. Создайте новое приложение контейнера.

    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> для заполнителя значение — понятное имя профиля рабочей нагрузки.

Использование понятных имен позволяет добавлять несколько профилей одного типа в среду. Понятное имя — это то, что вы используете при развертывании и обслуживании приложения-контейнера в профиле рабочей нагрузки.

Редактирование профилей

Можно изменить минимальное и максимальное количество узлов, используемых профилем рабочей нагрузки с помощью 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> 

Примечание.

Не удается удалить профиль рабочей нагрузки потребления .

Проверка профилей

Следующие команды позволяют перечислять доступные профили в регионе и те, которые используются в определенной среде.

Список доступных профилей рабочей нагрузки

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
E4           4        32           MemoryOptimized
E8           8        64           MemoryOptimized
E16          16       128          MemoryOptimized
E32          32       256          MemoryOptimized
Consumption  4        8            Consumption

Выберите профиль рабочей нагрузки и используйте поле "Имя " при запуске az containerapp env workload-profile set параметра --workload-profile-type .

Отображение профиля рабочей нагрузки

Отображение сведений о профиле рабочей нагрузки.

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Следующие шаги