Delen via


Een Azure Container Registry verplaatsen naar een andere regio

In dit artikel leest u hoe u Azure Container Registry-resources verplaatst naar een andere regio in hetzelfde abonnement van de Active Directory-tenant.

Notitie

Als u identieke containerinstallatiekopieën wilt distribueren over meerdere Azure-regio's, biedt Azure Container Registry ook ondersteuning voor geo-replicatie. Door geo-replicatie van een register (Premium-servicelaag vereist) kunt u meerdere regio's met identieke installatiekopieën en tagnamen uit één register bedienen.

Vereisten

  • U kunt alleen een register binnen dezelfde Active Directory-tenant verplaatsen. Deze beperking geldt voor registers die zijn versleuteld en niet-versleuteld met een door de klant beheerde sleutel.

  • Als in het bronregister beschikbaarheidszones zijn ingeschakeld, moet de doelregio ook beschikbaarheidszones ondersteunen. Zie Zoneredundantie inschakelen in Azure Container Registry voor meer informatie over ondersteuning voor beschikbaarheidszones voor Azure Container Registry.

Overwegingen voor service-eindpunten

De service-eindpunten van het virtuele netwerk voor Azure Container Registry beperken de toegang tot een opgegeven virtueel netwerk. De eindpunten kunnen ook de toegang tot een lijst met IPv4-adresbereiken (internetprotocol versie 4) beperken. Elke gebruiker die verbinding maakt met het register van buiten deze bronnen, heeft geen toegang. Als service-eindpunten zijn geconfigureerd in de bronregio voor de registerresource, moet hetzelfde worden gedaan in de doelregio. De stappen voor dit scenario worden hieronder vermeld:

  • Voor een geslaagde recreatie van het register naar de doelregio moet het VNet en subnet vooraf worden gemaakt. Als de verplaatsing van deze twee resources wordt uitgevoerd met het hulpprogramma Azure Resource Mover, worden de service-eindpunten niet automatisch geconfigureerd en moet u dus handmatige configuratie opgeven.

  • Ten tweede moeten er wijzigingen worden aangebracht in de IaC van Azure Container Registry. Voeg networkAcl in de sectie onder virtualNetworkRulesDe regel voor het doelsubnet toe. Zorg ervoor dat de ignoreMissingVnetServiceEndpoint vlag is ingesteld op False, zodat de IaC het Azure Container Registry niet kan implementeren als het service-eindpunt niet is geconfigureerd in de doelregio. Dit zorgt ervoor dat aan de vereisten in de doelregio wordt voldaan

Overweging voor privé-eindpunt

Azure Private Link biedt privéconnectiviteit van een virtueel netwerk naar Azure PaaS (Platform as a Service), klant- of Microsoft-partnerservices. Private Link vereenvoudigt de netwerkarchitectuur en beveiligt de verbinding tussen eindpunten in Azure door gegevensblootstelling op het openbare internet te elimineren.

Voor een geslaagde recreatie van uw resource in de doelregio moet het VNet en subnet worden gemaakt voordat de daadwerkelijke recreatie plaatsvindt.

Overwegingen voor DNS-integratie met privé-eindpunten in Azure

Het is belangrijk dat u uw DNS-instellingen correct configureert om het IP-adres van het privé-eindpunt om te stellen naar de FQDN (Fully Qualified Domain Name) van de verbindingsreeks.

Bestaande Microsoft Azure-services hebben mogelijk al een DNS-configuratie voor een openbaar eindpunt. Deze configuratie moet worden overschreven om verbinding te maken met uw privé-eindpunt.

De netwerkinterface die is gekoppeld aan het privé-eindpunt bevat de informatie voor het configureren van uw DNS. De netwerkinterface-informatie bevat FQDN en privé-IP-adressen voor uw private link-resource.

U kunt de volgende opties gebruiken om uw DNS-instellingen voor privé-eindpunten te configureren:

  • Gebruik het hostbestand (alleen aanbevolen voor testen). U kunt het hostbestand op een virtuele machine gebruiken om de DNS te overschrijven.
  • Een Privé-DNS-zone gebruiken. Gebruik privé-DNS-zones om de DNS-omzetting voor een privé-eindpunt te overschrijven. Een privé-DNS-zone kan worden gekoppeld aan uw virtuele netwerk om specifieke domeinen om te zetten.
  • Gebruik uw DNS-doorstuurserver (optioneel). U kunt uw DNS-forwarder gebruiken om de DNS-resolutie voor een private linkbron op te heffen. Maak een DNS-doorstuurregel om een privé-DNS-zone te gebruiken op uw DNS-server die wordt gehost in een virtueel netwerk.
  • Azure Container Registry moet worden geconfigureerd in de doelregio met de Premium-laag.

  • Wanneer openbare netwerktoegang tot een register is uitgeschakeld, moet voor registertoegang door bepaalde vertrouwde services, waaronder Azure Security Center, een netwerkinstelling worden ingeschakeld om de netwerkregels te omzeilen.

  • Als het register een goedgekeurd privé-eindpunt heeft en openbare netwerktoegang is uitgeschakeld, kunnen opslagplaatsen en tags niet buiten het virtuele netwerk worden weergegeven met behulp van Azure Portal, Azure CLI of andere hulpprogramma's.

  • In het geval van een nieuwe replica is het noodzakelijk om handmatig een nieuwe DNS-record toe te voegen voor het gegevenseindpunt in de doelregio.

Uitvaltijd

Zie Cloud Adoption Framework voor Azure om inzicht te hebben in de mogelijke downtime: Selecteer een herlocatiemethode.

Voorbereiden

Notitie

