Geo-replicatie in Azure Container Registry

Bedrijven die lokale aanwezigheid willen, of een back-up zonder opnieuw opstarten, kunnen services uitvoeren vanuit meerdere Azure-regio's. Het plaatsen van een containerregister in elke regio waarin installatiekopieën worden uitgevoerd, is een best practice die bewerkingen dicht bij het netwerk mogelijk maakt, wat zorgt voor snelle, betrouwbare overdrachten van installatiekopielagen. Met geo-replicatie kan een Azure-containerregister als één register functioneren en meerdere regio's bedienen met regionale registers voor meerdere masters.

Een register met geo-replicatie biedt de volgende voordelen:

  • Namen van één register, afbeelding en tag kunnen worden gebruikt in meerdere regio's
  • Prestaties en betrouwbaarheid van regionale implementaties verbeteren met registertoegang dicht bij het netwerk
  • Kosten voor gegevensoverdracht verlagen door de laag van de afbeelding op te halen uit een lokaal, gerepliceerd register in dezelfde of in de buurt als uw containerhost
  • Eén beheerpunt voor een register in meerdere regio's
  • Register tolerantie als er een regionale storing optreedt

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. U kunt bijvoorbeeld binnen een DevOps-werkstroom een installatiekopie uit een ontwikkelingsregister naar een productieregister importeren zonder Docker-opdrachten te gebruiken.
  • Zie Handmatig een containerregister verplaatsen naar een andere regio als u een register wilt verplaatsen naar een andere Azure-regio in plaats van het register geo-repliceren.

Voorbeeld van een toepassing

Contoso voert een website voor openbare aanwezigheid uit voor 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-installatiekopie, gebruikt dezelfde code en installatiekopie in alle regio's. Inhoud, die lokaal is voor een bepaalde regio, wordt opgehaald uit een database, die uniek 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 gebruikt het datacentrum VS - west.

Pushen naar meerdere registers
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 installatiekopieën naar twee verschillende registers 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
Ophalen vanuit meerdere registers

Typische uitdagingen van meerdere registers zijn onder meer:

  • De clusters VS - oost, VS - west en Canada - centraal halen allemaal gegevens op uit het register VS - west, waarbij extra kosten voor uitgaand verkeer worden gegenereerd omdat al deze externe containerhosts installatiekopieën ophalen vanuit datacenters in VS - west.
  • Het ontwikkelteam moet installatiekopieën pushen naar registers in VS - west en Europa - west.
  • Het ontwikkelteam moet elke regionale implementatie configureren en onderhouden met installatiekopienamen die verwijzen naar het lokale register.
  • Toegang tot het register moet voor elke regio worden geconfigureerd.

Voordelen van geo-replicatie

Ophalen vanuit een geo-gerepliceerd register

De functie voor geo-replicatie van Azure Container Registry biedt de volgende voordelen:

  • Eén register beheren voor alle regio's: contoso.azurecr.io
  • Beheer één configuratie van implementaties van installatie afbeeldingen, omdat alle regio's dezelfde afbeeldings-URL gebruiken: contoso.azurecr.io/public/products/web:1.2
  • Push naar één register, terwijl ACR de geo-replicatie automatisch beheert. ACR repliceert alleen unieke lagen, waardoor de gegevensoverdracht tussen regio's wordt verkleind.
  • Regionale webhooks configureren om u op de hoogte te stellen van gebeurtenissen in specifieke replica's.
  • Een register met hoge beschikbare gegevens bieden dat bestand is tegen regionale uitval.

Azure Container Registry ondersteunt ook beschikbaarheidszones voor het maken van een robuust Azure-containerregister met hoge beschikbaarheid binnen een Azure-regio. De combinatie van beschikbaarheidszones voor redundantie binnen een regio en geo-replicatie tussen meerdere regio's verbetert zowel de betrouwbaarheid als 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 hulpprogramma's zoals de opdrachten az acr replication 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:

Schakelen tussen servicelagen in de Azure Portal

Als u geo-replicatie voor een Premium-register wilt configureren, moet u zich aanmelden bij de Azure-portal via https://portal.azure.com.

Ga naar Azure Container Registry en selecteer Replicaties:

Replicaties in de containerregister-UI van Azure Portal

Er wordt een kaart weergegeven met alle huidige Azure-regio's:

Kaart met regio's in Azure Portal

  • Blauwe zeshoeken staan voor 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:

Gebruikersinterface voor het maken van een replicatie in Azure Portal

Als u extra replica's wilt configureren, selecteert u de groene zeshoeken voor andere regio's en klikt u op Maken.

