Dela via


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

Ö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 under virtualNetworkRuleslägger du till regeln för målundernätet. Kontrollera att ignoreMissingVnetServiceEndpoint 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 niska veze.

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-portalen, 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:

  1. 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.

  2. Identifiera källnätverkslayouten för Azure Container Registry (ACR) som brandvägg och nätverksisolering.

  3. 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
    
    
  4. 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änd exporterad mall från Azure-portalen](.. /azure-resource-manager/templates/template-tutorial-Azure portale.md) och mallreferensen.

  1. Gå till källregistret i Azure-portalen.

  2. I menyn under Automation väljer du Exportera mall>Ladda ned.

    Skärmbild av exportmallen för containerregistret.

  3. 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:

  1. Använd kommandot az acr import eller motsvarande PowerShell-kommando Import-AzContainerImagefö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.

  2. 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.

  3. 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
  1. Associera de beroende resurserna med Azure Container Registry-målet, till exempel log analytics-arbetsytan i Diagnostikinställningar.

  2. 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>

  1. Gör nödvändiga ändringar i Kubernetes-manifestfilen för att integrera samma sak med omlokaliserat Azure Container Registry (ACR).

  2. Uppdatera utveckling- och distributionssystem för att använda målregistret i stället för källregistret.

  3. 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.