Een containerregister handmatig verplaatsen naar een andere regio

Mogelijk moet u een Azure-containerregister verplaatsen van de ene Azure-regio naar de andere. U kunt bijvoorbeeld een ontwikkelingspijplijn uitvoeren of een nieuw implementatiedoel hosten in een andere regio en een register in de buurt opgeven.

Hoewel Azure Resource Mover momenteel geen verplaatsing voor een Azure-containerregister kan automatiseren, kunt u een containerregister handmatig verplaatsen naar een andere regio:

  • Registerinstellingen exporteren naar een Resource Manager-sjabloon
  • De sjabloon gebruiken om een register in een andere Azure-regio te implementeren
  • Registerinhoud importeren uit het bronregister naar het doelregister

Notitie

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

Vereisten

Azure CLI

Overwegingen

  • Gebruik de stappen in dit artikel om het register te verplaatsen naar een andere regio in hetzelfde abonnement. Er is mogelijk meer configuratie nodig om een register te verplaatsen naar een ander Azure-abonnement in dezelfde Active Directory-tenant.
  • Als u een Resource Manager sjabloon exporteert en gebruikt, kunt u veel registerinstellingen opnieuw maken. U kunt de sjabloon bewerken om meer instellingen te configureren of het doelregister bijwerken nadat u het hebt gemaakt.
  • Op dit moment biedt Azure Container Registry geen ondersteuning voor het verplaatsen van een register naar een andere Active Directory-tenant. Deze beperking is van toepassing op zowel registers die zijn versleuteld met een door de klant beheerde sleutel als niet-versleutelde registers.
  • Als u een register niet kunt verplaatsen, wordt in dit artikel beschreven, maakt u een nieuw register, maakt u handmatig instellingen opnieuw en importeert u registerinhoud in het doelregister.
  • U vindt de stappen voor het verplaatsen van registerresources naar een nieuwe resourcegroep in hetzelfde abonnement of het verplaatsen van resources naar een nieuw abonnement.

Sjabloon exporteren uit bronregister

Gebruik de Azure Portal, Azure CLI, Azure PowerShell of andere Azure-hulpprogramma's om een Resource Manager sjabloon te exporteren. De Azure Portal gebruiken:

  1. Navigeer in de Azure Portal naar het bronregister.

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

    Sjabloon exporteren voor containerregister

Doelregister opnieuw implementeren in nieuwe regio

Sjabloon wijzigen

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

  • Wijzig de registernaam defaultValue in de gewenste naam van het doelregister
  • Werk de location bij naar de gewenste Azure-regio voor het doelregister
{
    "$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",
        ...
        }
    ]
}

Zie Geëxporteerde sjabloon uit de Azure Portal gebruiken en de sjabloonreferentie voor meer informatie.

Belangrijk

Als u het doelregister wilt versleutelen met behulp van een door de klant beheerde sleutel, moet u de sjabloon bijwerken 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.

Zie Register versleutelen met behulp van door de klant beheerde sleutel voor meer informatie.

Een resourcegroep maken

Maak een resourcegroep voor het doelregister met 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

Doelregister implementeren in nieuwe regio

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 doelregister

Nadat u het register in de doelregio hebt gemaakt, gebruikt u de opdracht az acr import of de equivalente PowerShell-opdracht Import-AzContainerImage, om installatiekopieën en andere artefacten die u wilt behouden uit het bronregister te importeren in het doelregister. Zie Containerinstallatiekopieën importeren in een containerregister voor voorbeelden van opdrachten.

  • Gebruik de Azure CLI-opdrachten az acr repository list en az acr repository show-tags, of Azure PowerShell equivalenten, om de inhoud van het bronregister op te sommen.
  • Voer de importopdracht uit voor afzonderlijke artefacten of voer een script uit om een lijst met artefacten uit te voeren.

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. Wijzig indien nodig om specifieke opslagplaatsen of tags te importeren. Als u wilt importeren uit een register in een ander abonnement of een andere tenant, raadpleegt u voorbeelden in Containerinstallatiekopieën importeren in een 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

Doelregister controleren

Bevestig de volgende informatie in het doelregister:

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

Aanvullende configuratie

  • Configureer indien nodig handmatig instellingen in het doelregister, zoals privé-eindpunten, IP-toegangsregels en beheerde identiteiten.

  • Werk ontwikkel- en implementatiesystemen bij om het doelregister te gebruiken in plaats van het bronregister.

  • Werk alle firewallregels van de client bij om toegang tot het doelregister toe te staan.

Oorspronkelijk register verwijderen

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

Volgende stappen