Replica geografica nel servizio Registro Azure Container
Le aziende con esigenze di presenza online locale o di backup a caldo scelgono di eseguire i servizi da più aree di Azure. 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. La replica geografica consente a un Registro Azure Container di fungere da singolo registro in modo da servire più aree con registri regionali multiprimari.
Un registro con replica geografica offre i vantaggi seguenti:
- I nomi di registro, immagine e tag singoli possono essere usati in più aree
- Migliorare le prestazioni e l'affidabilità delle distribuzioni a livello di area con accesso al registro vicino alla rete.
- Ridurre i costi di trasferimento dei dati eseguendo il pull dei livelli di immagine da un registro locale replicato nella stessa area o nelle vicinanze dell'host del contenitore
- Gestione unica di un registro in più aree
- Resilienza del Registro di sistema se si verifica un'interruzione a livello di area
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. 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.
- Se si vuole spostare un registro in un'area di Azure diversa, anziché replicare geograficamente il registro, vedere Spostare manualmente un registro contenitori in un'altra area.
Prerequisiti
L'utente richiede le autorizzazioni seguenti (a livello di registro) per creare/eliminare le repliche:
Autorizzazione Descrizione Microsoft.ContainerRegistry/registries/write Creare una replica Microsoft.ContainerRegistry/registries/replications/write Eliminare una replica
Esempio di caso d'uso
Contoso gestisce un sito Web per la presenza online pubblica esteso a Stati Uniti, Canada ed Europa. 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. L'applicazione del sito Web, distribuita come un'immagine Docker, usa lo stesso codice e la stessa immagine in tutte le aree. Il contenuto locale per un'area specifica viene recuperato da un database, di cui viene eseguito il provisioning in modo univoco in ogni area. Ogni distribuzione regionale dispone della relativa configurazione univoca per risorse quali, ad esempio, il database locale.
Il team di sviluppo si trova a Seattle (Washington) e usa il data center degli Stati Uniti occidentali.
Esecuzione del push in più registri
Prima di usare le funzionalità di replica geografica, Contoso dispone di un registro situato negli Stati Uniti occidentali e di un registro aggiuntivo situato in Europa occidentale. Per gestire queste due aree, il team di sviluppo ha eseguito il push delle immagini in due registri diversi.
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ù registri
Le tipiche problematiche relative alla presenza di più registri sono descritte di seguito:
- Tutti 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.
- Il team di sviluppo deve eseguire il push delle immagini nei registri presenti nelle aree Stati Uniti occidentali ed Europa occidentale.
- Il team di sviluppo deve configurare e gestire ogni distribuzione regionale mediante nomi di immagini che fanno riferimento al registro in locale.
- L'accesso al registro deve essere configurato per ogni area.
Vantaggi della replica geografica
La funzionalità di replica geografica del servizio Registro Azure Container offre i vantaggi seguenti:
- Gestione di un unico registro per tutte le aree:
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.2
- Esecuzione del push in un unico registro, mentre il servizio Registro Azure Container gestisce in automatico la replica geografica. Registro Azure Container replica solo livelli univoci, riducendo il trasferimento dei dati tra aree.
- Configurare webhook a livello di area per ricevere notifiche degli eventi in repliche specifiche.
- Fornire un registro a disponibilità elevata resiliente alle interruzioni a livello di area.
Registro Azure Container supporta anche le zone di disponibilità per creare un registro Azure Container resiliente e a disponibilità elevata all'interno di un'area di Azure. La combinazione di zone di disponibilità per la ridondanza all'interno di un'area e la replica geografica in più aree migliorano sia l'affidabilità che le prestazioni di un registro.
Configurare una replica geografica
La configurazione della replica geografica è un'operazione semplice basata sulla selezione delle aree mediante clic su una mappa. È anche possibile gestire la replica geografica usando strumenti quali i comandi az acr replication nell'interfaccia della riga di comando di Azure o distribuire un registro abilitato per la replica geografica con un modello di Azure Resource Manager.
La replica geografica è una funzionalità disponibile per i registri Premium. Se la versione del registro non è Premium, è possibile passare dalla versione Basic e quella Standard e infine a quella Premium nel portale di Azure:
Per configurare la replica geografica per un registro Premium, accedere al portale di Azure.
Passare a Registro Azure Container e selezionare Repliche:
Viene visualizzata una mappa che mostra tutte le aree correnti di Azure:
- Gli esagoni blu rappresentano le repliche correnti
- Gli esagoni verdi rappresentano le possibili aree di replica
- Gli esagoni grigi rappresentano le aree di Azure non ancora disponibili per la replica
Per configurare una replica, selezionare un esagono verde e quindi fare clic su Crea:
Per configurare repliche aggiuntive, selezionare gli esagoni verdi per le altre aree e quindi fare clic su Crea.
Il servizio Registro Azure Container inizia a sincronizzare le immagine tra le repliche configurate. Al termine dell'operazione, nel portale viene visualizzata la dicitura Pronto. Lo stato della replica nel portale non viene aggiornato automaticamente. Usare il pulsante Aggiorna per visualizzare lo stato aggiornato.
Considerazioni sull'uso di un registro con replica geografica
- Una volta configurata, ogni area in un registro con replica geografica è indipendente. I contratti di servizio del Registro Azure Container si applicano a ogni area con replica geografica.
- Per ogni operazione di push o pull di immagini in un registro con replica geografica, Gestione traffico di Azure invia in background una richiesta alla posizione più vicina del registro nell'area per mantenere la latenza di rete.
- 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. La replica delle immagini di grandi dimensioni richiede più tempo rispetto alla replica delle immagini più piccole. Immagini e tag vengono sincronizzati tra le aree di replica con un modello di coerenza finale.
- Per gestire i flussi di lavoro che dipendono da aggiornamenti push a un registro con replica geografica, è consigliabile configurare webhook per rispondere agli eventi push. È 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.
- Per gestire i BLOB che rappresentano i livelli di contenuto, Registro Azure Container usa gli endpoint dei dati. È possibile abilitare gli endpoint dei dati dedicati per il registro in ognuna delle aree con replica geografica del registro. Questi endpoint consentono la configurazione di regole di accesso del firewall con ambito molto rigorose. Ai fini della risoluzione dei problemi, è possibile disabilitare facoltativamente il routing verso una replica mantenendo i dati replicati.
- Se si configura un collegamento privato per il registro usando endpoint privati in una rete virtuale, gli endpoint di dati dedicati in ognuna delle aree con replica geografica sono abilitati per impostazione predefinita.
Considerazioni sulla disponibilità elevata
- Per la disponibilità elevata e la resilienza, è consigliabile creare un registro in un'area che supporta l'abilitazione della ridondanza della zona. È consigliabile abilitare la ridondanza della zona anche in ogni area di replica.
- Se si verifica un'interruzione nell'area principale del registro (l'area in cui è stata creata) o in una delle relative aree di replica, un registro con replica geografica rimane disponibile per le operazioni del piano dati, ad esempio il push o il pull delle immagini del contenitore.
- Se l'area principale del registro non è più disponibile, potrebbe non essere possibile eseguire operazioni di gestione del registro, inclusa la configurazione delle regole di rete, l'abilitazione delle zone di disponibilità e la gestione delle repliche.
- Per pianificare la disponibilità elevata di un registro con replica geografica crittografata con una chiave gestita dal cliente archiviata in un insieme di credenziali delle chiavi di Azure, vedere le indicazioni per il failover e la ridondanza dell'insieme di credenziali delle chiavi.
Eliminare una replica
Dopo aver configurato una replica per il registro, è possibile eliminarla in qualsiasi momento, se non è più necessaria. Eliminare la 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.
Per eliminare una replica nel portale di Azure:
- Passare a Registro Azure Container e selezionare Repliche.
- Selezionare il nome della replica e selezionare Elimina. Confermare che si vuole eliminare la replica.
Per usare l'interfaccia della riga di comando di Azure per eliminare una replica di myregistry nell'area Stati Uniti orientali:
az acr replication delete --name eastus --registry myregistry
Prezzi della replica geografica
La replica geografica è una funzionalità del livello di servizio Premium di Registro Azure Container. Quando viene eseguita la replica di un registro nelle aree desiderate, si devono sostenere i costi relativi a un registro Premium per ogni area.
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. Contoso dovrà pagare quattro tariffe Premium al mese, senza costi aggiuntivi per la configurazione e la gestione. 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.
Risolvere i problemi relativi alle operazioni push con registri con replica geografica
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. Questo può verificarsi perché Gestione traffico di Azure indirizza le richieste al registro replicato nella posizione di rete più vicina. 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. Questo problema è causato dal modo in cui il nome DNS del registro viene risolto in alcuni host Linux. Non si verifica in Windows, che offre una cache DNS sul lato client.
Se il problema si verifica, una soluzione consiste nell'applicare una cache DNS sul lato client, come dnsmasq
, nell'host Linux. In questo modo, il nome del registro verrà risolto in modo coerente. 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.
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.
Disabilitare temporaneamente il routing verso la replica
Per risolvere i problemi relativi alle operazioni con un registro con replica geografica, è possibile disabilitare temporaneamente il routing di Gestione traffico verso una o più repliche. A partire dalla versione 2.8 dell'interfaccia della riga di comando di Azure, è possibile configurare un'opzione --region-endpoint-enabled
(anteprima) quando si crea o si aggiorna un'area replicata. Quando si imposta l'opzione --region-endpoint-enabled
di una replica su false
, Gestione traffico non instrada più le richieste push o pull Docker verso tale area. Per impostazione predefinita, il routing verso tutte le repliche è abilitato e la sincronizzazione dei dati in tutte le repliche viene eseguita indipendentemente dal fatto che il routing sia abilitato o disabilitato.
Per disabilitare il routing verso una replica esistente, eseguire prima az acr replication list per elencare le repliche nel registro. Eseguire quindi az acr replication update e impostare --region-endpoint-enabled false
per una replica specifica. Ad esempio, per configurare l'impostazione per la replica westus in myregistry:
# 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
Per ripristinare il routing verso una replica:
az acr replication update --name westus \
--registry myregistry --resource-group MyResourceGroup \
--region-endpoint-enabled true
Creazione della replica per un Registro di sistema attivato per l'endpoint privato
Quando si crea una nuova replica di registro per il Registro di sistema primario abilitato con l'endpoint privato, è consigliabile verificare che l'identità utente abbia autorizzazioni di creazione dell'endpoint privato valide. In caso contrario, l'operazione si blocca nello stato di provisioning durante la creazione della replica.
Se si è bloccati in stato provisioning durante la creazione della replica del registro, seguire questa procedura:
- Eliminare manualmente la replica bloccata in stato provisioning.
- Aggiungere l'autorizzazione
Microsoft.Network/privateEndpoints/privateLinkServiceProxies/write
per l'identità utente. - Ricreare la richiesta di replica del registro.
Questo controllo delle autorizzazioni è applicabile solo ai registri con endpoint privato abilitato.
Passaggi successivi
Fare riferimento alla serie di esercitazioni in tre parti relativa alla replica geografica in Registro Azure Container. 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.