Gerenciar perfis de carga de trabalho com a CLI do Azure

Aprenda a gerir perfis de carga de trabalho no seu ambiente Container Apps usando a CLI do Azure.

Criar um aplicativo de contêiner em um perfil

Por predefinição, o seu ambiente do Container Apps é criado com uma rede virtual gerida que é gerada automaticamente para si. As redes virtuais geradas estão inacessíveis para o utilizador porque foram criadas no tenant da Microsoft.

Em alternativa, pode criar um ambiente com uma rede virtual personalizada. Use esta opção se precisar de alguma das seguintes funcionalidades:

  • Rotas definidas pelo usuário
  • Integração com Application Gateway
  • Grupos de Segurança de Rede
  • Comunicação com recursos por trás de pontos finais privados na sua rede virtual
  1. Crie um ambiente de aplicativos de contêiner.

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

    Este comando pode levar até 10 minutos para ser concluído.

  2. Verifique o estado do seu ambiente. O comando seguinte informa se o ambiente é criado com sucesso.

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

    O provisioningState tem de comunicar Succeeded antes de passar ao próximo comando.

  3. Crie um novo aplicativo de contêiner.

    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"
    

Este comando implementa a aplicação no perfil de carga de trabalho Consumption incorporado. Se você quiser criar um aplicativo em um perfil dedicado, primeiro precisa adicionar o perfil ao ambiente.

Este comando cria o novo aplicativo no ambiente usando um perfil de carga de trabalho específico.

Quando cria um ambiente com uma rede virtual personalizada, tem controlo total sobre a configuração da rede virtual. Este controlo dá-lhe a opção de implementar as seguintes funcionalidades:

  • Rotas definidas pelo usuário
  • Integração com Application Gateway
  • Grupos de Segurança de Rede
  • Comunicação com recursos por trás de pontos de extremidade privados em sua rede virtual

Utilize os seguintes comandos para criar um ambiente de Aplicações Container.

  1. Crie uma rede virtual.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Crie uma sub-rede delegada ao 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"
    

    Copie o valor ID e cole no próximo comando.

    A delegação Microsoft.App/environments é necessária para dar ao runtime do Container Apps o controlo necessário sobre a sua rede virtual para executar perfis de carga de trabalho no ambiente do Container Apps.

    Pode especificar uma sub-rede tão pequena como uma /27 CIDR (32 IPs - 8 reservados). Se vai especificar um /27 CIDR, considere os seguintes itens:

    • Há 11 endereços IP reservados para a infraestrutura de aplicativos de contêiner. Portanto, um /27 CIDR tem um máximo de 21 endereços IP disponíveis.

    • Os endereços IP são alocados de forma diferente entre os planos apenas de Consumo e Dedicado:

      Apenas consumo Dedicado
      Cada réplica requer um IP. Os usuários não podem ter aplicativos com mais de 21 réplicas em todos os aplicativos. A implementação sem indisponibilidade requer o dobro dos IPs, uma vez que a versão antiga permanece em execução até que a nova versão seja implementada com êxito. Cada instância (nó de VM) necessita de um único endereço IP. Você pode ter até 21 instâncias em todos os perfis de carga de trabalho e centenas ou mais réplicas em execução nesses perfis de carga de trabalho.
  3. Crie um ambiente de aplicativos de contêiner.

    Nota

    Pode configurar se a sua aplicação de contentores permite entrada pública ou apenas a partir da sua rede virtual ao nível do ambiente. Para restringir a entrada apenas à sua rede virtual, defina o --internal-only flag.

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

    Este comando pode levar até 10 minutos para ser concluído.

  4. Verifique o estado do seu ambiente. O comando seguinte informa se o ambiente é criado com sucesso.

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

    O provisioningState precisa de comunicar Succeeded antes de passares ao comando seguinte.

  5. Crie um novo aplicativo de contêiner.

    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"
    

Este comando implementa a aplicação no perfil de carga de trabalho Consumption incorporado. Se você quiser criar um aplicativo em um perfil dedicado, primeiro precisa adicionar o perfil ao ambiente.

Este comando cria o novo aplicativo no ambiente usando um perfil de carga de trabalho específico.

Adicionar perfis

Adicione um novo perfil de carga de trabalho a um ambiente existente. Precisa de especificar um tipo de perfil de trabalho, conforme descrito nesta secção.

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>

Ao selecionar um perfil de carga de trabalho para adicionar, assegure a disponibilidade regional. O valor que selecionar para o marcador de posição <WORKLOAD_PROFILE_NAME> é o perfil de carga de trabalho com o nome amigável.

O uso de nomes amigáveis permite que você adicione vários perfis do mesmo tipo a um ambiente. O nome amigável é o que você usa ao implantar e manter um aplicativo de contêiner em um perfil de carga de trabalho.

O tipo de perfil de trabalho é específico por região, não uma única lista global codificada fixamente. O caminho de descoberta pretendido é: az containerapp env workload-profile list-supported -l <REGION>. A implementação resolve valores suportados do endpoint do template ARM para os tipos de perfis de carga de trabalho disponíveis nessa localização.

Use este comando para ver os tipos válidos de perfis de carga de trabalho para a sua região:

az containerapp env workload-profile list-supported -l <REGION>

Use um dos valores devolvidos para --workload-profile-type. Por exemplo, podes usar D4 em regiões onde esse tipo está disponível.

Tenha em mente o seguinte comportamento:

  • O comando altera o valor do tipo para maiúsculo antes de o enviar.
  • Se omitires --workload-profile-name, o comando devolve o nome do perfil ao valor do tipo.
  • Adicionar ou atualizar perfis de carga de trabalho só funciona em ambientes que suportam perfis de carga de trabalho.

Editar perfis

Pode modificar o número mínimo e máximo de nós usados por um perfil de carga de trabalho usando o update comando.

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>

Excluir um perfil

Use o comando a seguir para excluir um perfil de carga de trabalho.

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

Nota

O perfil de carga de trabalho Consumo não pode ser excluído.

Inspecionar perfis

Os comandos a seguir permitem listar perfis disponíveis em sua região e aqueles usados em um ambiente específico.

Listar perfis de carga de trabalho disponíveis

Use o list-supported comando para listar os perfis de carga de trabalho suportados para sua região.

O seguinte comando da CLI do Azure exibe os resultados em uma tabela.

az containerapp env workload-profile list-supported \
  --location <LOCATION>  \
  --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
  -o table

A resposta assemelha-se a uma tabela semelhante a este exemplo:

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

Selecione um perfil de carga de trabalho e use o campo Nome ao adicionar ou atualizar perfis de carga de trabalho com os comandos az containerapp env workload-profile add ou az containerapp env workload-profile update para a opção --workload-profile-type.

Mostrar um perfil de carga de trabalho

Exibir detalhes sobre um perfil de carga de trabalho.

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

Passo seguinte