Replica geografica nel servizio Registro Azure ContainerGeo-replication in Azure Container Registry

Le aziende con esigenze di presenza online locale o di backup a caldo scelgono di eseguire i servizi da più aree di Azure.Companies that want a local presence, or a hot backup, choose to run services from multiple Azure regions. Come procedura consigliata, l'inserimento di un registro contenitori in ogni area in cui vengono eseguite le immagini consente l'esecuzione di operazioni in posizioni di rete vicine e quindi di trasferimenti di livelli di immagine più veloci e affidabili.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. La replica geografica consente a un Registro Azure Container di fungere da singolo registro in modo da servire più aree con registri regionali multimaster.Geo-replication enables an Azure container registry to function as a single registry, serving multiple regions with multi-master regional registries.

Un registro con replica geografica è caratterizzato dai vantaggi seguenti:A geo-replicated registry provides the following benefits:

  • I nomi di registro/immagine/tag singoli possono essere usati in più areeSingle registry/image/tag names can be used across multiple regions
  • Accesso al registro in una posizione di rete vicina da distribuzioni internazionaliNetwork-close registry access from regional deployments
  • Nessun costo aggiuntivo per il traffico in uscita perché viene eseguito il pull delle immagini da un registro replicato in locale nella stessa area dell'host del contenitoreNo additional egress fees, as images are pulled from a local, replicated registry in the same region as your container host
  • Gestione unica di registro in più areeSingle management of a registry across multiple regions

Nota

Se è necessario conservare una copia delle immagini del contenitore in più di un registro contenitori di Azure, il Registro Azure Container supporta anche l'importazione delle immagini.If you need to maintain copies of container images in more than one Azure container registry, Azure Container Registry also supports image import. In un flusso di lavoro di DevOps, ad esempio, è possibile importare un'immagine da un registro di sviluppo in un registro di produzione anche senza usare comandi Docker.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.

Esempio di caso d'usoExample use case

Contoso gestisce un sito Web per la presenza online pubblica esteso a Stati Uniti, Canada ed Europa.Contoso runs a public presence website located across the US, Canada, and Europe. Per gestire questi mercati con contenuti in locale e in una posizione di rete vicina, Contoso esegue cluster del servizio Azure Kubernetes nelle aree Stati Uniti occidentali, Stati Uniti orientali, Canada centrale ed Europa occidentale.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. L'applicazione del sito Web, distribuita come un'immagine Docker, usa lo stesso codice e la stessa immagine in tutte le aree.The website application, deployed as a Docker image, utilizes the same code and image across all regions. Il contenuto locale per un'area specifica viene recuperato da un database, di cui viene eseguito il provisioning in modo univoco in ogni area.Content, local to that region, is retrieved from a database, which is provisioned uniquely in each region. Ogni distribuzione regionale dispone della relativa configurazione univoca per risorse quali, ad esempio, il database locale.Each regional deployment has its unique configuration for resources like the local database.

Il team di sviluppo si trova a Seattle (Washington) e usa il data center degli Stati Uniti occidentali.The development team is located in Seattle WA, utilizing the West US data center.

Esecuzione del push in più registriPushing to multiple registries
Esecuzione del push in più registriPushing to multiple registries

Prima di usare le funzionalità di replica geografica, Contoso dispone di un registro situato negli Stati Uniti e di un registro aggiuntivo situato in Europa occidentale.Prior to using the geo-replication features, Contoso had a US-based registry in West US, with an additional registry in West Europe. Per gestire queste due aree, il team di sviluppo ha eseguito il push delle immagini in due registri diversi.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

Esecuzione del pool da più registriPulling from multiple registries
Esecuzione del pool da più registriPulling from multiple registries

Le tipiche problematiche relative alla presenza di più registri sono descritte di seguito:Typical challenges of multiple registries include:

  • I cluster Stati Uniti orientali, Stati Uniti occidentali e Canada centrale eseguono il pull dal registro nell'area Stati Uniti occidentali. Ciò comporta costi per il traffico in uscita in quanto ciascuno di questi host di contenitori remoti esegue il pull delle immagini dai data center presenti nell'area Stati Uniti occidentali.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.
  • Il team di sviluppo deve eseguire il push delle immagini nei registri presenti nelle aree Stati Uniti occidentali ed Europa occidentale.The development team must push images to West US and West Europe registries.
  • Il team di sviluppo deve configurare e gestire ogni distribuzione regionale mediante nomi di immagini che fanno riferimento al registro in locale.The development team must configure and maintain each regional deployment with image names referencing the local registry.
  • L'accesso al registro deve essere configurato per ogni area.Registry access must be configured for each region.

Vantaggi della replica geograficaBenefits of geo-replication

Esecuzione del pull da un registro con replica geografica

