Compartilhar via


Realocar um Registro de Contêiner do Azure para outra região

Este artigo mostra como realocar recursos do Registro de Contêiner do Azure para outra região na mesma assinatura do locatário do Active Directory.

Observação

Se for necessário distribuir imagens de contêiner idênticas em várias regiões do Azure, o Registro de Contêiner do Azure também suporta a replicação geográfica. Ao fazer replicação geográfica de um registro (SKU Premium necessário), você pode atender a várias regiões com nomes e marcas idênticos de imagem de um único registro.

Pré-requisitos

Considerações para Pontos de Extremidade de Serviço

Os pontos de extremidade de serviço de rede virtual do Registro de Contêiner do Azure restringem o acesso a uma rede virtual especificada. Os pontos de extremidade também podem restringir o acesso a uma lista de intervalos de endereços IPv4 (protocolo da Internet versão 4). Qualquer usuário que se conecte ao registro de fora dessas fontes tem o acesso negado. Se os pontos de extremidade de serviço forem configurados na região de origem para o recurso do registro, o mesmo precisará ser feito na região de destino. As etapas para este cenário são mencionadas abaixo:

  • Para uma recriação bem-sucedida do registro para a região de destino, a VNet e a sub-rede devem ser criadas com antecedência. Se a movimentação desses dois recursos estiver sendo realizada com a ferramenta Azure Resource Mover, os pontos de extremidade de serviço não serão configurados automaticamente e, portanto, você precisará fornecer uma configuração manual.

  • Em segundo lugar, as alterações precisam ser feitas na IaC do Registro de Contêiner do Azure. Na seção networkAcl, em virtualNetworkRules, adicione a regra para a sub-rede de destino. Certifique-se de que o sinalizador ignoreMissingVnetServiceEndpoint esteja definido como False, de modo que a IaC não implante o Registro de Contêiner do Azure caso o ponto de extremidade de serviço não esteja configurado na região de destino. Isso garantirá que os pré-requisitos na região de destino sejam atendidos

Consideração para o ponto de extremidade privado

O Link Privado do Azure fornece conectividade privada de uma rede virtual para a plataforma como serviço (PaaS) do Azure, propriedade do cliente ou serviços de parceiros da Microsoft. O Link Privado simplifica a arquitetura de rede e protege a conexão entre pontos de extremidade no Azure eliminando a exposição de dados à Internet pública.

Para uma recriação bem-sucedida do recurso na região de destino, a VNet e a sub-rede devem ser criadas antes que a recriação real ocorra.

Considerações sobre a integração do DNS do Ponto de Extremidade Privado do Azure

É importante definir corretamente as configurações de DNS para que o endereço IP do ponto de extremidade privado seja resolvido para o FQDN (nome de domínio totalmente qualificado) da cadeia de conexão.

Os serviços do Azure existentes já podem ter uma configuração de DNS para um ponto de extremidade público, e essa configuração precisa ser substituída para se conectar usando o ponto de extremidade privado.

O adaptador de rede associado ao ponto de extremidade privado contém as informações para configurar o DNS, que incluem o FQDN e os endereços IP privados do recurso de link privado.

Você pode usar as seguintes opções para definir as configurações de DNS para pontos de extremidade privados:

  • Use o arquivo de host (recomendado somente para testes). Você pode usar o arquivo de host em uma máquina virtual para substituir o DNS.
  • Use a zona DNS privada. Use as zonas DNS privadas para substituir a resolução DNS de um ponto de extremidade privado. Uma zona DNS privada pode ser vinculada à sua rede virtual para resolver domínios específicos.
  • Use o encaminhador de DNS (opcional). É possível usar o encaminhador de DNS para substituir a resolução DNS de um recurso de link privado. Crie uma regra de encaminhamento de DNS para usar uma zona DNS privada no servidor DNS hospedado em uma rede virtual.
  • O Registro de Contêiner do Azure deve ser configurado na região de destino com a camada Premium.

  • Quando o acesso à rede pública de um registro é desabilitado, o acesso ao registro por determinados serviços confiáveis – incluindo a Central de Segurança do Azure – requer a habilitação de uma configuração de rede para ignorar as regras de rede.

  • Se o registro tiver um ponto de extremidade privado aprovado e o acesso à rede pública estiver desabilitado, repositórios e marcas não poderão ser listados fora da rede virtual usando o portal do Azure, a CLI do Azure ou outras ferramentas.

  • No caso de uma nova réplica, é fundamental adicionar manualmente um novo registro DNS para o ponto de extremidade de dados na região de destino.

Tempo de inatividade

Para entender os possíveis tempos de inatividade envolvidos, confira Cloud Adoption Framework para o Azure: selecione um método de relocalização.

Preparar-se

Observação

Se você quiser apenas realocar um Registro de Contêiner que não contém dados específicos do cliente e deve ser movido sozinho, você pode simplesmente reimplantar o registro usando Bicep ou JSON.

