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.
Bedrijven die een lokale aanwezigheid of een dynamische back-up willen, kiezen ervoor om services uit te voeren vanuit meerdere Azure-regio's. Het wordt aanbevolen om containerregistries in elke regio te plaatsen waar images worden uitgevoerd, zodat netwerkdichte operaties mogelijk zijn die zorgen voor snelle en betrouwbare overdracht van imagelagen. Met geo-replicatie kan een Azure-containerregister functioneren als één register, door meerdere regio's te bedienen met meervoudige primaire regionale registers.
Een register met geo-replicatie biedt de volgende voordelen:
- Een enkele registernaam, image en tagnaam kan in meerdere regio's worden gebruikt.
- Prestaties en betrouwbaarheid van regionale implementaties verbeteren met netwerktoegang tot het register
- Kosten voor gegevensoverdracht verlagen door imagelagen op te halen uit een lokaal, gerepliceerd register in dezelfde regio of een nabije regio als uw containerhost.
- Eén beheerpunt voor een register in meerdere regio's
- Bestendigheid van het register bij regionale storingen
Notitie
- Als u kopieën van containerinstallaties in meer dan één Azure-containerregister wilt behouden, kunt u met Azure Container Registry ook installatiekopieën importeren. In een DevOps-werkstroom kunt u bijvoorbeeld een installatiekopie uit een ontwikkelingsrepository importeren naar een productierepository zonder Docker-opdrachten te hoeven gebruiken.
- Als u een register naar een andere Azure-regio wilt verplaatsen in plaats van het register geografisch te repliceren, raadpleegt u Handmatig een containerregister verplaatsen naar een andere regio.
Vereisten
De gebruiker heeft de volgende machtigingen (op registerniveau) nodig om replicaties te maken/verwijderen:
Machtiging Beschrijving Microsoft.ContainerRegistry/registries/write Een replicatie maken Microsoft.ContainerRegistry/registries/replications/write Een replicatie verwijderen
Voorbeeld van een toepassing
Contoso beheert een openbare website in de VS, Canada en Europa. Contoso voert AKS-clusters (Azure Kubernetes Service) uit in VS - west, VS - oost, Canada - centraal en Europa - west om deze markten met lokale inhoud van dicht bij het netwerk te bedienen. De webtoepassing, geïmplementeerd als een Docker-image, gebruikt dezelfde code en image voor alle regio's. Inhoud die lokaal is voor die regio wordt opgehaald uit een database, die op unieke wijze is ingericht in elke regio. Elke regionale implementatie heeft een unieke configuratie voor resources zoals de lokale database.
Het ontwikkelteam bevindt zich in Seattle, WA en maakt gebruik van het datacenter VS - west.
Pushen naar meerdere registers
Voordat Contoso de functies voor geo-replicatie ging gebruiken, had het bedrijf een in de VS gebaseerd register in VS - west, met een extra register in Europa - west. Het ontwikkelteam pushte afbeeldingen naar twee verschillende registeren om deze verschillende regio's te bedienen.
docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2
Ophalen vanuit meerdere registers
Typische uitdagingen van meerdere registers zijn onder meer:
- Alle clusters VS-oost, VS-west en Canada centraal worden opgehaald uit het VS-westregister, waardoor uitgaande kosten in rekening worden gebracht, omdat elk van deze externe containerhosts images ophaalt uit datacenters in VS-west.
- Het ontwikkelteam moet afbeeldingen pushen naar registers in de Westelijke VS en West-Europa.
- Het ontwikkelingsteam moet elke regionale implementatie configureren en onderhouden met afbeeldingsnamen die verwijzen naar het lokale register.
- Toegang tot het register moet voor elke regio worden geconfigureerd.
Voordelen van geo-replicatie
De functie voor geo-replicatie van Azure Container Registry heeft de volgende voordelen:
- Eén register beheren voor alle regio's:
contoso.azurecr.io
- Eén configuratie van installatiekopieënimplementaties beheren omdat alle regio's dezelfde installatiekopieën-URL gebruiken:
contoso.azurecr.io/public/products/web:1.2
- Voer een push uit naar een enkel register terwijl het Azure Container Registry (ACR) de geo-replicatie automatisch beheert. ACR repliceert alleen unieke lagen, waardoor de gegevensoverdracht tussen regio's wordt verminderd.
- Configureer regionale webhooks om u op de hoogte te stellen van gebeurtenissen in specifieke replica's.
- Geef een maximaal beschikbaar register op dat bestand is tegen regionale storingen.
Azure Container Registry biedt ook ondersteuning voor beschikbaarheidszones voor het maken van een flexibele en hoge beschikbaarheid van Azure-containerregisters binnen een Azure-regio. De combinatie van beschikbaarheidszones voor redundantie binnen een regio en geo-replicatie in meerdere regio's verbetert zowel de betrouwbaarheid als de prestaties van een register.
Geo-replicatie configureren
Het configureren van geo-replicatie is net zo gemakkelijk als regio's aanklikken op een kaart. U kunt geo-replicatie ook beheren met behulp van hulpprogramma's, waaronder de az acr-replicatieopdrachten in de Azure CLI, of een register implementeren dat is ingeschakeld voor geo-replicatie met een Azure Resource Manager-sjabloon.
Geo-replicatie is een functie van Premium-registers. Als uw register nog niet Premium is, kunt u overstappen van Basic en Standard naar Premium in de Azure-portal:
Als u geo-replicatie voor uw Premium-register wilt configureren, meldt u zich aan bij Azure Portal.
Ga naar Azure Container Registry en selecteer Replicaties:
Er wordt een kaart weergegeven met alle huidige Azure-regio's:
- Blauwe zeshoeken vertegenwoordigen de huidige replica's
- Groene zeshoeken staan voor mogelijk replicatieregio's
- Grijze zeshoeken staan voor Azure-regio's die nog niet beschikbaar zijn voor replicatie
Als u een replica wilt configureren, selecteert u een groene zeshoek en selecteert u vervolgens Maken:
Als u extra replica's wilt configureren, selecteert u de groene zeshoeken die de andere regio's vertegenwoordigen en klikt u op Maken.
ACR begint afbeeldingen te synchroniseren over de geconfigureerde replica's. Zodra dit is voltooid, geeft de portal Gereed weer. De status van de replica in de portal wordt niet automatisch bijgewerkt. Gebruik de vernieuwknop om de bijgewerkte status te bekijken.
Overwegingen voor het gebruik van een geo-gerepliceerd register
- Elke regio in een geo-gerepliceerd register is onafhankelijk na het instellen. Azure Container Registry SLA's zijn van toepassing op elke geografisch gerepliceerde regio.
- Voor elke push- of pull-afbeeldingsbewerking op een geo-gerepliceerd register verzendt Azure Traffic Manager op de achtergrond een aanvraag naar de dichtstbijzijnde regiolocatie van het register om de netwerklatentie te minimaliseren.
- Nadat u een installatiekopie- of tag-update naar de dichtstbijzijnde regio hebt gepusht, duurt het even voordat Azure Container Registry de manifesten en lagen repliceert naar de resterende regio's waar u zich hebt aangemeld. Het duurt langer om grotere afbeeldingen te repliceren dan kleinere afbeeldingen. Afbeeldingen en tags worden gesynchroniseerd in de replicatieregio's met een uiteindelijk consistentiemodel.
- Als u werkstromen wilt beheren die afhankelijk zijn van push-updates naar een geo-gerepliceerd register, raden we u aan webhooks te configureren om te reageren op de pushgebeurtenissen. U kunt regionale webhooks instellen in een geo-gerepliceerd register om pushgebeurtenissen bij te houden zodra ze zijn voltooid in de geografisch gerepliceerde regio's.
- Azure Container Registry maakt gebruik van gegevenseindpunten voor blobs die inhoudslagen vertegenwoordigen. U kunt toegewezen gegevenseindpunten inschakelen voor uw register in elk van de geografisch gerepliceerde regio's van uw register. Met deze eindpunten kunnen nauwkeurig gedefinieerde firewalltoegangsregels worden geconfigureerd. Voor probleemoplossingsdoeleinden kunt u optioneel routering naar een replicatie uitschakelen terwijl gerepliceerde gegevens worden onderhouden.
- Als u een privékoppeling voor uw register configureert met behulp van privé-eindpunten in een virtueel netwerk, worden toegewezen gegevenseindpunten in elk van de geografisch gerepliceerde regio's standaard ingeschakeld.
Overwegingen voor hoge beschikbaarheid
- Voor hoge beschikbaarheid en tolerantie raden we u aan een register te maken in een regio die ondersteuning biedt voor het inschakelen van zoneredundantie. Het inschakelen van zoneredundantie in elke replicaregio wordt ook aanbevolen.
- Als er een storing optreedt in de basisregio van het register (de regio waar het is gemaakt) of een van de replicaregio's, blijft een geo-gerepliceerd register beschikbaar voor datavlakbewerkingen, zoals het pushen of ophalen van containerafbeeldingen.
- Als de basisregio van het register niet meer beschikbaar is, kunt u mogelijk geen registerbeheerbewerkingen uitvoeren, waaronder het configureren van netwerkregels, het inschakelen van beschikbaarheidszones en het beheren van replica's.
- Als u een hoge beschikbaarheid van een geo-gerepliceerd register wilt plannen dat is versleuteld met een door de klant beheerde sleutel die is opgeslagen in een Azure-sleutelkluis, raadpleegt u de richtlijnen voor failover en redundantie van de sleutelkluis.
Een replica verwijderen
Nadat u een replica voor uw register hebt geconfigureerd, kunt u deze op elk gewenst moment verwijderen als deze niet meer nodig is. Verwijder een replica met behulp van Azure Portal of andere hulpprogramma's, zoals de opdracht az acr replication delete in de Azure CLI.
Ga als volgt te werk om een replica te verwijderen in Azure Portal:
- Navigeer naar uw Azure Container Registry en selecteer Replicaties.
- Selecteer de naam van een replica en selecteer Verwijderen. Bevestig dat u de replica wilt verwijderen.
Als u de Azure CLI wilt gebruiken om een replica van mijn register te verwijderen in de regio VS - oost:
az acr replication delete --name eastus --registry myregistry
Prijzen van geo-replicatie
Geo-replicatie is een functie van de Premium-servicelaag van Azure Container Registry. Wanneer u een register naar uw gewenste regio's repliceert, maakt u voor elke regio kosten voor het Premium-register.
In het voorgaande voorbeeld ging Contoso van twee registers naar één en voegde het bedrijf replica's toe aan VS - oost, Canada - centraal en Europa - west. Contoso zou vier keer per maand Premium betalen, zonder extra configuratie of beheer. Elke regio haalt nu hun afbeeldingen lokaal op, waardoor de prestaties en betrouwbaarheid worden verbeterd zonder netwerkegressiekosten van West-VS naar Canada en Oost-VS.
Problemen oplossen bij pushbewerkingen met geo-gerepliceerde registers
Een Docker-client die een installatiekopie naar een geo-gerepliceerd register pusht, pusht mogelijk niet alle lagen van de installatiekopie en het manifest naar een enkele gerepliceerde regio. Dit kan gebeuren omdat Azure Traffic Manager registeraanvragen naar het dichtstbijzijnde gerepliceerde register bij het netwerk routeert. Als het register twee replicatieregio's in de buurt heeft, kunnen afbeeldingslagen en het manifest worden gedistribueerd naar de twee sites en mislukt de pushbewerking wanneer het manifest wordt gevalideerd. Dit probleem treedt op vanwege de manier waarop de DNS-naam van het register wordt opgelost op sommige Linux-hosts. Dit probleem treedt niet op in Windows, wat een DNS-cache aan de clientzijde biedt.
Als dit probleem zich voordoet, is één oplossing het toepassen van een DNS-cache aan de clientzijde, zoals dnsmasq
op de Linux-host. Dit zorgt ervoor dat de naam van het register consistent wordt opgelost. Als u een Virtuele Linux-machine in Azure gebruikt om naar een register te pushen, raadpleegt u opties in OPTIES voor DNS-naamomzetting voor virtuele Linux-machines in Azure.
Configureer een geo-gerepliceerd register in dezelfde Azure-regio's als de bron van de pushbewerkingen of de dichtstbijzijnde regio wanneer u buiten Azure werkt om de DNS-resolutie te optimaliseren naar de dichtstbijzijnde replica bij het pushen van installatiekopieën.
Routering naar replicatie tijdelijk uitschakelen
Als u problemen met bewerkingen met een geo-gerepliceerd register wilt oplossen, kunt u de Routering van Traffic Manager tijdelijk uitschakelen naar een of meer replicaties. Vanaf Azure CLI versie 2.8 kunt u een --region-endpoint-enabled
optie (preview) configureren wanneer u een gerepliceerde regio maakt of bijwerkt. Wanneer u de --region-endpoint-enabled
-optie van een replicatie instelt op false
, stuurt Traffic Manager geen docker push- of pull-aanvragen meer naar die regio. Standaard is routering naar alle replicaties ingeschakeld en vindt gegevenssynchronisatie voor alle replicaties plaats, ongeacht of routering is ingeschakeld of uitgeschakeld.
Als u routering naar een bestaande replicatie wilt uitschakelen, voert u eerst az acr replication list uit om de replicaties in het register weer te geven. Voer vervolgens az acr replication update uit en stel --region-endpoint-enabled false
deze in voor een specifieke replicatie. Als u bijvoorbeeld de instelling voor de westus-replicatie in myregistry wilt configureren:
# Show names of existing replications
az acr replication list --registry --output table
# Disable routing to replication
az acr replication update --name westus \
--registry myregistry --resource-group MyResourceGroup \
--region-endpoint-enabled false
Routeherstel voor een replicatie:
az acr replication update --name westus \
--registry myregistry --resource-group MyResourceGroup \
--region-endpoint-enabled true
Een replicatie maken voor een register waarvoor een privé-eindpunt is ingeschakeld
Wanneer u een nieuwe registerreplicatie maakt voor het primaire register dat is ingeschakeld met een privé-eindpunt, wordt u aangeraden te valideren dat de gebruikersidentiteit geldige machtigingen voor het maken van privé-eindpunten heeft. Anders loopt de bewerking vast in de inrichtingsstatus tijdens het maken van de replicatie.
Volg deze stappen als u vastloopt in de voorzieningenstatus tijdens het opzetten van de registerreplicatie:
- Verwijder handmatig de replicatie die vastgelopen is in de voorbereidingsstatus.
- Voeg de
Microsoft.Network/privateEndpoints/privateLinkServiceProxies/write
machtiging voor de gebruikersidentiteit toe. - Maak de registerreplicatieaanvraag opnieuw.
Deze machtigingscontrole is alleen van toepassing op de registers waarvoor privé-eindpunt is ingeschakeld.
Volgende stappen
Bekijk de driedelige tutorialreeks Geo-replicatie in Azure Container Registry. Ontdek hoe u een geo-gerepliceerd register maakt, een container bouwt en het vervolgens met één docker push
-opdracht implementeert naar meerdere regionale Web App for Containers-instanties.