L'uso della funzionalità di replica geografica di Registro Azure Container è caratterizzato dai vantaggi descritti di seguito:Using the geo-replication feature of Azure Container Registry, these benefits are realized:

  • Gestione di un unico registro per tutte le aree: contoso.azurecr.ioManage a single registry across all regions: contoso.azurecr.io
  • Gestione di un'unica configurazione per le distribuzioni delle immagini in quanto tutte le aree usano lo stesso URL immagine: 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
  • Esecuzione del push in un unico registro, mentre il servizio Registro Azure Container gestisce la replica geografica.Push to a single registry, while ACR manages the geo-replication. È possibile configurare webhook a livello di area per ricevere notifiche degli eventi in repliche specifiche.You can configure regional webhooks to notify you of events in specific replicas.

Configurare la replica geograficaConfigure geo-replication

La configurazione della replica geografica è un'operazione semplice basata sulla selezione delle aree mediante clic su una mappa.Configuring geo-replication is as easy as clicking regions on a map. È anche possibile gestire la replica geografica usando gli strumenti inclusi i comandi AZ ACR Replication nell'interfaccia della riga di comando di Azure o distribuire un registro di sistema abilitato per la replica geografica con un modello di Azure Resource Manager.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.

La replica geografica è una funzionalità disponibile solo per i registri Premium.Geo-replication is a feature of Premium registries only. Se la versione del registro non è Premium, è possibile passare dalla versione Basic e quella Standard e infine a quella Premium nel portale di Azure:If your registry isn't yet Premium, you can change from Basic and Standard to Premium in the Azure portal:

Cambio di SKU nel portale di Azure

Per configurare la replica geografica per un registro Premium, accedere al portale di Azure all'indirizzo https://portal.azure.com.To configure geo-replication for your Premium registry, log in to the Azure portal at https://portal.azure.com.

Passare a Registro Azure Container e selezionare Repliche:Navigate to your Azure Container Registry, and select Replications:

Repliche nell'interfaccia utente del registro contenitori del portale di Azure

Viene visualizzata una mappa che mostra tutte le aree correnti di Azure:A map is displayed showing all current Azure Regions:

Mappa delle aree nel portale di Azure

  • Gli esagoni blu rappresentano le repliche correntiBlue hexagons represent current replicas
  • Gli esagoni verdi rappresentano le possibili aree di replicaGreen hexagons represent possible replica regions
  • Gli esagoni grigi rappresentano le aree di Azure non ancora disponibili per la replicaGray hexagons represent Azure regions not yet available for replication

Per configurare una replica, selezionare un esagono verde e quindi fare clic su Crea:To configure a replica, select a green hexagon, then select Create:

Interfaccia utente Crea replica nel portale di Azure

Per configurare repliche aggiuntive, selezionare gli esagoni verdi per le altre aree e quindi fare clic su Crea.To configure additional replicas, select the green hexagons for other regions, then click Create.

Il servizio Registro Azure Container inizia a sincronizzare le immagine tra le repliche configurate.ACR begins syncing images across the configured replicas. Al termine dell'operazione, nel portale viene visualizzata la dicitura Pronto.Once complete, the portal reflects Ready. Lo stato della replica nel portale non viene aggiornato automaticamente.The replica status in the portal doesn't automatically update. Usare il pulsante Aggiorna per visualizzare lo stato aggiornato.Use the refresh button to see the updated status.

Considerazioni sull'uso di un registro con replica geograficaConsiderations for using a geo-replicated registry

  • Una volta configurata, ogni area in un registro con replica geografica è indipendente.Each region in a geo-replicated registry is independent once set up. I contratti di servizio del Registro Azure Container si applicano a ogni area con replica geografica.Azure Container Registry SLAs apply to each geo-replicated region.
  • Quando si esegue il push o il pull di immagini da un registro con replica geografica, Gestione traffico di Azure invia in background la richiesta al registro di sistema che si trova nell'area più vicina.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.
  • Una volta eseguito il push dell'aggiornamento di un'immagine o un tag nell'area più vicina, il Registro Azure Container impiega del tempo per replicare i livelli e i manifesti nelle rimanenti aree scelte.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. La replica delle immagini di grandi dimensioni richiede più tempo rispetto alla replica delle immagini più piccole.Larger images take longer to replicate than smaller ones. Immagini e tag vengono sincronizzati tra le aree di replica con un modello di coerenza finale.Images and tags are synchronized across the replication regions with an eventual consistency model.
  • Per gestire i flussi di lavoro che dipendono da aggiornamenti push a una replica geografica, è consigliabile configurare i webhook per rispondere agli eventi di push.To manage workflows that depend on push updates to a geo-replicated , we recommend that you configure webhooks to respond to the push events. È possibile configurare webhook regionali all'interno di un registro con replica geografica per tenere traccia degli eventi push man mano che vengono completati tra le aree con replica geografica.You can set up regional webhooks within a geo-replicated registry to track push events as they complete across the geo-replicated regions.

