Dela via


Köra en ACR-uppgift i en dedikerad agentpool

Konfigurera en Azure-hanterad VM-pool (agentpool) för att aktivera körning av dina Azure Container Registry-uppgifter i en dedikerad beräkningsmiljö. När du har konfigurerat en eller flera pooler i registret kan du välja en pool för att köra en uppgift i stället för tjänstens standardberäkningsmiljö.

En agentpool tillhandahåller:

  • Stöd för virtuellt nätverk – Tilldela en agentpool till ett virtuellt Azure-nätverk som ger åtkomst till resurser i det virtuella nätverket, till exempel ett containerregister, nyckelvalv eller lagring.
  • Skala efter behov – Öka antalet instanser i en agentpool för beräkningsintensiva uppgifter eller skala till noll. Fakturering baseras på poolallokering. Mer information finns i Priser.
  • Flexibla alternativ – Välj mellan olika poolnivåer och skalningsalternativ för att uppfylla dina uppgiftsarbetsbelastningsbehov.
  • Azure-hantering – Aktivitetspooler korrigeras och underhålls av Azure, vilket ger reserverad allokering utan att de enskilda virtuella datorerna behöver underhållas.

Den här funktionen är tillgänglig på tjänstnivån för Premium-containerregistret . Information om registertjänstnivåer och gränser finns i Azure Container Registry-SKU:er.

Viktigt!

Den här funktionen är för närvarande i förhandsversion och vissa begränsningar gäller. Förhandsversioner är tillgängliga för dig under förutsättning att du godkänner de kompletterande användningsvillkoren. Vissa aspekter av funktionen kan ändras innan den är allmänt tillgänglig (GA).

Begränsningar i förhandsversionen

  • Aktivitetsagentpooler stöder för närvarande Linux-noder. Windows-noder stöds inte för närvarande.
  • Aktivitetsagentpooler är tillgängliga i förhandsversion i följande regioner: USA, västra 2, USA, södra centrala, USA, östra 2, USA, östra, USA, centrala, Europa, västra, Europa, norra, Kanada, centrala, Asien, östra, Schweiz, norra, USGov Arizona, USGov Texas och USGov Virginia.
  • För varje register är den totala standardkvoten för vCPU (core) 16 för alla standardagentpooler och är 0 för isolerade agentpooler. Öppna en supportbegäran om ytterligare allokering.

Förutsättningar

  • Om du vill använda Azure CLI-stegen i den här artikeln krävs Azure CLI version 2.3.1 eller senare. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. Eller kör i Azure Cloud Shell.
  • Om du inte redan har ett containerregister skapar du ett (Premium-nivå krävs) i en förhandsgranskningsregion.

Poolnivåer

Agentpoolnivåerna tillhandahåller följande resurser per instans i poolen.

Nivå Typ Processor Minne (GB)
S1 standard 2 3
S2 standard 4 8
S3 standard 8 16
I6 isolerad 64 216

Skapa och hantera en aktivitetsagentpool

Ange standardregister (valfritt)

För att förenkla Azure CLI-kommandon som följer anger du standardregistret genom att köra kommandot az config :

az config set defaults.acr=<registryName>

I följande exempel förutsätter vi att du har angett standardregistret. Annars skickar du en --registry <registryName> parameter i varje az acr kommando.

Skapa agentpool

Skapa en agentpool med kommandot az acr agentpool create . I följande exempel skapas en nivå S2-pool (4 CPU/instans). Poolen innehåller som standard 1 instans.

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

Kommentar

Det tar flera minuter att skapa en agentpool och andra poolhanteringsåtgärder.

Skala pool

Skala upp eller ned poolstorleken med kommandot az acr agentpool update . I följande exempel skalas poolen till 2 instanser. Du kan skala till 0 instanser.

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

Skapa pool i ett virtuellt nätverk

Lägga till brandväggsregler

Aktivitetsagentpooler kräver åtkomst till följande Azure-tjänster. Följande brandväggsregler måste läggas till i alla befintliga nätverkssäkerhetsgrupper eller användardefinierade vägar.

