Georeplikation in Azure Container RegistryGeo-replication in Azure Container Registry

Unternehmen, die eine lokale Umgebung oder ein Hotbackup wünschen, entscheiden sich für die Ausführung von Diensten in mehreren Azure-Regionen.Companies that want a local presence, or a hot backup, choose to run services from multiple Azure regions. Als bewährte Methode ermöglicht die Platzierung einer Containerregistrierung in jeder Region, in der Images ausgeführt werden, netzwerknahe Vorgänge, die schnelle und zuverlässige Übertragungen auf Image-Ebene gestatten.As a best practice, placing a container registry in each region where images are run allows network-close operations, enabling fast, reliable image layer transfers. Die Georeplikation ermöglicht einer Azure-Containerregistrierung, als zentrale Registrierung zu fungieren, die mehreren Regionen regionale Multimasterregistrierungen zur Verfügung stellt.Geo-replication enables an Azure container registry to function as a single registry, serving multiple regions with multi-master regional registries.

Eine Registrierung mit Georeplikation bietet folgende Vorteile:A geo-replicated registry provides the following benefits:

  • Einzelner Registrierungs-/Image-/Tagname in mehreren Regionen verwendbarSingle registry/image/tag names can be used across multiple regions
  • Netzwerknaher Registrierungszugriff in regionalen BereitstellungenNetwork-close registry access from regional deployments
  • Keine zusätzlichen Ausgangsgebühren, da Images aus einer lokalen, replizierten Registrierung in der gleichen Region wie Ihr Containerhost abgerufen werdenNo additional egress fees, as images are pulled from a local, replicated registry in the same region as your container host
  • Zentrale Verwaltung einer Registrierung über mehrere Regionen hinwegSingle management of a registry across multiple regions

Hinweis

Für den Fall, dass Sie Kopien von Containerimages in mehreren Azure-Containerregistrierungen verwalten müssen, unterstützt die Azure-Containerregistrierung auch den Import von Images.If you need to maintain copies of container images in more than one Azure container registry, Azure Container Registry also supports image import. Beispielsweise können Sie in einem DevOps-Workflow ein Image aus einer Entwicklungsregistrierung in eine Produktionsregistrierung importieren, ohne dazu Docker-Befehle verwenden zu müssen.For example, in a DevOps workflow, you can import an image from a development registry to a production registry, without needing to use Docker commands.

Beispiel eines AnwendungsfallsExample use case

Contoso betreibt eine öffentlich zugängliche Website in den USA, Kanada und Europa.Contoso runs a public presence website located across the US, Canada, and Europe. Um diese Märkte mit lokalen und netzwerknahen Inhalten zu bedienen, betreibt Contoso Azure Kubernetes Service-Cluster (AKS) in den Regionen „USA, Westen“, „USA, Osten“, „Kanada, Mitte“ und „Europa, Westen“.To serve these markets with local and network-close content, Contoso runs Azure Kubernetes Service (AKS) clusters in West US, East US, Canada Central, and West Europe. Die Websiteanwendung, die als Docker-Image bereitgestellt ist, verwendet in allen Regionen den gleichen Code und das gleiche Image.The website application, deployed as a Docker image, utilizes the same code and image across all regions. Der für die jeweilige Region lokale Inhalt wird aus einer Datenbank abgerufen, die in jeder Region individuell bereitgestellt wird.Content, local to that region, is retrieved from a database, which is provisioned uniquely in each region. Jede regionale Bereitstellung hat eine eigene Konfiguration für Ressourcen wie die lokale Datenbank.Each regional deployment has its unique configuration for resources like the local database.

Das Bereitstellungsteam befindet sich in Seattle im US-Bundesstaat Washington und nutzt das Rechenzentrum USA, Westen.The development team is located in Seattle WA, utilizing the West US data center.

Übertragung per Push in mehrere RegistrierungenPushing to multiple registries
Übertragung per Push in mehrere RegistrierungenPushing to multiple registries

Vor der Nutzung der Georeplikationsfunktionen verfügte Contoso über eine Registrierung in der Region „USA, Westen“ und eine zusätzliche Registrierung in der Region „Europa, Westen“.Prior to using the geo-replication features, Contoso had a US-based registry in West US, with an additional registry in West Europe. Um diese verschiedenen Regionen zu versorgen, übertrug das Entwicklungsteam Images per Push in zwei verschiedene Registrierungen.To serve these different regions, the development team pushed images to two different registries.

docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2

