Teilen über


Manuelles Verschieben der Containerregistrierung in eine andere Region

Möglicherweise müssen Sie eine Azure-Containerregistrierung von einer Azure-Region in eine andere verschieben. Wenn Sie beispielsweise eine Entwicklungspipeline ausführen oder ein neues Bereitstellungsziel in einer anderen Region hosten, möchten Sie vielleicht eine Registrierung in der Nähe bereitstellen.

Obwohl Azure Resource Mover das Verschieben für eine Azure-Containerregistrierung derzeit nicht automatisieren kann, können Sie eine Containerregistrierung manuell in eine andere Region verschieben:

  • Exportieren der Registrierungseinstellungen in eine Resource Manager-Vorlage
  • Verwenden der Vorlage zum Bereitstellen einer Registrierung in einer anderen Azure-Region
  • Importieren des Registrierungsinhalts aus der Quellregistrierung in die Zielregistrierung

Hinweis

Azure Container Registry unterstützt darüber hinaus die Georeplikation, falls Sie identische Containerimages auf mehrere Azure-Regionen verteilen müssen. Durch die Georeplikation einer Registrierung (Premium-Dienstebene erforderlich) können Sie in mehreren Regionen identische Image- und Tagnamen aus einer einzelnen Registrierung bereitstellen.

Voraussetzungen

Azure CLI

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Weitere Überlegungen

  • Verwenden Sie die Schritte in diesem Artikel, um die Registrierung in eine andere Region im selben Abonnement zu verschieben. Es sind möglicherweise weitere Konfigurationsarbeiten erforderlich, um eine Registrierung in ein anderes Azure-Abonnement im selben Active Directory-Mandanten zu verschieben.
  • Das Exportieren und Verwenden einer Resource Manager Vorlage kann dabei helfen, viele Registrierungseinstellungen wieder zu erstellen. Sie können die Vorlage bearbeiten, um mehr Einstellungen zu konfigurieren oder die Zielregistrierung nach der Erstellung zu aktualisieren.
  • Derzeit unterstützt Azure Container Registry das Verschieben einer Registrierung in einen anderen Active Directory-Mandanten nicht. Diese Einschränkung gilt sowohl für Registrierungen, die mit einem kundenseitig verwalteten Schlüssel verschlüsselt sind, als auch für unverschlüsselte Registrierungen.
  • Wenn Sie eine Registrierung nicht verschieben können, erstellen Sie, wie in diesem Artikel beschrieben, eine neue Registrierung, erstellen Sie die Einstellungen manuell neu, und importieren Sie Registrierungsinhalt in die Zielregistrierung.
  • Sie finden die Schritte zum Verschieben von Ressourcen der Registrierung in eine neue Ressourcengruppe im selben Abonnement oder zum Verschieben von Ressourcen in ein neues Abonnement.

Exportieren der Vorlage aus der Quellregistrierung

Verwenden Sie das Azure-Portal, die Azure CLI, Azure PowerShell oder andere Azure-Tools, um eine Resource Manager-Vorlage zu exportieren. So verwenden Sie das Azure-Portal:

  1. Navigieren Sie im Azure-Portal zu Ihrer Quellregistrierung.

  2. Wählen Sie im Menü unter Automatisierung die Option Vorlage exportieren>Herunterladen aus.

    Exportieren einer Vorlage für eine Containerregistrierung

Erneutes Bereitstellen der Zielregistrierung in der neuen Region

Ändern der Vorlage

Untersuchen Sie die Registrierungseigenschaften in der heruntergeladenen JSON-Vorlagendatei, und nehmen Sie die erforderlichen Änderungen vor. Mindestangaben:

  • Ändern Sie den Registrierungsnamen defaultValue in den gewünschten Namen der Zielregistrierung.
  • Aktualisieren sie den location auf die gewünschte Azure-Region für die Zielregistrierung.
{
    "$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",
        ...
        }
    ]
}

Weitere Informationen finden Sie unter Verwenden einer exportierten Vorlage aus dem Azure-Portal und in der Vorlagenreferenz.

Wichtig

Wenn Sie die Zielregistrierung mit einem kundenseitig verwalteten Schlüssel verschlüsseln möchten, aktualisieren Sie die Vorlage mit den Einstellungen für die erforderliche verwaltete Identität, den Schlüsseltresor und den Schlüssel. Sie können den kundenseitig verwalteten Schlüssel nur aktivieren, wenn Sie die Registrierung bereitstellen.

Weitere Informationen finden Sie unter Verschlüsseln der Registrierung mithilfe eines kundenseitig verwalteten Schlüssels.

Ressourcengruppe erstellen

Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe für die Zielregistrierung. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.

az group create --name myResourceGroup --location eastus

Erneutes Bereitstellen der Zielregistrierung in der neuen Region

Verwenden Sie den Befehl az deployment group create, um die Zielregistrierung mithilfe der Vorlage bereitzustellen:

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

Hinweis

Wenn während der Bereitstellung Fehler auftreten, müssen Sie möglicherweise bestimmte Konfigurationen in der Vorlagendatei aktualisieren und den Befehl wiederholen.

Importieren des Registrierungsinhalts in die Zielregistrierung

Nachdem Sie die Registrierung in der Zielregion erstellt haben, verwenden Sie den Befehl az acr import oder den entsprechenden PowerShell-Befehl Import-AzContainerImage, um Images und andere Artefakte, die Sie erhalten möchten, aus der Quellregistrierung in die Zielregistrierung zu importieren. Befehlsbeispiele finden Sie unter Importieren von Containerimages in eine Containerregistrierung.

  • Verwenden Sie die Azure CLI-Befehle az acr repository list und az acr repository show-tags oder entsprechende Azure PowerShell-Befehle, um den Inhalt Ihrer Quellregistrierung aufzählen zu können.
  • Führen Sie den Importbefehl für einzelne Artefakte aus, oder erstellen Sie ein Skript damit, um es über eine Liste von Artefakten auszuführen.

Das folgende Azure CLI-Beispielskript zählt die Quellrepositorys und Tags auf und importiert dann die Artefakte in eine Zielregistrierung im selben Azure-Abonnement. Ändern Sie es nach Bedarf, um bestimmte Repositorys oder Tags zu importieren. Informationen zum Importieren aus einer Registrierung in einem anderen Abonnement oder Mandanten finden Sie in den Beispielen unter Importieren von Containerimages in eine Containerregistrierung.

#!/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

Überprüfen der Zielregistrierung

Bestätigen Sie die folgenden Informationen in Ihrer Zielregistrierung:

  • Registrierungseinstellungen wie Registrierungsname, Dienstebene, öffentlicher Zugriff und Replikationen
  • Repositorys und Tags für Inhalte, die Sie erhalten möchten.

Zusätzliche Konfiguration

  • Konfigurieren Sie bei Bedarf manuell Einstellungen in der Zielregistrierung, z. B. private Endpunkte, IP-Zugriffsregeln und verwaltete Identitäten.

  • Aktualisieren Sie Entwicklungs- und Bereitstellungssysteme, damit diese die Zielregistrierung anstelle der Quellregistrierung verwenden.

  • Aktualisieren Sie alle Clientfirewallregeln, sodass der Zugriff auf die Zielregistrierung zugelassen wird.

Löschen der ursprünglichen Registrierung

Nachdem Sie die Zielregistrierung erfolgreich bereitgestellt, Inhalt migriert und Registrierungseinstellungen überprüft haben, können Sie die Quellregistrierung löschen.

Nächste Schritte