Ejecución de una tarea de ACR en un grupo de agentes dedicadoRun an ACR task on a dedicated agent pool

Configure un grupo de VM administradas por Azure (grupo de agentes) para habilitar la ejecución de tareas de Azure Container Registry en un entorno de proceso dedicado.Set up an Azure-managed VM pool (agent pool) to enable running your Azure Container Registry tasks in a dedicated compute environment. Después de configurar uno o varios grupos en el registro, puede elegir un grupo para ejecutar una tarea en lugar del entorno de proceso predeterminado del servicio.After you've configured one or more pools in your registry, you can choose a pool to run a task in place of the service's default compute environment.

Un grupo de agentes proporciona:An agent pool provides:

  • Compatibilidad con redes virtuales: asigne un grupo de agentes a una red virtual de Azure, lo que proporciona acceso a los recursos de la red virtual, como un registro de contenedor, un almacén de claves o almacenamiento.Virtual network support - Assign an agent pool to an Azure VNet, providing access to resources in the VNet such as a container registry, key vault, or storage.
  • Escale según sea necesario: aumente el número de instancias de un grupo de agentes para tareas de proceso intensivo o escale a cero.Scale as needed - Increase the number of instances in an agent pool for compute-intensive tasks, or scale to zero. La facturación se basa en la asignación de grupos.Billing is based on pool allocation. Para obtener información detallada, vea Precios.For details, see Pricing.
  • Opciones flexibles: elija entre distintos niveles de grupo y opciones de escalado para satisfacer sus necesidades de carga de trabajo de tareas.Flexible options - Choose from different pool tiers and scale options to meet your task workload needs.
  • Administración de Azure: los grupos de tareas se revisan y mantienen en Azure, lo que proporciona una asignación reservada sin necesidad de mantener las VM individuales.Azure management - Task pools are patched and maintained by Azure, providing reserved allocation without the need to maintain the individual VMs.

Esta característica está disponible en el nivel de servicio de un registro de contenedor Premium.This feature is available in the Premium container registry service tier. Para obtener información sobre los límites y niveles de servicio de registro, consulte SKU de Azure Container Registry.For information about registry service tiers and limits, see Azure Container Registry SKUs.

Importante

Esta funcionalidad actualmente está en su versión preliminar y se aplican algunas limitaciones.This feature is currently in preview, and some limitations apply. Las versiones preliminares están a su disposición con la condición de que acepte los términos de uso adicionales.Previews are made available to you on the condition that you agree to the supplemental terms of use. Es posible que algunos de los aspectos de esta característica cambien antes de ofrecer disponibilidad general.Some aspects of this feature may change prior to general availability (GA).

Limitaciones de vista previaPreview limitations

  • Actualmente, los grupos de agentes de tareas admiten nodos de Linux.Task agent pools currently support Linux nodes. Los nodos con Windows no se admiten en este momento.Windows nodes aren't currently supported.
  • El grupo de agentes de tareas está disponible en versión preliminar en las siguientes regiones: Oeste de EE. UU. 2, Centro-sur de EE. UU., Este de EE. UU. 2, Este de EE. UU., Centro de EE. UU., USGov Arizona, USGov Texas y USGov Virginia.Task agent pools are available in preview in the following regions: West US 2, South Central US, East US 2, East US, Central US, USGov Arizona, USGov Texas, and USGov Virginia.
  • Para cada registro, la cuota total predeterminada de vCPU (núcleos) es de 16 para todos los grupos de agentes estándar y de 0 para los grupos de agentes aislados.For each registry, the default total vCPU (core) quota is 16 for all standard agent pools and is 0 for isolated agent pools. Abra una solicitud de soporte técnico para la asignación adicional.Open a support request for additional allocation.
  • Actualmente no se puede cancelar la ejecución de una tarea en un grupo de agentes.You can't currently cancel a task run on an agent pool.

Requisitos previosPrerequisites

  • Para usar los pasos de la CLI de Azure de este artículo, se requieren la versión 2.3.1 de la CLI de Azure o una versión posterior.To use the Azure CLI steps in this article, Azure CLI version 2.3.1 or later is required. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.If you need to install or upgrade, see Install Azure CLI. O bien ejecute en Azure Cloud Shell.Or run in Azure Cloud Shell.
  • Si aún no tiene un registro de contenedor, créelo (se requiere un nivel Premium) en una región de la versión preliminar.If you don't already have a container registry, create one (Premium tier required) in a preview region.

Niveles de gruposPool tiers

Los niveles de grupos de agentes proporcionan los siguientes recursos por instancia en el grupo.Agent pool tiers provide the following resources per instance in the pool.

NivelTier TipoType CPUCPU Memoria (GB)Memory (GB)
S1S1 estándarstandard 22 33
S2S2 estándarstandard 44 88
S3S3 estándarstandard 88 1616
I6I6 aisladosisolated 6464 216216

Crear y administrar un grupo de agentes de tareasCreate and manage a task agent pool

Definición del registro predeterminado (opcional)Set default registry (optional)

