Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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: Västra USA 2, Södra centrala USA, Östra USA 2, Östra USA, Centrala USA, Västeuropa, Nordeuropa, Centrala Kanada, Östra Asien, Norra Schweiz, 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 ett supportärende för ytterligare allokering av resurser.
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, se 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 | CPU (centralenhet) | Minne (Gigabyte) |
---|---|---|---|
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
Anmärkning
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ägg 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 | Resmål | Dest-port | Använd | Anmärkningar |
---|---|---|---|---|---|---|---|
Utgående | TCP | VirtualNetwork | Vilken som helst | AzureKeyVault | 443 | Förinställning | |
Utgående | TCP | VirtualNetwork | Vilken som helst | Förvaring | 443 | Förinställning | |
Utgående | TCP | VirtualNetwork | Vilken som helst | EventHub | 443 | Förinställning | |
Utgående | TCP | VirtualNetwork | Vilken som helst | AzureActiveDirectory | 443 | Förinställning | |
Utgående | TCP | VirtualNetwork | Vilken som helst | AzureMonitor | 443,12000 | Förinställning | Port 12000 är en unik port som används för diagnostik |
Anmärkning
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 driftsättningar med MCR kan hänvisa 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äggs- och 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 (endast om registret inte använder en privat länk)
- Microsoft.EventHub
- Microsoft.KeyVault
- Microsoft.Storage (eller motsvarande lagringsregioner som tar hänsyn till geografisk replikering)
Anmärkning
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 inom systemet cachelagrar endast en version åt gången, vilket innebär att om den fullständiga taggade bildreferensen används, kommer byggagenten att försöka 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.).
Använda anpassad DNS
Om undernätet har en anpassad DNS-server konfigurerad ärvs detta av byggagenten under körningen.
Viktigt!
IP-intervallet som används av den anpassade DNS-slutpunkten får inte vara i konflikt med Docker-standardintervallet 172.17.0.0/16
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.
Anmärkning
Om du vill använda en agentpool i en ACR-uppgift kontrollerar du att poolen innehåller minst 1 instans.
Snabb uppgift
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
För fler exempel på containerbilder och underhåll i molnet kan du kolla in självstudieserien ACR Tasks.