Abruf per Pull aus mehreren RegistrierungenPulling from multiple registries
Abruf per Pull aus mehreren RegistrierungenPulling from multiple registries

Es folgen typische Herausforderungen bei mehreren Registrierungen:Typical challenges of multiple registries include:

  • Die Cluster „USA, Osten“, „USA, Westen“ und „Kanada, Mitte“ rufen Daten per Pull aus der Registrierung „USA, Westen“ ab. Dabei fallen Ausgangsgebühren an, da jeder dieser Remotecontainerhosts Images per Pull aus den Rechenzentren von „USA, Westen“ abruft.The East US, West US, and Canada Central clusters all pull from the West US registry, incurring egress fees as each of these remote container hosts pull images from West US data centers.
  • Das Entwicklungsteam muss Images in die Registrierungen „USA, Westen“ und „Europa, Westen“ per Push übertragen.The development team must push images to West US and West Europe registries.
  • Das Entwicklungsteam muss jede regionale Bereitstellung mit Imagenamen konfigurieren und verwalten, die auf die lokale Registrierung verweisen.The development team must configure and maintain each regional deployment with image names referencing the local registry.
  • Der Zugriff auf die Registrierung muss für jede Region konfiguriert werden.Registry access must be configured for each region.

Vorteile der GeoreplikationBenefits of geo-replication

Abruf per Pull aus Registrierung mit Georeplikation

Die Georeplikationsfunktion von Azure Container Registry bietet die folgenden Vorteile:Using the geo-replication feature of Azure Container Registry, these benefits are realized:

  • Verwalten einer einzelnen Registrierung in allen Regionen: contoso.azurecr.ioManage a single registry across all regions: contoso.azurecr.io
  • Verwalten einer einzelnen Konfiguration von Imagebereitstellungen, da alle Regionen die gleiche Image-URL verwenden: contoso.azurecr.io/public/products/web:1.2Manage a single configuration of image deployments as all regions used the same image URL: contoso.azurecr.io/public/products/web:1.2
  • Übertragung per Push in eine einzelne Registrierung, während ACR die Georeplikation verwaltet.Push to a single registry, while ACR manages the geo-replication. Sie können regionale Webhooks konfigurieren, um über Ereignisse in bestimmten Replikaten benachrichtigt zu werden.You can configure regional webhooks to notify you of events in specific replicas.

Konfigurieren der GeoreplikationConfigure geo-replication

Die Konfiguration der Georeplikation ist so einfach wie das Klicken auf Regionen auf einer Karte.Configuring geo-replication is as easy as clicking regions on a map. Außerdem können Sie die Georeplikation mithilfe von Tools verwalten, wozu auch die az acr replication-Befehle in der Azure-Befehlszeilenschnittstelle gehören, oder Sie können eine für die Georeplikation aktivierte Registrierung mit einer Azure Resource Manager-Vorlage bereitstellen.You can also manage geo-replication using tools including the az acr replication commands in the Azure CLI, or deploy a registry enabled for geo-replication with an Azure Resource Manager template.

Die Georeplikation ist nur bei Premium-Registrierungen möglich.Geo-replication is a feature of Premium registries only. Wenn Ihre Registrierung noch nicht im Premium-Tarif betrieben wird, können Sie im Azure-Portal von den Tarifen Basic und Standard zu Premium wechseln:If your registry isn't yet Premium, you can change from Basic and Standard to Premium in the Azure portal:

Wechseln von SKUs im Azure-Portal

Um die Georeplikation für Ihre Premium-Registrierung zu konfigurieren, melden Sie sich unter https://portal.azure.com beim Azure-Portal an.To configure geo-replication for your Premium registry, log in to the Azure portal at https://portal.azure.com.

Navigieren Sie zu Ihrer Azure Container Registry-Instanz, und wählen Sie Replikationen aus:Navigate to your Azure Container Registry, and select Replications:

Replikationen auf der Benutzeroberfläche für Containerregistrierungen im Azure-Portal

Eine Karte mit allen aktuellen Azure-Regionen wird angezeigt:A map is displayed showing all current Azure Regions:

Karte mit Regionen im Azure-Portal

  • Blaue Sechsecke stellen aktuelle Replikate dar.Blue hexagons represent current replicas
  • Grüne Sechsecke stellen mögliche Replikatregionen dar.Green hexagons represent possible replica regions
  • Graue Sechsecke stellen Azure-Regionen dar, die noch nicht für die Replikation verfügbar sind.Gray hexagons represent Azure regions not yet available for replication