ACR begint installatiekopieën te synchroniseren voor 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 geo-gerepliceerde regio.
  • Wanneer u afbeeldingen uit een geo-gerepliceerd register pusht of pullt, verzendt Azure Traffic Manager op de achtergrond de aanvraag naar het register in de regio die zich het dichtst bij u in de buurt bevindt wat betreft netwerklatentie.
  • Nadat u een afbeeldings- of tagupdate naar de dichtstbijzijnde regio hebt pusht, duurt het even voor Azure Container Registry de manifesten en lagen repliceert naar de resterende regio's waar u zich voor hebt gekozen. Grotere afbeeldingen duren langer om te repliceren dan kleinere. Afbeeldingen en tags worden gesynchroniseerd tussen de replicatieregio's met een model voor uiteindelijke consistentie.
  • Voor het beheren van werkstromen 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 binnen een geo-gerepliceerd register instellen om pushgebeurtenissen bij te houden wanneer ze worden voltooid in de geo-gerepliceerde regio's.
  • Voor het leveren van blobs die inhoudslagen vertegenwoordigen, Azure Container Registry gegevens-eindpunten gebruikt. U kunt toegewezen gegevens eindpunten inschakelen voor uw register in elk van de geografisch gerepliceerde regio's van uw register. Met deze eindpunten kunt u firewalltoegangsregels met een nauw bereik configureren. Voor het oplossen van problemen kunt u routering naar een replicatie desgewenst uitschakelen terwijl de gerepliceerde gegevens behouden blijven.
  • Als u een privékoppeling voor uw register configureert met behulp van privé-eindpunten in een virtueel netwerk, worden toegewezen gegevens eindpunten 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 zone-redundantie. Het inschakelen van zone-redundantie in elke replicaregio wordt ook aanbevolen.
  • Als er een storing optreedt in de thuisregio van het register (de regio waar het register is gemaakt) of een van de replicaregio's, blijft een geo-gerepliceerd register beschikbaar voor bewerkingen op de gegevensvlak, zoals het pushen of binnenhalen 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 wilt plannen voor hoge beschikbaarheid van een geo-gerepliceerd register dat is versleuteld met een door de klant beheerde sleutel die is opgeslagen in een Azure-sleutelkluis, bekijkt u de richtlijnen voor failoveren redundantie van Key Vault.

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 hulpprogramma's of andere hulpprogramma's, zoals de opdracht az acr replication delete in de Azure CLI.

Een replica in de Azure Portal:

  1. Navigeer naar Azure Container Registry en selecteer Replicaties.
  2. Selecteer de naam van een replica en selecteer Verwijderen. Bevestig dat u de replica wilt verwijderen.

De Azure CLI gebruiken om een replica van myregistry 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 de gewenste regio's repliceert, worden er kosten voor het Premium-register voor elke regio gemaakt.

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 installatiekopieën lokaal op, wat zorgt voor betere prestaties en een hogere betrouwbaarheid zonder kosten voor uitgaand netwerkverkeer voor VS - west naar Canada en VS - oost.

Problemen met pushbewerkingen met geo-gerepliceerde registers oplossen

Een Docker-client die een afbeelding naar een geo-gerepliceerd register pusht, pusht mogelijk niet alle laag van de afbeelding en het manifest ervan naar één gerepliceerde regio. Dit kan gebeuren omdat Azure Traffic Manager naar het netwerk dichtstbijzijnde gerepliceerde register routeert. Als het register twee replicatieregio's in de buurt heeft, kunnen de 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 doet zich niet voor op Windows, die 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, bekijkt u opties in DNS-naamresolutieopties voor virtuele Linux-machines in Azure.

Als u de DNS-resolutie naar de dichtstbijzijnde replica wilt optimaliseren bij het pushen van afbeeldingen, configureert u een geo-gerepliceerd register in dezelfde Azure-regio's als de bron van de pushbewerkingen, of in de dichtstbijzijnde regio wanneer u buiten Azure werkt.

Routering naar replicatie tijdelijk uitschakelen

Als u problemen met bewerkingen met een geo-gerepliceerd register wilt oplossen, kunt u de routering Traffic Manager naar een of meer replicaties tijdelijk uitschakelen. Vanaf Azure CLI versie 2.8 kunt u een optie --region-endpoint-enabled (preview) configureren wanneer u een gerepliceerde regio maakt of bij bijgewerkt. Wanneer u de optie van een replicatie in stelt op , Traffic Manager niet langer --region-endpoint-enabled false docker push- of pull-aanvragen naar die regio door. 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, moet u eerst az acr replication list uitvoeren om de replicaties in het register weer te maken. Voer vervolgens az acr replication update uit en stel in voor een specifieke --region-endpoint-enabled false replicatie. Als u bijvoorbeeld de instelling voor de replicatie westus 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

Routering naar een replicatie herstellen:

az acr replication update --name westus \
  --registry myregistry --resource-group MyResourceGroup \
  --region-endpoint-enabled true

Volgende stappen

Bekijk de driedelige zelfstudiereeks 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.