Eliminare una replicaDelete a replica

Dopo aver configurato una replica per il registro, è possibile eliminarla in qualsiasi momento, se non è più necessaria.After you've configured a replica for your registry, you can delete it at any time if it's no longer needed. Eliminare una replica usando il portale di Azure o altri strumenti, ad esempio il comando AZ ACR Replication Delete nell'interfaccia della riga di comando di Azure.Delete a replica using the Azure portal or other tools such as the az acr replication delete command in the Azure CLI.

Per eliminare una replica nel portale di Azure:To delete a replica in the Azure portal:

  1. Passare al Container Registry di Azure e selezionare repliche.Navigate to your Azure Container Registry, and select Replications.
  2. Selezionare il nome di una replica e selezionare Elimina.Select the name of a replica, and select Delete. Confermare che si desidera eliminare la replica.Confirm that you want to delete the replica.

Nota

Non è possibile eliminare la replica del registro di sistema nell' area principale del registro di sistema, ovvero il percorso in cui è stato creato il registro di sistema.You can't delete the registry replica in the home region of the registry, that is, the location where you created the registry. È possibile eliminare la replica Home solo eliminando il registro di sistema.You can only delete the home replica by deleting the registry itself.

Prezzi della replica geograficaGeo-replication pricing

La replica geografica è una funzionalità dello SKU Premium di Registro Azure Container.Geo-replication is a feature of the Premium SKU of Azure Container Registry. Quando viene eseguita la replica di un registro nelle aree desiderate, si devono sostenere i costi relativi a un registro Premium per ogni area.When you replicate a registry to your desired regions, you incur Premium registry fees for each region.

Nell'esempio precedente, Contoso ha unificato due registri mediante il consolidamento e ha aggiunto repliche per le aree Stati Uniti orientali, Canada centrale ed Europa occidentale.In the preceding example, Contoso consolidated two registries down to one, adding replicas to East US, Canada Central, and West Europe. Contoso dovrà pagare quattro tariffe Premium al mese, senza costi aggiuntivi per la configurazione e la gestione.Contoso would pay four times Premium per month, with no additional configuration or management. Ogni area esegue ora il pull delle relative immagini in locale, migliorando in questo modo prestazioni e affidabilità senza alcun costo aggiuntivo per il traffico in uscita dagli Stati Uniti occidentali al Canada e agli Stati Uniti orientali.Each region now pulls their images locally, improving performance, reliability without network egress fees from West US to Canada and East US.

Risolvere i problemi relativi alle operazioni push con registri con replica geograficaTroubleshoot push operations with geo-replicated registries

In caso di push di un'immagine in un registro con replica geografica, un client Docker potrebbe non eseguire il push di tutti i livelli dell'immagine e del relativo manifesto in un'unica area replicata.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. Questo può verificarsi perché Gestione traffico di Azure indirizza le richieste al registro replicato nella posizione di rete più vicina.This may occur because Azure Traffic Manager routes registry requests to the network-closest replicated registry. Se il registro ha due aree di replica nelle vicinanze, i livelli dell'immagine e il manifesto potrebbero essere distribuiti nei due siti e l'operazione push avrà esito negativo quando viene convalidato il manifesto.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. Questo problema è causato dal modo in cui il nome DNS del registro viene risolto in alcuni host Linux.This problem occurs because of the way the DNS name of the registry is resolved on some Linux hosts. Non si verifica in Windows, che offre una cache DNS sul lato client.This issue doesn't occur on Windows, which provides a client-side DNS cache.

Se il problema si verifica, una soluzione consiste nell'applicare una cache DNS sul lato client, come dnsmasq, nell'host Linux.If this problem occurs, one solution is to apply a client-side DNS cache such as dnsmasq on the Linux host. In questo modo, il nome del registro verrà risolto in modo coerente.This helps ensure that the registry's name is resolved consistently. Se si usa una VM Linux in Azure per il push in un registro, vedere le opzioni illustrate in Opzioni di risoluzione dei nomi DNS per macchine virtuali Linux in Azure.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.

Per ottimizzare la risoluzione DNS nella replica più vicina quando si esegue il push di immagini, configurare un registro con replica geografica nelle stesse aree di Azure dell'origine delle operazioni push oppure nell'area più vicina se si lavora all'esterno di Azure.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.

Passaggi successiviNext steps

Fare riferimento alla serie di esercitazioni in tre parti relativa alla replica geografica in Registro Azure Container.Check out the three-part tutorial series, Geo-replication in Azure Container Registry. Eseguire la procedura dettagliata relativa alla creazione di un registro con replica geografica, alla compilazione di un contenitore e alla sua distribuzione mediante un unico comando docker push in più istanze regionali delle app Web per contenitori.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.