Flytta ett Azure Container Registry till en annan region
Den här artikeln visar hur du flyttar Azure Container Registry-resurser till en annan region i samma prenumeration som Active Directory-klientorganisationen.
Kommentar
Om du behöver distribuera identiska containeravbildningar i flera Azure-regioner stöder Azure Container Registry även geo-replikering. Genom att georeplikera ett register (premiumtjänstnivån krävs) kan du hantera flera regioner med identiska avbildnings- och taggnamn från ett enda register.
Förutsättningar
Du kan bara flytta ett register inom samma Active Directory-klientorganisation. Den här begränsningen gäller för register som är krypterade och okrypterade med en kundhanterad nyckel.
Om källregistret har tillgänglighetszoner aktiverade måste målregionen också ha stöd för tillgänglighetszoner. Mer information om stöd för tillgänglighetszoner för Azure Container Registry finns i Aktivera zonredundans i Azure Container Registry.
Överväganden för tjänstslutpunkter
Tjänstslutpunkterna för virtuella nätverk för Azure Container Registry begränsar åtkomsten till ett angivet virtuellt nätverk. Slutpunkterna kan också begränsa åtkomsten till en lista över adressintervall för IPv4 (Internet Protocol version 4). Alla användare som ansluter till registret utanför dessa källor nekas åtkomst. Om tjänstslutpunkter har konfigurerats i källregionen för registerresursen skulle samma sak behöva göras i målområdet. Stegen för det här scenariot beskrivs nedan:
För att registret ska kunna återskapas till målregionen måste det virtuella nätverket och undernätet skapas i förväg. Om flytten av dessa två resurser utförs med Azure Resource Mover-verktyget konfigureras inte tjänstslutpunkterna automatiskt, så du måste ange manuell konfiguration.
För det andra måste ändringar göras i IaC i Azure Container Registry. I
networkAcl
avsnittet undervirtualNetworkRules
lägger du till regeln för målundernätet. Kontrollera attignoreMissingVnetServiceEndpoint
flaggan är inställd på False, så att IaC inte kan distribuera Azure Container Registry om tjänstslutpunkten inte har konfigurerats i målregionen. Detta säkerställer att förutsättningarna i målregionen uppfylls
Överväganden för privat slutpunkt
Azure Private Link tillhandahåller privata anslutningar från ett virtuellt nätverk till Azure Platform as a Service (PaaS), kundägda eller Microsoft-partnertjänster. Private Link förenklar nätverksarkitekturen och skyddar anslutningen mellan slutpunkter i Azure genom att eliminera dataexponering för det offentliga Internet.
För att resursen ska kunna återskapas i målregionen måste det virtuella nätverket och undernätet skapas innan den faktiska rekreationen inträffar.
Överväganden för DNS-integrering med privata Slutpunkter i Azure
Det är viktigt att konfigurera DNS-inställningarna korrekt för att matcha ip-adressen för den privata slutpunkten till det fullständigt kvalificerade domännamnet (FQDN) för anslutningssträng.
Befintliga Microsoft Azure-tjänster kanske redan har en DNS-konfiguration för en offentlig slutpunkt. Den här konfigurationen måste åsidosättas för att ansluta med din privata slutpunkt.
Nätverksgränssnittet som är associerat med den privata slutpunkten innehåller information för att konfigurera din DNS. Nätverksgränssnittsinformationen innehåller FQDN- och privata IP-adresser för din privata länkresurs.
Du kan använda följande alternativ för att konfigurera DNS-inställningarna för privata slutpunkter:
- Använd värdfilen (rekommenderas endast för testning). Du kan använda värdfilen på en virtuell dator för att åsidosätta DNS.
- Använd en privat DNS-zon. Du kan använda privata DNS-zoner för att åsidosätta DNS-matchningen för en privat slutpunkt. Du kan länka en privat DNS-zon till ditt virtuella nätverk för att matcha specifika domäner.
- Använd DNS-vidarekopplaren (valfritt). Du kan använda din DNS-vidarekopplare till att åsidosätta DNS-matchningen för en privat länkresurs. Skapa en DNS-vidarekopplingsregel för att använda en privat DNS-zon på DNS-servern i ett virtuellt nätverk.
Azure Container Registry måste konfigureras i målregionen med premiumnivån.
När åtkomsten till ett offentligt nätverk till ett register är inaktiverad måste registeråtkomsten för vissa betrodda tjänster , inklusive Azure Security Center, aktivera en nätverksinställning för att kringgå nätverksreglerna.
Om registret har en godkänd privat slutpunkt och åtkomsten till det offentliga nätverket är inaktiverad kan lagringsplatser och taggar inte visas utanför det virtuella nätverket med hjälp av Azure Portal, Azure CLI eller andra verktyg.
Om det gäller en ny replik är det viktigt att manuellt lägga till en ny DNS-post för dataslutpunkten i målregionen.
Driftstopp
Information om möjliga stilleståndstider finns i Cloud Adoption Framework for Azure: Select a relocation method (Molnimplementeringsramverk för Azure: Välj en omlokaliseringsmetod).
Förbereda
Kommentar
Om du bara vill flytta ett containerregister som inte innehåller några klientspecifika data och som ska flyttas ensam, kan du bara distribuera om registret med hjälp av Bicep eller JSON.
Om du vill visa andra tillgänglighetskonfigurationsmallar går du till Definiera resurser med Bicep, ARM-mallar och Terraform AzAPI-provider
Så här förbereder du för omlokalisering med datamigrering:
Skapa en beroendekarta med alla Azure-tjänster som används av registret. För de tjänster som omfattas av omlokaliseringen måste du välja lämplig omlokaliseringsstrategi.
Identifiera källnätverkslayouten för Azure Container Registry (ACR) som brandvägg och nätverksisolering.
Hämta alla nödvändiga avbildningar från källregistret för import till målregistret. Hämta avbildningarna genom att köra följande kommando:
Get-AzContainerRegistryRepository -RegistryName registry
Använd ACR Tasks för att hämta automationskonfigurationer av källregistret för import till målregistret.
Exportera mall
Kom igång genom att exportera en Resource Manager-mall. Den här mallen innehåller inställningar som beskriver containerregistret. Mer information om hur du använder exporterade mallar finns i Använda exporterad mall från Azure Portal och mallreferensen.
I menyn under Automation väljer du Exportera mall>Ladda ned.
Leta upp den .zip fil som du laddade ned från portalen och packa upp filen till valfri mapp.
Den här zip-filen innehåller de .json filer som innehåller mallen och skripten för att distribuera mallen.
Ändra mall
Granska registeregenskaperna i den JSON-mallfil som du laddade ned och gör nödvändiga ändringar. Minst:
- Ändra registernamnet till
defaultValue
det önskade namnet på målregistret location
Uppdatera till önskad Azure-region för målregistret
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"registries_myregistry_name": {
"defaultValue": "myregistry",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2020-11-01-preview",
"name": "[parameters('myregistry_name')]",
"location": "centralus",
...
}
]
}
Verifiera alla associerade resurser i den nedladdade mallen, till exempel RegisteromfattningKartor, replikeringskonfiguration, Diagnostikinställningar som logganalys.
Om källregistret är krypterat krypterar du målregistret med hjälp av en kundhanterad nyckel och uppdaterar mallen med inställningar för den hanterade identitet, nyckelvalv och nyckel som krävs. Du kan bara aktivera den kundhanterade nyckeln när du distribuerar registret.
Skapa resursgrupp
Skapa en resursgrupp för målregistret med hjälp av az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.
az group create --name myResourceGroup --location eastus
Omdistribuera
Använd kommandot az deployment group create för att distribuera målregistret med hjälp av mallen:
az deployment group create --resource-group myResourceGroup \
--template-file template.json --name mydeployment
Kommentar
Om du ser fel under distributionen kan du behöva uppdatera vissa konfigurationer i mallfilen och försöka köra kommandot igen.
Importera registerinnehåll i målregistret
När du har skapat registret i målregionen:
Använd kommandot az acr import eller motsvarande PowerShell-kommando
Import-AzContainerImage
för att importera avbildningar och andra artefakter som du vill bevara från källregistret till målregistret. Kommandoexempel finns i Importera containeravbildningar till ett containerregister.Använd Azure CLI-kommandona az acr repository list och az acr repository show-tags, eller Azure PowerShell-motsvarigheter, för att räkna upp innehållet i källregistret.
Kör importkommandot för enskilda artefakter eller skripta det för att köra över en lista med artefakter.
Följande Azure CLI-exempelskript räknar upp källlagringsplatserna och taggarna och importerar sedan artefakterna till ett målregister i samma Azure-prenumeration. Ändra efter behov för att importera specifika lagringsplatser eller taggar. Information om hur du importerar från ett register i en annan prenumeration eller klientorganisation finns i exempel i Importera containeravbildningar till ett containerregister.
#!/bin/bash
# Modify registry names for your environment
SOURCE_REG=myregistry
TARGET_REG=targetregistry
# Get list of source repositories
REPO_LIST=$(az acr repository list \
--name $SOURCE_REG --output tsv)
# Enumerate tags and import to target registry
for repo in $REPO_LIST; do
TAGS_LIST=$(az acr repository show-tags --name $SOURCE_REG --repository $repo --output tsv);
for tag in $TAGS_LIST; do
echo "Importing $repo:$tag";
az acr import --name $TARGET_REG --source $SOURCE_REG.azurecr.io/$repo":"$tag;
done
done
Associera de beroende resurserna med Azure Container Registry-målet, till exempel log analytics-arbetsytan i Diagnostikinställningar.
Konfigurera Azure Container Registry-integrering med båda typerna av AKS-kluster, etablerade eller ännu inte etablerade genom att köra följande kommando:
Set-AzAksCluster -Name myAKSCluster -ResourceGroupName myResourceGroup -AcrNameToAttach <acr-name>
Gör nödvändiga ändringar i Kubernetes-manifestfilen för att integrera samma sak med omlokaliserat Azure Container Registry (ACR).
Uppdatera utveckling- och distributionssystem för att använda målregistret i stället för källregistret.
Uppdatera alla brandväggsregler för klienter för att tillåta åtkomst till målregistret.
Verifiera
Bekräfta följande information i målregistret:
- Registerinställningar som registernamn, tjänstnivå, offentlig åtkomst och replikering
- Lagringsplatser och taggar för innehåll som du vill bevara.
Ta bort det ursprungliga registret
När du har distribuerat målregistret, migrerat innehåll och verifierat registerinställningar kan du ta bort källregistret.
Relaterat innehåll
- Information om hur du flyttar registerresurser till en ny resursgrupp i samma prenumeration eller [ny prenumeration] finns i Flytta Azure-resurser till en ny resursgrupp eller prenumeration.
Läs mer om hur du importerar containeravbildningar till ett Azure-containerregister från ett offentligt register eller ett annat privat register.
Se Resource Manager-mallreferensen för Azure Container Registry.