Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 Premium-servicelaag van het 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, Zweden - centraal, Jio India - west, Jio India - centraal, 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. Als u het quotum wilt verhogen, opent u een ondersteuningsaanvraag.
Vereiste voorwaarden
- 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.
Poolniveaus
Agentpoollagen bieden de volgende resources per instantie in de pool.
| Rang | Typologie | CPU (Centrale Verwerkings Eenheid) | Geheugen (Gigabyte) |
|---|---|---|---|
| S1 | standaard | 2 | 3 |
| S2 | standaard | 4 | 8 |
| S3 | standaard | 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 uit te az config voeren:
az config set defaults.acr=<registryName>
In de volgende voorbeelden wordt ervan uitgegaan dat u het standaardregister al 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 az acr agentpool create opdracht. In het volgende voorbeeld wordt een laag S2-pool (4 CPU/exemplaar) gemaakt. De pool bevat standaard één exemplaar.
az acr agentpool create \
--registry myregistry \
--name myagentpool \
--tier S2
Opmerking
Het maken van een agentpool en andere poolbeheerbewerkingen duurt enkele minuten.
Pool opschalen
Schaal de poolgrootte omhoog of omlaag met de az acr agentpool update opdracht. In het volgende voorbeeld wordt de pool geschaald naar twee instanties.
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 | Bestemming | Dest-poort | Gebruikt | Opmerkingen |
|---|---|---|---|---|---|---|---|
| Vertrekkend | TCP | VirtualNetwork | Welke dan ook | AzureKeyVault | 443 | Verstek | |
| Vertrekkend | TCP | VirtualNetwork | Welke dan ook | Opslag | 443 | Verstek | |
| Vertrekkend | TCP | VirtualNetwork | Welke dan ook | EventHub | 443 | Verstek | |
| Vertrekkend | TCP | VirtualNetwork | Welke dan ook | AzureActiveDirectory | 443 | Verstek | |
| Vertrekkend | TCP | VirtualNetwork | Welke dan ook | AzureMonitor | 443,12000 | Verstek | Poort 12000 is een unieke poort die wordt gebruikt voor diagnostische gegevens |
Opmerking
Als voor uw taken andere resources van het openbare internet nodig zijn, voegt u de bijbehorende regels toe. Er zijn bijvoorbeeld regels nodig om een Docker-buildtaak uit te voeren waarmee de basisinstallatiekopieën worden opgehaald uit Docker Hub of waarmee een NuGet-pakket wordt hersteld.
Klanten die hun implementaties met MCR baseren, kunnen verwijzen naar MCR/MAR-firewallregels.
Geavanceerde netwerkconfiguratie
Als de standaardregels van de firewall/NSG (netwerkbeveiligingsgroep) te permissief worden geacht en er meer verfijnde controle is vereist voor uitgaande verbindingen, kunt u de volgende aanpak overwegen:
- Schakel service-eindpunten in het subnet van de agentgroep in. Hierdoor krijgt de agentpool toegang tot zijn serviceafhankelijkheden, terwijl de netwerkbeveiliging behouden blijft.
- Het is belangrijk te weten dat uitgaande firewall-/NSG-regels nog steeds nodig zijn. Deze regels vergemakkelijken de mogelijkheid van het virtuele netwerk om het bron-IP-adres van openbaar naar privé over te schakelen. Dit is nog een stap verder dan het inschakelen van service-eindpunten.
Voor meer informatie over service-eindpunten, zie Azure-services beveiligen van virtuele netwerken.
De volgende service-eindpunten zijn minimaal vereist:
- Microsoft.AzureActiveDirectory
- Microsoft.ContainerRegistry (alleen als het register geen privékoppeling gebruikt)
- Microsoft.EventHub
- Microsoft KeyVault (Een dienst voor het beheren van certificaten en geheime gegevens)
- Microsoft.Storage (of de bijbehorende opslagregio's waarbij rekening wordt gehouden met geo-replicatie)
Opmerking
Er bestaat momenteel geen service-eindpunt voor Azure Monitor. Als uitgaand verkeer voor Azure Monitor niet is geconfigureerd, kan de agentgroep geen diagnostische logboeken verzenden, maar werkt deze mogelijk nog steeds normaal. In dit geval kan ACR geen problemen die zijn opgetreden, volledig oplossen. Het is dus belangrijk dat u rekening houdt met dit probleem bij het plannen van de netwerkconfiguratie.
Houd er ook rekening mee dat ACR Tasks voorgecachete afbeeldingen bevatten voor enkele van de meest voorkomende gebruiksscenario's. Taken slaan slechts één versie tegelijk in de cache op, wat betekent dat als de volledige verwijzing naar het gelabelde image wordt gebruikt, de build-agent probeert het image op te halen. Een veelvoorkomende use-case is cmd: mcr.microsoft.com/acr/acr-cli:<tag>bijvoorbeeld . De vooraf in de cache opgestelde versie wordt echter regelmatig bijgewerkt, wat betekent dat de werkelijke versie op de computer waarschijnlijk hoger is. In dit geval moet de netwerkconfiguratie een route configureren voor uitgaand verkeer naar de doelregisterhost, die in het vorige voorbeeld zou zijn mcr.microsoft.com. Dezelfde regels zijn van toepassing op elk ander extern openbaar register (docker.io, quay.io, ghcr.io, enzovoort).
Aangepaste DNS gebruiken
Als het subnet een aangepaste DNS-server heeft geconfigureerd, wordt deze configuratie tijdens runtime overgenomen door de buildagent.
Belangrijk
Het IP-bereik dat wordt gebruikt door het aangepaste DNS-eindpunt mag niet conflicteren met het standaardbereik van 172.17.0.0/16Docker.
Pool maken in VNet
In het volgende voorbeeld wordt een agentgroep gemaakt in het subnet van het mysubnet netwerk 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
Taak uitvoeren op agentenpool
In de volgende voorbeelden ziet u hoe u een agentgroep opgeeft bij het in de wachtrij plaatsen van een taak.
Opmerking
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 az acr build opdracht 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 het volgende uit az acr task runom de installatie van de taak te controleren:
az acr task run \
--registry myregistry \
--name mytask
Status van querygroep
Als u het aantal runs wilt vinden dat op dit moment is gepland in de agent pool, voert u de opdracht uit az acr agentpool show.
az acr agentpool show \
--registry myregistry \
--name myagentpool \
--queue-count
Volgende stappen
Bekijk de zelfstudiecursus ACR Tasks voor meer voorbeelden van container imaging builds en onderhoud in de cloud.