Um ein Replikat konfigurieren, wählen Sie ein grünes Sechseck aus und klicken dann auf Erstellen:To configure a replica, select a green hexagon, then select Create:

Benutzeroberfläche zum Erstellen von Replikaten im Azure-Portal

Um zusätzliche Replikate zu konfigurieren, wählen Sie die grünen Sechsecke für andere Regionen aus und klicken dann auf Erstellen.To configure additional replicas, select the green hexagons for other regions, then click Create.

ACR beginnt, Images in den konfigurierten Replikaten zu synchronisieren.ACR begins syncing images across the configured replicas. Sobald der Vorgang abgeschlossen ist, gibt das Portal Bereit zurück.Once complete, the portal reflects Ready. Der Status des Replikats im Portal wird nicht automatisch aktualisiert.The replica status in the portal doesn't automatically update. Klicken Sie auf die Schaltfläche „Aktualisieren“, um den aktualisierten Status anzuzeigen.Use the refresh button to see the updated status.

Überlegungen zur Verwendung einer georeplizierten RegistrierungConsiderations for using a geo-replicated registry

  • Jede Region in einer georeplizierten Registrierung ist nach der Einrichtung unabhängig.Each region in a geo-replicated registry is independent once set up. Azure Container Registry-SLAs gelten für jede georeplizierte Region.Azure Container Registry SLAs apply to each geo-replicated region.
  • Wenn Sie mithilfe von Push oder Pull Images in oder aus einer georeplizierten Registrierung übertragen, sendet der Azure Traffic Manager die Anforderung im Hintergrund an die Registrierung in der nächstgelegenen Region.When you push or pull images from a geo-replicated registry, Azure Traffic Manager in the background sends the request to the registry located in the region closest to you.
  • Nachdem Sie ein Image oder Tag mithilfe von Push in die nächstgelegene Region übertragen haben, benötigt Azure Container Registry etwas Zeit, um die Manifeste und Ebenen in die von Ihnen ausgewählten verbleibenden Regionen zu replizieren.After you push an image or tag update to the closest region, it takes some time for Azure Container Registry to replicate the manifests and layers to the remaining regions you opted into. Für die Replikation größerer Images wird mehr Zeit benötigt als für kleinere Images.Larger images take longer to replicate than smaller ones. Images und Tags werden anhand eines Modells für letztliche Konsistenz über die Replikationsregionen hinweg synchronisiert.Images and tags are synchronized across the replication regions with an eventual consistency model.
  • Um Workflows zu verwalten, die von der Pushübertragung von Updates in eine georeplizierte Registrierung abhängen, wird die Konfiguration von Webhooks als Reaktion auf die Pushereignisse empfohlen.To manage workflows that depend on push updates to a geo-replicated , we recommend that you configure webhooks to respond to the push events. Sie können regionale Webhooks innerhalb einer georeplizierten Registrierung einrichten, um Pushereignisse nachzuverfolgen, wenn diese über die georeplizierten Regionen hinweg abgeschlossen werden.You can set up regional webhooks within a geo-replicated registry to track push events as they complete across the geo-replicated regions.

Löschen eines ReplikatsDelete a replica

Nachdem Sie ein Replikat für Ihre Registrierung konfiguriert haben, können Sie es jederzeit löschen, wenn es nicht mehr benötigt wird.After you've configured a replica for your registry, you can delete it at any time if it's no longer needed. Löschen Sie ein Replikat mit dem Azure-Portal oder mit einem anderen Tool, etwa dem az acr replication delete-Befehl in der Azure-Befehlszeilenschnittstelle.Delete a replica using the Azure portal or other tools such as the az acr replication delete command in the Azure CLI.

So löschen Sie ein Replikat im Azure-PortalTo delete a replica in the Azure portal:

  1. Navigieren Sie zu Ihrer Azure Container Registry-Instanz, und wählen Sie Replikationen aus.Navigate to your Azure Container Registry, and select Replications.
  2. Wählen Sie den Namen eines Replikats aus, und wählen Sie Löschen aus.Select the name of a replica, and select Delete. Bestätigen Sie, dass Sie das Replikat löschen möchten.Confirm that you want to delete the replica.

Hinweis

Sie können das Registrierungsreplikat nicht im Basisbereich der Registrierung löschen; dies ist der Speicherort, an dem Sie die Registrierung erstellt haben.You can't delete the registry replica in the home region of the registry, that is, the location where you created the registry. Sie können das Basisreplikat nur löschen, indem Sie die Registrierung löschen.You can only delete the home replica by deleting the registry itself.

Georeplikation – PreiseGeo-replication pricing

