Executar uma tarefa do ACR em um pool dedicado de agentes

Configure um pool de VMs gerenciado pelo Azure (pool de agentes) para habilitar a execução de suas tarefas do Registro de Contêiner do Azure em um ambiente de computação dedicado. Depois de configurar um ou mais pools no registro, você pode escolher um pool para executar uma tarefa no lugar do ambiente de computação padrão do serviço.

Um pool de agentes fornece:

  • Suporte à rede virtual – atribua um pool de agentes a uma VNet do Azure, fornecendo acesso aos recursos na VNet, como um registro de contêiner, um cofre de chaves ou um armazenamento.
  • Dimensionar conforme necessário – aumente o número de instâncias em um pool de agentes para tarefas de uso intensivo de computação ou dimensione para zero. A cobrança é baseada na alocação do pool. Para obter detalhes, confira Preços.
  • Opções flexíveis – escolha entre diferentes camadas de pool e opções de escala para atender às suas necessidades de carga de trabalho de tarefa.
  • Gerenciamento do Azure – os pools de tarefas são corrigidos e mantidos pelo Azure, fornecendo alocação reservada sem a necessidade de manter as VMs individuais.

Esse recurso está disponível na camada de serviço Premium do registro de contêiner. Para obter informações sobre os limites e as camadas de serviço do registro, confira SKUs do Registro de Contêiner do Azure.

Importante

Esse recurso está na versão prévia no momento; algumas limitações se aplicam. As versões prévias são disponibilizadas com a condição de que você concorde com os termos de uso complementares. Alguns aspectos desse recurso podem alterar antes da GA (disponibilidade geral).

Limitações de visualização

  • Os pools de agentes de tarefa atualmente dão suporte a nós do Linux. Atualmente não há suporte para nós do Windows.
  • Os pools de agentes de tarefa estão disponíveis em versão prévia nas seguintes regiões: Oeste dos EUA 2, Centro-Sul dos EUA, Leste dos EUA 2, Leste dos EUA, EUA Central, Oeste da Europa, Norte da Europa, Canadá Central, Leste da Ásia, USGov Arizona, USGov Texas e USGov Virgínia.
  • Para cada registro, a cota padrão total de vCPU (núcleo) é 16 para todos os pools de agentes padrão e é 0 para pools de agentes isolados. Abra uma solicitação de suporte para alocação adicional.
  • No momento, não é possível cancelar uma tarefa executada em um pool de agentes.

Pré-requisitos

  • Para usar as etapas da CLI do Azure neste artigo, a CLI do Azure versão 2.3.1 ou posterior é necessária. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. Ou executá-la no Azure Cloud Shell.
  • Se ainda não houver um registro de contêiner, crie um (camada Premium necessária) em uma região preliminar.

Camadas de pool

As camadas do pool de agentes fornecem os recursos a seguir por instância no pool.

Camada Tipo CPU Memória (GB)
S1 padrão 2 3
S2 padrão 4 8
S3 padrão 8 16
I6 isolado 64 216

Criar e gerenciar um pool de agentes de tarefas

Definir registro padrão (opcional)

Para simplificar os comandos da CLI do Azure a seguir, defina o registro padrão executando o comando az config:

az config set defaults.acr=<registryName>

Os exemplos a seguir pressupõem que você definiu o registro padrão. Caso contrário, passe um parâmetro --registry <registryName> em cada comando az acr.

Criar pool de agentes

Crie um pool de agentes usando o comando az acr agentpool create. O exemplo a seguir cria um pool de camada S2 (4 CPU/instância). Por padrão, o pool contém uma instância.

az acr agentpool create \
    --registry MyRegistry \
    --name myagentpool \
    --tier S2

Observação

A criação de um pool de agentes e de outras operações de gerenciamento de pool leva vários minutos para ser concluída.

Escalar pool

Aumente ou reduza o tamanho do pool com o comando az acr agentpool update. O exemplo a seguir dimensiona o pool para duas instâncias. Você pode dimensionar para zero instância.

az acr agentpool update \
    --registry MyRegistry \
    --name myagentpool \
    --count 2

Criar um pool em uma rede virtual

Adicionar regras de firewall

Os pools de agentes de tarefa exigem acesso aos serviços do Azure a seguir. As regras de firewall a seguir devem ser adicionadas a quaisquer grupos de segurança de rede ou rotas definidas pelo usuário existentes.

Direção Protocolo Fonte Porta de origem Destino Porta de destino Usado
Saída TCP VirtualNetwork Qualquer AzureKeyVault 443 Padrão
Saída TCP VirtualNetwork Qualquer Armazenamento 443 Padrão
Saída TCP VirtualNetwork Qualquer EventHub 443 Padrão
Saída TCP VirtualNetwork Qualquer AzureActiveDirectory 443 Padrão
Saída TCP VirtualNetwork Qualquer AzureMonitor 443 Padrão

Observação

Se as suas tarefas exigirem recursos adicionais da Internet pública, adicione as regras correspondentes. Por exemplo, regras adicionais são necessárias para executar uma tarefa de compilação do Docker que extrai as imagens base do Docker Hub ou restaura um pacote NuGet.

Os clientes que baseiam suas implantações com MCR podem consultar Regras de firewall do MCR/MAR.

Criar pool na VNet

O seguinte exemplo cria um pool de agentes na sub-rede mysubnet da rede myvnet:

# Get the subnet ID
subnetId=$(az network vnet subnet show \
        --resource-group myresourcegroup \
        --vnet-name myvnet \
        --name mysubnetname \
        --query id --output tsv)

az acr agentpool create \
    --registry MyRegistry \
    --name myagentpool \
    --tier S2 \
    --subnet-id $subnetId

Executar tarefa em um pool de agentes

Os exemplos a seguir mostram como especificar um pool de agentes ao enfileirar uma tarefa.

Observação

Para usar um pool de agentes em uma tarefa ACR, verifique se o pool contém pelo menos uma instância.

Tarefa rápida

Enfileire uma tarefa rápida no pool de agentes usando o comando az acr build e passe o parâmetro --agent-pool:

az acr build \
    --registry MyRegistry \
    --agent-pool myagentpool \
    --image myimage:mytag \
    --file Dockerfile \
    https://github.com/Azure-Samples/acr-build-helloworld-node.git#main

Tarefa disparada automaticamente

Por exemplo, crie uma tarefa agendada no pool de agentes com az acr task create, passando o parâmetro --agent-pool.

az acr task create \
    --registry MyRegistry \
    --name mytask \
    --agent-pool myagentpool \
    --image myimage:mytag \
    --schedule "0 21 * * *" \
    --file Dockerfile \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --commit-trigger-enabled false

Para verificar a configuração da tarefa, execute az acr task run:

az acr task run \
    --registry MyRegistry \
    --name mytask

Status do pool de consulta

Para localizar o número de execuções atualmente agendadas no pool de agentes, execute az acr agentpool show.

az acr agentpool show \
    --registry MyRegistry \
    --name myagentpool \
    --queue-count

Próximas etapas

Para obter mais exemplos de compilações de imagem de contêiner e manutenção na nuvem, confira a série de tutoriais de tarefas do ACR.