Para simplificar los comandos de la CLI de Azure que siguen, establezca el registro predeterminado ejecutando el comando az configure:To simplify Azure CLI commands that follow, set the default registry by running the az configure command:

az configure --defaults acr=<registryName>

En los siguientes ejemplos se supone que ha establecido el registro predeterminado.The following examples assume that you've set the default registry. Si no es así, pase un parámetro --registry <registryName> en cada comando az acr.If not, pass a --registry <registryName> parameter in each az acr command.

Creación de un grupo de agentesCreate agent pool

Cree un grupo de agentes con el comando az acr agentpool create.Create an agent pool by using the az acr agentpool create command. En el ejemplo siguiente se crea una instancia de grupo S2 (4 CPU/instancia).The following example creates a tier S2 pool (4 CPU/instance). De forma predeterminada, el grupo contiene 1 instancia.By default, the pool contains 1 instance.

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

Nota

La creación de un grupo de agentes y otras operaciones de administración del grupo tarda varios minutos en completarse.Creating an agent pool and other pool management operations take several minutes to complete.

Escalado de gruposScale pool

Escale o reduzca verticalmente el tamaño del grupo con el comando az acr agentpool update.Scale the pool size up or down with the az acr agentpool update command. En el ejemplo siguiente, se escala el grupo a 2 instancias.The following example scales the pool to 2 instances. Puede escalar a 0 instancias.You can scale to 0 instances.

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

Creación de un grupo en una red virtualCreate pool in a virtual network

Adición de reglas de firewallAdd firewall rules

Los grupos de agentes de tareas requieren acceso a los siguientes servicios de Azure.Task agent pools require access to the following Azure services. Las siguientes reglas de firewall deben agregarse a los grupos de seguridad de red o rutas definidas por el usuario existentes.The following firewall rules must be added to any existing network security groups or user-defined routes.

DirecciónDirection ProtocoloProtocol SourceSource Puerto de origenSource Port DestinationDestination Puerto de destinoDest Port UtilizadoUsed
SalidaOutbound TCPTCP VirtualNetworkVirtualNetwork AnyAny AzureKeyVaultAzureKeyVault 443443 Valor predeterminadoDefault
SalidaOutbound TCPTCP VirtualNetworkVirtualNetwork AnyAny AlmacenamientoStorage 443443 Valor predeterminadoDefault
SalidaOutbound TCPTCP VirtualNetworkVirtualNetwork AnyAny EventHubEventHub 443443 Valor predeterminadoDefault
SalidaOutbound TCPTCP VirtualNetworkVirtualNetwork AnyAny AzureActiveDirectoryAzureActiveDirectory 443443 Valor predeterminadoDefault
SalidaOutbound TCPTCP VirtualNetworkVirtualNetwork AnyAny AzureMonitorAzureMonitor 443443 Valor predeterminadoDefault

Nota

Si las tareas requieren recursos adicionales de la red pública de Internet, agregue las reglas correspondientes.If your tasks require additional resources from the public internet, add the corresponding rules. Por ejemplo, se necesitan reglas adicionales para ejecutar una tarea de compilación de Docker que extraiga las imágenes base de Docker Hub o restaure un paquete de NuGet.For example, additional rules are needed to run a docker build task that pulls the base images from Docker Hub, or restores a NuGet package.

Crear grupo en VNetCreate pool in VNet

En el ejemplo siguiente se crea un grupo de agentes en la subred mysubnet de la red myvnet:The following example creates an agent pool in the mysubnet subnet of network myvnet:

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

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

Ejecutar tarea en el grupo de agentesRun task on agent pool

En los siguientes ejemplos se muestra cómo especificar un grupo de agentes al poner en cola una tarea.The following examples show how to specify an agent pool when queuing a task.

Nota

Para usar un grupo de agentes en una tarea de ACR, asegúrese de que el grupo contiene al menos una instancia.To use an agent pool in an ACR task, ensure that the pool contains at least 1 instance.

Tarea rápidaQuick task

Ponga en cola una tarea rápida en el grupo de agentes mediante el comando az acr build y pase el parámetro --agent-pool:Queue a quick task on the agent pool by using the az acr build command and pass the --agent-pool parameter:

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

Tarea desencadenada automáticamenteAutomatically triggered task

Por ejemplo, cree una tarea programada en el grupo de agentes con el comando az acr task create y pase el parámetro --agent-pool.For example, create a scheduled task on the agent pool with az acr task create, passing the --agent-pool parameter.

az acr task create \
    --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 comprobar la configuración de la tarea, ejecute az acr task run:To verify task setup, run az acr task run:

az acr task run \
    --name mytask

Consulta del estado del grupoQuery pool status

Para averiguar el número de ejecuciones programadas actualmente en el grupo de agentes, ejecute az acr agentpool show.To find the number of runs currently scheduled on the agent pool, run az acr agentpool show.

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

Pasos siguientesNext steps

Para obtener más ejemplos de compilaciones y mantenimiento de imágenes de contenedor en la nube, consulte la serie de tutoriales de ACR Tasks.For more examples of container image builds and maintenance in the cloud, check out the ACR Tasks tutorial series.