Die Georeplikation ist ein Funktionsmerkmal des Premium-Tarifs von Azure Container Registry.Geo-replication is a feature of the Premium SKU of Azure Container Registry. Wenn Sie eine Registrierung in die gewünschten Regionen replizieren, fallen für jede Region Premium-Registrierungsgebühren an.When you replicate a registry to your desired regions, you incur Premium registry fees for each region.

Im vorhergehenden Beispiel hat Contoso zwei Registrierungen zu einer konsolidiert und Replikate den Regionen „USA, Osten“, „Kanada, Mitte“ und „Europa, Westen“ hinzugefügt.In the preceding example, Contoso consolidated two registries down to one, adding replicas to East US, Canada Central, and West Europe. Contoso zahlt nun viermal den Premium-Tarif pro Monat, ohne zusätzliche Konfiguration oder Verwaltung.Contoso would pay four times Premium per month, with no additional configuration or management. Jede Region ruft nun ihre Images lokal per Pull ab und verbessert so die Leistung und Zuverlässigkeit ohne Netzwerkausgangsgebühren von USA, Westen nach Kanada und USA, Osten.Each region now pulls their images locally, improving performance, reliability without network egress fees from West US to Canada and East US.

Problembehandlung bei Pushvorgängen mit georeplizierten RegistrierungenTroubleshoot push operations with geo-replicated registries

Ein Docker-Client, der ein Image per Push in eine georeplizierte Registrierung überträgt, kann möglicherweise nicht alle Imageebenen und das zugehörige Manifest in eine einzelne replizierte Region übertragen.A Docker client that pushes an image to a geo-replicated registry may not push all image layers and its manifest to a single replicated region. Dies kann der Fall sein, wenn Azure Traffic Manager Registrierungsanforderungen an die dem Netzwerk nächstgelegene replizierte Registrierung weiterleitet.This may occur because Azure Traffic Manager routes registry requests to the network-closest replicated registry. Wenn sich die Registrierung in der Nähe von zwei Replikationsregionen befindet, können Imageebenen und das Manifest an die beiden Standorte verteilt werden, und der Pushvorgang schlägt beim Überprüfen des Manifests fehl.If the registry has two nearby replication regions, image layers and the manifest could be distributed to the two sites, and the push operation fails when the manifest is validated. Dieses Problem wird aufgrund der Art verursacht, auf die der DNS-Name der Registrierung auf manchen Linux-Hosts aufgelöst wird.This problem occurs because of the way the DNS name of the registry is resolved on some Linux hosts. Dieses Problem tritt nicht unter Windows auf, das einen clientseitigen DNS-Cache bereitstellt.This issue doesn't occur on Windows, which provides a client-side DNS cache.

Wenn dieses Problem auftritt, können Sie einen clientseitigen DNS-Cache wie dnsmasq auf den Linux-Host anwenden.If this problem occurs, one solution is to apply a client-side DNS cache such as dnsmasq on the Linux host. Dadurch wird sichergestellt, dass der Name der Registrierung konsistent aufgelöst wird.This helps ensure that the registry's name is resolved consistently. Wenn Sie einen virtuellen Linux-Computer in Azure verwenden, um einen Pushvorgang in eine Registrierung auszuführen, finden Sie unter DNS-Namensauflösungsoptionen für virtuelle Linux-Computer in Azure weitere Informationen.If you're using a Linux VM in Azure to push to a registry, see options in DNS Name Resolution options for Linux virtual machines in Azure.

Um die DNS-Auflösung beim Pushen von Images auf das nächstgelegene Replikat zu optimieren, konfigurieren Sie eine georeplizierte Registrierung in denselben Azure-Regionen wie die Quelle der Pushvorgänge oder die nächstgelegene Region, wenn Sie außerhalb von Azure arbeiten.To optimize DNS resolution to the closest replica when pushing images, configure a geo-replicated registry in the same Azure regions as the source of the push operations, or the closest region when working outside of Azure.

Nächste SchritteNext steps

Sehen Sie sich die dreiteilige Tutorialreihe Georeplikation in Azure Container Registry an.Check out the three-part tutorial series, Geo-replication in Azure Container Registry. Durchlaufen Sie das Erstellen einer georeplizierten Registrierung und eines Containers, und stellen Sie diesen anschließend mit einem einzigen docker push-Befehl in mehreren regionalen Web-Apps für Container-Instanzen bereit.Walk through creating a geo-replicated registry, building a container, and then deploying it with a single docker push command to multiple regional Web Apps for Containers instances.