Een ACR-taak uitvoeren op een toegewezen agentpool

Stel een door Azure beheerde VM-pool (agentgroep) in om het uitvoeren van uw Azure Container Registry-taken in een toegewezen rekenomgeving mogelijk te maken. Nadat u een of meer pools in uw register hebt geconfigureerd, kunt u een pool kiezen om een taak uit te voeren in plaats van de standaard-rekenomgeving van de service.

Een agentgroep biedt:

  • Ondersteuning voor virtuele netwerken: wijs een agentgroep toe aan een Azure-VNet en geef toegang tot resources in het VNet, zoals een containerregister, sleutelkluis of opslag.
  • Schaal indien nodig : verhoog het aantal exemplaren in een agentgroep voor rekenintensieve taken of schaal naar nul. Facturering is gebaseerd op pooltoewijzing. Zie Prijzen voor meer informatie.
  • Flexibele opties : kies uit verschillende poollagen en schaalopties om te voldoen aan de behoeften van uw taakworkload.
  • Azure-beheer : taakgroepen worden gepatcht en onderhouden door Azure, waardoor gereserveerde toewijzing wordt geboden zonder dat de afzonderlijke VM's hoeven te worden onderhouden.

Deze functie is beschikbaar in de servicelaag Premium-containerregister . Zie Azure Container Registry-SKU's voor informatie over registerservicelagen en -limieten.

Belangrijk

Deze functie is momenteel beschikbaar als preview en er gelden enkele beperkingen. Previews worden voor u beschikbaar gesteld op voorwaarde dat u akkoord gaat met de aanvullende gebruiksvoorwaarden. Sommige aspecten van deze functie worden mogelijk nog gewijzigd voordat de functie algemeen beschikbaar wordt.

Preview-beperkingen

  • Taakagentpools ondersteunen momenteel Linux-knooppunten. Windows-knooppunten worden momenteel niet ondersteund.
  • Taakagentgroepen zijn beschikbaar in de preview-fase in de volgende regio's: VS - west 2, VS - zuid-centraal, VS - oost 2, VS - oost, VS - centraal, Europa - west, Europa - noord, Canada - centraal, Azië - oost, Zwitserland - noord, USGov Arizona, USGov Texas en USGov Virginia.
  • Voor elk register is het standaardquotum voor vCPU (core) 16 voor alle standaardagentgroepen en is 0 voor geïsoleerde agentpools. Open een ondersteuningsaanvraag voor extra toewijzing.
  • U kunt momenteel een taakuitvoering in een agentpool niet annuleren.

Vereisten

  • Als u de Azure CLI-stappen in dit artikel wilt gebruiken, is Azure CLI versie 2.3.1 of hoger vereist. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. Of voer deze uit in Azure Cloud Shell.
  • Als u nog geen containerregister hebt, maakt u er een (Premium-laag vereist) in een preview-regio.

Poollagen

Agentgroeplagen bieden de volgende resources per exemplaar in de pool.

Laag Type CPU Geheugen (GB)
S1 standard 2 3
S2 standard 4 8
S3 standard 8 16
I6 Geïsoleerd 64 216

Een taakagentgroep maken en beheren

Standaardregister instellen (optioneel)

Als u azure CLI-opdrachten die volgen wilt vereenvoudigen, stelt u het standaardregister in door de opdracht az config uit te voeren:

az config set defaults.acr=<registryName>

In de volgende voorbeelden wordt ervan uitgegaan dat u het standaardregister hebt ingesteld. Als dat niet het is, geeft u een --registry <registryName> parameter door in elke az acr opdracht.

Agentpool maken

Maak een agentpool met behulp van de opdracht az acr agentpool create . In het volgende voorbeeld wordt een laag S2-pool (4 CPU/exemplaar) gemaakt. De pool bevat standaard 1 exemplaar.

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

Notitie

Het maken van een agentpool en andere poolbeheerbewerkingen duurt enkele minuten.

Pool schalen

Schaal de poolgrootte omhoog of omlaag met de opdracht az acr agentpool update . In het volgende voorbeeld wordt de pool geschaald naar 2 exemplaren. U kunt schalen naar 0 exemplaren.

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

Pool maken in een virtueel netwerk

Firewallregels toevoegen

Voor taakagentpools is toegang tot de volgende Azure-services vereist. De volgende firewallregels moeten worden toegevoegd aan bestaande netwerkbeveiligingsgroepen of door de gebruiker gedefinieerde routes.

Richting Protocol Bron Bronpoort Doel Dest-poort Used
Uitgaand TCP VirtualNetwork Alle AzureKeyVault 443 Standaardinstelling
Uitgaand TCP VirtualNetwork Alle Storage 443 Standaardinstelling
Uitgaand TCP VirtualNetwork Alle EventHub 443 Standaardinstelling
Uitgaand TCP VirtualNetwork Alle AzureActiveDirectory 443 Standaardinstelling
Uitgaand TCP VirtualNetwork Alle AzureMonitor 443 Standaard

Notitie

Als voor uw taken extra resources van het openbare internet nodig zijn, voegt u de bijbehorende regels toe. Er zijn bijvoorbeeld aanvullende regels nodig om een Docker-buildtaak uit te voeren waarmee de basisinstallatiekopieën uit Docker Hub worden opgehaald of een NuGet-pakket wordt hersteld.

Klanten die hun implementaties met MCR baseren, kunnen verwijzen naar MCR/MAR-firewallregels.

Pool maken in VNet

In het volgende voorbeeld wordt een agentgroep gemaakt in het subnetsubnet van het myvnet-netwerk:

# 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

Taak uitvoeren in agentgroep

In de volgende voorbeelden ziet u hoe u een agentgroep opgeeft bij het in de wachtrij plaatsen van een taak.

Notitie

Als u een agentgroep in een ACR-taak wilt gebruiken, moet u ervoor zorgen dat de pool ten minste één exemplaar bevat.

Snelle taak

Een snelle taak in de agentgroep in de wachtrij plaatsen met behulp van de opdracht az acr build en de --agent-pool parameter doorgeven:

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

Automatisch geactiveerde taak

Maak bijvoorbeeld een geplande taak in de agentgroep met az acr task create, waarbij de --agent-pool parameter wordt doorgegeven.

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

Voer az acr task run uit om de installatie van de taak te controleren:

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

Status van querygroep

Voer az acr agentpool show uit om het aantal uitvoeringen te vinden dat momenteel is gepland in de agentgroep.

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

Volgende stappen

Bekijk de zelfstudiereeks ACR Tasks voor meer voorbeelden van builds en onderhoud van containerinstallatiekopieën in de cloud.