Para exibir outros modelos de configuração de disponibilidade, acesse Definir recursos com o Bicep, modelos do ARM e provedor AzAPI do Terraform

Para se preparar para a realocação com a migração de dados:

  1. Crie um mapa de dependência com todos os serviços do Azure usados pelo registro. Para os serviços que estão no escopo da realocação, você deve escolher a estratégia de realocação apropriada.

  2. Identifique o layout de rede de origem do o Registro de Contêiner do Azure (ACR), como firewall e isolamento de rede.

  3. Recupere as imagens necessárias do registro de origem para importação para o registro de destino. Para recuperar as imagens, execute o seguinte comando:

    
    Get-AzContainerRegistryRepository -RegistryName registry
    
    
  4. Use as Tarefas do ACR para recuperar as configurações de automação do registro de origem para importação para o registro de destino.

Exportar modelo

Para começar, exporte um modelo do Resource Manager. Este modelo contém configurações que descrevem o seu Registro de Contêiner. Para obter mais informações sobre como usar modelos exportados, consulte Usar modelo exportado do portal do Azure e a referência de modelo.

  1. No portal do Azure, navegue até o registro de origem.

  2. No menu, em Automação, selecione Exportar modelo>Baixar.

    Captura de tela do modelo de exportação para o registro de contêiner.

  3. Localize o arquivo .zip que você baixou do portal e descompacte-o na pasta desejada.

    Esse arquivo zip contém os arquivos .json que incluem o modelo e os scripts para implantar o modelo.

Modificar um modelo

Inspecione as propriedades do registro no arquivo JSON do modelo que você baixou e faça as alterações necessárias. No mínimo:

  • Altere o nome do registro de defaultValue para o nome desejado do registro de destino
  • Atualize o location para a região desejada do Azure do registro de destino
{
    "$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",
        ...
        }
    ]
}
  • Valide todos os detalhes de recursos associados no modelo baixado, como scopeMaps do registro, configuração de replicações e configurações de diagnóstico, como análise de logs.

  • Se o registro de origem for criptografado, criptografe o registro de destino usando uma chave gerenciada pelo cliente e atualize o modelo com as configurações de identidade gerenciada, cofre de chaves e chave necessários. Você só pode habilitar a chave gerenciada pelo cliente ao implantar o registro.

Criar grupo de recursos

Crie um grupo de recursos para o registro de destino usando o comando az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local eastus.

az group create --name myResourceGroup --location eastus

Reimplantar

Use o comando az deployment group create para implantar o registro de destino usando o modelo:

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

Observação

Se você vir erros durante a implantação, talvez seja necessário atualizar determinadas configurações no arquivo de modelo e repetir o comando.

Importar conteúdo do registro no registro de destino

Depois de criar o registro na região de destino:

  1. Use o comando az acr import, ou o comando Import-AzContainerImage equivalente do PowerShell, para importar imagens e outros artefatos que você deseja preservar do registro de origem para o registro de destino. Para ver exemplos de comandos, confira Importar imagens de contêiner para o registro de contêiner.

  2. Use os comandos da CLI do Azure az acr repository list e az acr repository show-tags, ou os equivalentes no Azure PowerShell, para ajudar a enumerar o conteúdo do registro de origem.

  3. Execute o comando de importação para artefatos individuais ou o script para executar em uma lista de artefatos.

O exemplo de script a seguir da CLI do Azure enumera os repositórios e as marcas de origem e, em seguida, importa os artefatos para o registro de destino na mesma assinatura do Azure. Modifique conforme necessário para importar repositórios ou marcas específicas. Para importar de um registro em uma assinatura ou locatário diferente, consulte exemplos em Importar imagens de contêiner para um registro de contêiner.

#!/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. Associe os recursos dependentes ao Registro de Contêiner do Azure de destino, como o workspace do Log Analytics nas configurações de diagnóstico.

  2. Configure a integração do Registro de Contêiner do Azure com ambos os tipos de clusters do AKS, provisionados ou ainda a serem provisionados, executando o seguinte comando:


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

  1. Faça as alterações necessárias no arquivo de manifesto do Kubernetes para integrar o mesmo ao Registro de Contêiner do Azure (ACR) realocado.

  2. Atualize os sistemas de desenvolvimento e implantação para usar o registro de destino em vez do registro de origem.

  3. Atualize as regras de firewall do cliente para permitir o acesso ao registro de destino.

Verificar

Confirme as seguintes informações no registro de destino:

  • Configurações do registro, como o nome do registro, a camada de serviço, o acesso público e as replicações
  • Repositórios e marcas para o conteúdo que você deseja preservar.

Excluir registro original

Depois de ter implantado com êxito o registro de destino, o conteúdo migrado e verificar as configurações do registro, você pode excluir o registro de origem.