Riktning Protokoll Källa Källport Mål Dest-port Använd Kommentarer
Utgående TCP VirtualNetwork Alla AzureKeyVault 443 Standardvärde
Utgående TCP VirtualNetwork Alla Storage 443 Standardvärde
Utgående TCP VirtualNetwork Alla EventHub 443 Standardvärde
Utgående TCP VirtualNetwork Alla AzureActiveDirectory 443 Standardvärde
Utgående TCP VirtualNetwork Alla AzureMonitor 443,12000 Standardvärde Port 12000 är en unik port som används för diagnostik

Kommentar

Om dina uppgifter kräver ytterligare resurser från det offentliga Internet lägger du till motsvarande regler. Ytterligare regler krävs till exempel för att köra en docker build-uppgift som hämtar basavbildningarna från Docker Hub eller återställer ett NuGet-paket.

Kunder som baserar sina distributioner med MCR kan referera till MCR/MAR-brandväggsregler.

Avancerad nätverkskonfiguration

Om standardreglerna brandvägg/NSG (nätverkssäkerhetsgrupp) anses vara för tillåtande och mer detaljerad kontroll krävs för utgående anslutningar bör du överväga följande metod:

  • Aktivera tjänstslutpunkter i undernätet för agentpoolen. Detta ger agentpoolen åtkomst till dess tjänstberoenden samtidigt som en säker nätverksstatus upprätthålls.
  • Det är viktigt att observera att utgående brandvägg/NSG-regler fortfarande är nödvändiga. Dessa regler underlättar det virtuella nätverkets möjlighet att växla käll-IP från offentlig till privat, vilket är ytterligare ett steg utöver att aktivera tjänstslutpunkter.

Mer information om tjänstslutpunkter finns dokumenterad här.

Minst krävs följande tjänstslutpunkter

  • Microsoft.AzureActiveDirectory
  • Microsoft.ContainerRegistry
  • Microsoft.EventHub
  • Microsoft.KeyVault
  • Microsoft.Storage (eller motsvarande lagringsregioner som tar hänsyn till geo-replikering)

Kommentar

För närvarande finns ingen tjänstslutpunkt för Azure Monitor. Om utgående trafik för Azure Monitor inte har konfigurerats kan agentpoolen inte generera diagnostikloggar, men kan fortfarande verka fungera normalt. I det här fallet kan ACR inte hjälpa till att fullständigt felsöka eventuella problem som uppstår, så det är viktigt att nätverksadministratören tar hänsyn till detta när nätverkskonfigurationen planeras.

Observera också att alla ACR-uppgifter har förcachelagrade bilder för några av de vanligaste användningsfallen. Uppgifter cachelagar endast en enskild version i taget, vilket innebär att om den fullständiga taggade bildreferensen används försöker byggagenten hämta avbildningen. Ett vanligt användningsfall är cmd: mcr.microsoft.com/acr/acr-cli:<tag>till exempel . Den förcachelagrade versionen uppdateras dock ofta, vilket innebär att den faktiska versionen på datorn sannolikt kommer att vara högre. I det här fallet måste nätverkskonfigurationen konfigurera en väg för utgående trafik till målregistervärden som i exemplet ovan skulle vara mcr.microsoft.com. Samma regler skulle gälla för alla andra externa offentliga register (docker.io, quay.io, ghcr.io osv.).

Skapa pool i VNet

I följande exempel skapas en agentpool i mysubnet-undernätet för nätverkets 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

Köra uppgift i agentpoolen

I följande exempel visas hur du anger en agentpool när du köar en uppgift.

Kommentar

Om du vill använda en agentpool i en ACR-uppgift kontrollerar du att poolen innehåller minst 1 instans.

Snabbaktivitet

Köa en snabbaktivitet i agentpoolen med hjälp av kommandot az acr build och skicka parametern --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

Aktivitet som utlöses automatiskt

Skapa till exempel en schemalagd aktivitet i agentpoolen med az acr task create och skicka parametern --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

Kontrollera aktivitetskonfigurationen genom att köra az acr task run:

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

Status för frågepool

Om du vill hitta antalet körningar som för närvarande är schemalagda i agentpoolen kör du az acr agentpool show.

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

Nästa steg

Fler exempel på containeravbildningsversioner och underhåll i molnet finns i självstudieserien ACR Tasks.