Ruční přesun registru kontejneru do jiné oblasti

Možná budete muset přesunout registr kontejnerů Azure z jedné oblasti Azure do jiné. Můžete například spustit vývojový kanál nebo hostovat nový cíl nasazení v jiné oblasti a chcete poskytnout blízký registr.

Přestože Azure Resource Mover momentálně nemůže automatizovat přesun registru kontejneru Azure, můžete ho ručně přesunout do jiné oblasti:

  • Export nastavení registru do šablony Resource Manager
  • Použití šablony k nasazení registru v jiné oblasti Azure
  • Import obsahu registru ze zdrojového registru do cílového registru

Poznámka

Pokud potřebujete distribuovat stejné image kontejneru napříč několika oblastmi Azure, Azure Container Registry také podporuje geografickou replikaci. Díky geografické replikaci registru (vyžaduje se úroveň služby Premium) můžete obsluhovat více oblastí se stejnými názvy imagí a značek z jednoho registru.

Požadavky

Azure CLI

  • Použijte prostředí Bash v Azure Cloud Shell. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shell.

  • Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Spuštění Azure CLI v kontejneru Dockeru.

    • Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.

    • Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.

    • Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.

Požadavky

  • Pomocí kroků v tomto článku přesuňte registr do jiné oblasti ve stejném předplatném. K přesunu registru do jiného předplatného Azure ve stejném tenantovi Active Directory může být potřeba další konfigurace.
  • Export a použití šablony Resource Manager může pomoct s opětovným vytvořením mnoha nastavení registru. Úpravou šablony můžete nakonfigurovat další nastavení nebo po vytvoření aktualizovat cílový registr.
  • Azure Container Registry v současné době nepodporuje přesun registru do jiného tenanta Active Directory. Toto omezení platí pro registry šifrované pomocí klíče spravovaného zákazníkem i nešifrované registry.
  • Pokud nemůžete přesunout registr, je uvedeno v tomto článku, vytvořte nový registr, ručně znovu vytvořte nastavení a importujte obsah registru do cílového registru.
  • Můžete najít postup přesunu prostředků registru do nové skupiny prostředků ve stejném předplatném nebo přesunu prostředků do nového předplatného.

Export šablony ze zdrojového registru

K exportu šablony Resource Manager použijte Azure Portal, Azure CLI, Azure PowerShell nebo jiné nástroje Azure. Použití Azure Portal:

  1. V Azure Portal přejděte do zdrojového registru.

  2. V nabídce v části Automation vyberte Exportovat šablonu>Stáhnout.

    Export šablony pro registr kontejneru

Opětovné nasazení cílového registru v nové oblasti

Úprava šablony

Zkontrolujte vlastnosti registru ve staženého souboru JSON šablony a proveďte potřebné změny. Minimálně:

  • Změňte názvy defaultValue registru na požadovaný název cílového registru.
  • location Aktualizujte na požadovanou oblast Azure pro cílový registr.
{
    "$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",
        ...
        }
    ]
}

Další informace najdete v tématech Použití exportované šablony z Azure Portal a referenční informace k šabloně.

Důležité

Pokud chcete cílový registr zašifrovat pomocí klíče spravovaného zákazníkem, nezapomeňte v šabloně aktualizovat nastavení pro požadovanou spravovanou identitu, trezor klíčů a klíč. Klíč spravovaný zákazníkem můžete povolit pouze při nasazování registru.

Další informace najdete v tématu Šifrování registru pomocí klíče spravovaného zákazníkem.

Vytvoření skupiny prostředků

Vytvořte skupinu prostředků pro cílový registr pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.

az group create --name myResourceGroup --location eastus

Nasazení cílového registru v nové oblasti

Pomocí příkazu az deployment group create nasaďte cílový registr pomocí šablony:

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

Poznámka

Pokud se během nasazení zobrazí chyby, možná budete muset aktualizovat určité konfigurace v souboru šablony a zkusit příkaz zopakovat.

Import obsahu registru do cílového registru

Po vytvoření registru v cílové oblasti použijte příkaz az acr import nebo ekvivalentní příkaz Import-AzContainerImagePowerShellu k importu imagí a dalších artefaktů, které chcete zachovat ze zdrojového registru do cílového registru. Příklady příkazů najdete v tématu Import imagí kontejneru do registru kontejneru.

  • K vytvoření výčtu obsahu zdrojového registru použijte příkazy Azure CLI az acr repositoryshow-tags nebo Azure PowerShell ekvivalenty.
  • Spusťte příkaz importu pro jednotlivé artefakty nebo ho vytvořte skript pro spuštění seznamu artefaktů.

Následující ukázkový skript Azure CLI vytvoří výčet zdrojových úložišť a značek a pak importuje artefakty do cílového registru ve stejném předplatném Azure. Upravte je podle potřeby a importujte konkrétní úložiště nebo značky. Pokud chcete importovat z registru v jiném předplatném nebo tenantovi, projděte si příklady v tématu Import imagí kontejneru do registru kontejneru.

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

Ověření cílového registru

V cílovém registru potvrďte následující informace:

  • Nastavení registru, jako je název registru, úroveň služby, veřejný přístup a replikace
  • Úložiště a značky pro obsah, který chcete zachovat.

Další konfigurace

  • V případě potřeby ručně nakonfigurujte nastavení v cílovém registru, jako jsou privátní koncové body, pravidla přístupu ip adres a spravované identity.

  • Aktualizujte systémy pro vývoj a nasazení tak, aby místo zdrojového registru používaly cílový registr.

  • Aktualizujte všechna pravidla brány firewall klienta tak, aby umožňovala přístup k cílovému registru.

Odstranit původní registr

Po úspěšném nasazení cílového registru, migrovaného obsahu a ověření nastavení registru můžete zdrojový registr odstranit.

Další kroky