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
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie Quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht AZ login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
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:
Navigeer in de Azure Portal naar het bronregister.
Selecteer in het menu onder Automation de optie Sjabloon>downloaden exporteren.
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
- Meer informatie over het importeren van containerinstallatiekopieën in een Azure-containerregister vanuit een openbaar register of een ander privéregister.
- Zie de Resource Manager sjabloonreferentie voor Azure Container Registry.