Als u alleen een containerregister wilt verplaatsen dat geen clientspecifieke gegevens bevat en alleen moet worden verplaatst, kunt u het register gewoon opnieuw implementeren met Bicep of JSON.

Als u andere configuratiesjablonen voor beschikbaarheid wilt weergeven, gaat u naar Resources definiëren met Bicep-, ARM-sjablonen en Terraform AzAPI-provider

Voorbereiden op herlocatie met gegevensmigratie:

  1. Maak een afhankelijkheidstoewijzing met alle Azure-services die door het register worden gebruikt. Voor de diensten die binnen het bereik van de herlocatie vallen, moet u de juiste herlocatiestrategie kiezen.

  2. Identificeer de bronnetwerkindeling voor Azure Container Registry (ACR), zoals firewall en netwerkisolatie.

  3. Haal alle vereiste installatiekopieën op uit het bronregister voor import in het doelregister. Voer de volgende opdracht uit om de installatiekopieën op te halen:

    
    Get-AzContainerRegistryRepository -RegistryName registry
    
    
  4. Gebruik ACR Tasks om automatiseringsconfiguraties van het bronregister op te halen voor import in het doelregister.

Sjabloon exporteren

Exporteer een Resource Manager-sjabloon om aan de slag te gaan. Deze sjabloon bevat instellingen die uw Container Registry beschrijven. Zie Geëxporteerde sjablonen gebruiken in Azure Portal en de sjabloonreferentie voor meer informatie over het gebruik van geëxporteerde sjablonen.

  1. Navigeer in Azure Portal naar uw bronregister.

  2. Selecteer in het menu onder Automation de optie Sjabloon exporteren>.

    Schermopname van exportsjabloon voor containerregister.

  3. Zoek het .zip bestand dat u hebt gedownload uit de portal en pak dat bestand uit naar een map van uw keuze.

    Dit zip-bestand bevat de .json bestanden die de sjabloon en scripts bevatten om de sjabloon te implementeren.

Sjabloon wijzigen

Controleer de registereigenschappen in het sjabloon-JSON-bestand dat u hebt gedownload en breng de benodigde wijzigingen aan. Minimaal:

  • Wijzig de registernaam defaultValue in de gewenste naam van het doelregister
  • location De gewenste Azure-regio voor het doelregister bijwerken
{
    "$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",
        ...
        }
    ]
}
  • Valideer alle bijbehorende resources in de gedownloade sjabloon, zoals Register scopeMaps, replicatieconfiguratie, diagnostische instellingen, zoals Log Analytics.

  • Als het bronregister is versleuteld, versleutelt u het doelregister met behulp van een door de klant beheerde sleutel en werkt u de sjabloon bij met instellingen voor de vereiste beheerde identiteit, sleutelkluis en sleutel. U kunt de door de klant beheerde sleutel alleen inschakelen wanneer u het register implementeert.

Resourcegroep maken

Maak een resourcegroep voor het doelregister met behulp van az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.

az group create --name myResourceGroup --location eastus

Opnieuw implementeren

Gebruik de opdracht az deployment group create om het doelregister te implementeren met behulp van de sjabloon:

az deployment group create --resource-group myResourceGroup \
   --template-file template.json --name mydeployment

Notitie

Als er fouten optreden tijdens de implementatie, moet u mogelijk bepaalde configuraties in het sjabloonbestand bijwerken en de opdracht opnieuw proberen.

Registerinhoud importeren in het doelregister

Nadat u het register in de doelregio hebt gemaakt:

  1. Gebruik de opdracht az acr import of de equivalente PowerShell-opdracht Import-AzContainerImageom installatiekopieën en andere artefacten te importeren die u wilt behouden uit het bronregister naar het doelregister. Zie Containerinstallatiekopieën importeren in een containerregister voor voorbeelden van opdrachten.

  2. Gebruik de Azure CLI-opdrachten az acr repository list en az acr repository show-tags, of Azure PowerShell equivalents, om de inhoud van uw bronregister op te sommen.

  3. Voer de importopdracht voor afzonderlijke artefacten uit of script deze om uit te voeren op een lijst met artefacten.

In het volgende Azure CLI-voorbeeldscript worden de bronopslagplaatsen en tags opgesomd en worden de artefacten vervolgens geïmporteerd in een doelregister in hetzelfde Azure-abonnement. Pas indien nodig aan om specifieke opslagplaatsen of tags te importeren. Zie voorbeelden in Containerinstallatiekopieën importeren in een containerregister als u wilt importeren uit een register in een ander abonnement of een andere tenant.

#!/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. Koppel de afhankelijke resources aan het Doel-Azure Container Registry, zoals log Analytics-werkruimte in diagnostische instellingen.

  2. Configureer Azure Container Registry-integratie met beide typen AKS-clusters, ingericht of nog moet worden ingericht door de volgende opdracht uit te voeren:


Set-AzAksCluster -Name myAKSCluster -ResourceGroupName myResourceGroup -AcrNameToAttach <acr-name>

  1. Breng de benodigde wijzigingen aan in het Kubernetes-manifestbestand om hetzelfde te integreren met verplaatste Azure Container Registry (ACR).

  2. Ontwikkel- en implementatiesystemen bijwerken om het doelregister te gebruiken in plaats van het bronregister.

  3. Werk clientfirewallregels bij om toegang tot het doelregister toe te staan.

Verifiëren

Bevestig de volgende informatie in uw doelregister:

  • Registerinstellingen zoals de registernaam, servicelaag, openbare toegang en replicaties
  • Opslagplaatsen en tags voor inhoud die u wilt behouden.

Oorspronkelijk register verwijderen

Nadat u het doelregister, de gemigreerde inhoud en geverifieerde registerinstellingen hebt geïmplementeerd, kunt u het bronregister verwijderen.