Partilhar 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 Ative Directory.

Nota

Se você precisar distribuir imagens de contêiner idênticas em várias regiões do Azure, o Registro de Contêiner do Azure também dá suporte à replicação geográfica. Ao replicar geograficamente um registro (camada de serviço Premium necessária), você pode atender várias regiões com nomes idênticos de imagens e tags a partir de um único registro.

Pré-requisitos

  • Você só pode realocar um registro dentro do mesmo locatário do Ative Directory. Esta limitação aplica-se a registos encriptados e não encriptados com uma chave gerida pelo cliente.

  • Se o registro de origem tiver zonas de disponibilidade habilitadas, a região de destino também deverá oferecer suporte a zonas de disponibilidade. Para obter mais informações sobre o suporte da zona de disponibilidade para o Registro de Contêiner do Azure, consulte Habilitar redundância de zona no Registro de Contêiner do Azure.

Considerações sobre pontos de extremidade de serviço

Os pontos de extremidade do serviço de rede virtual para o 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 Internet versão 4). Qualquer usuário que se conecte ao registro de fora dessas fontes tem acesso negado. Se os pontos de extremidade de serviço fossem configurados na região de origem para o recurso do Registro, o mesmo precisaria ser feito no de destino. As etapas para esse 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 previamente. 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 configuração manual.

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

Consideração para o endpoint privado

O Azure Private Link fornece conectividade privada de uma rede virtual para a plataforma Azure como serviço (PaaS), de propriedade do cliente ou serviços de parceiros da Microsoft. O Private Link 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 configurar corretamente as configurações de DNS para resolver o endereço IP do ponto de extremidade privado para o nome de domínio totalmente qualificado (FQDN) da cadeia de conexão.

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

A interface de rede associada ao ponto de extremidade privado contém as informações para configurar seu DNS. As informações da interface de rede incluem FQDN e endereços IP privados para o seu recurso de link privado.

Pode utilizar as seguintes opções para configurar as definições de DNS para pontos finais privados:

  • Utilizar o ficheiro de anfitrião (apenas recomendado para testes) . Pode utilizar o ficheiro de anfitrião numa máquina virtual para substituir o DNS.
  • Utilizar uma zona DNS privado. Pode utilizar zonas DNS privadas para substituir a resolução DNS para um ponto final privado. Uma zona DNS privado pode ser ligada à rede virtual para resolver domínios específicos.
  • Utilizar o reencaminhador de DNS (opcional) . Pode utilizar o reencaminhador de DNS para substituir a resolução de DNS de um recurso de ligação privada. Crie uma regra de reencaminhamento de DNS para utilizar uma zona DNS privado no servidor DNS alojado numa rede virtual.
  • O Registro de Contêiner do Azure deve ser configurado na região de destino com camada premium.

  • Quando o acesso à rede pública a um registo está desativado, o acesso ao registo por determinados serviços fidedignos - incluindo o Centro de Segurança do Azure - requer a ativação de uma definiçã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, os 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, é imperativo adicionar manualmente um novo registro DNS para o ponto de extremidade de dados na região de destino.

Inatividade

Para entender os possíveis períodos de inatividade envolvidos, consulte Cloud Adoption Framework for Azure: Select a relocation method.

Preparação

Nota

Se você quiser apenas realocar um Registro de Contêiner que não contém nenhum dado específico 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, vá para Definir recursos com Bicep, modelos ARM e provedor Terraform AzAPI

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 recolocação, você deve escolher a estratégia de realocação apropriada.

  2. Identifique o layout de rede de origem para o Azure Container Registry (ACR), como firewall e isolamento de rede.

  3. Recupere todas 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 Tarefas ACR para recuperar 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 seu Registro de Contêiner. Para obter mais informações sobre como usar modelos exportados, consulte [Usar modelo exportado do portal do Azure](.. /azure-resource-manager/templates/template-tutorial-Azure portale.md) e a referência do modelo.

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

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

    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 esse arquivo para uma pasta de sua escolha.

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

Modificar modelo

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

  • Altere o nome do defaultValue Registro para o nome desejado do Registro de destino
  • Atualizar o location para a região desejada do Azure para o 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 escopo do RegistroMapas, configuração de replicações, configurações de diagnóstico, como análise de log.

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

Criar grupo de recursos

Crie um grupo de recursos para o registro de destino usando o az group create. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.

az group create --name myResourceGroup --location eastus

Voltar a implementar

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

Nota

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-AzContainerImageequivalente do PowerShell, para importar imagens e outros artefatos que você deseja preservar do registro de origem para o registro de destino. Para obter exemplos de comando, consulte Importar imagens de contêiner para um registro de contêiner.

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

  3. Execute o comando import para artefatos individuais ou crie um script para executar uma lista de artefatos.

O script CLI do Azure de exemplo a seguir enumera os repositórios e marcas de origem e, em seguida, importa os artefatos para um registro de destino na mesma assinatura do Azure. Modifique conforme necessário para importar repositórios ou tags específicos. 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 espaço de trabalho de análise de log em Configurações de diagnóstico.

  2. Configure a integração do Registro de Contêiner do Azure com ambos os tipos de clusters 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 integrá-lo ao Azure Container Registry (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 todas as regras de firewall do cliente para permitir o acesso ao registro de destino.

Verificar

Confirme as seguintes informações no seu registo 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 tags para conteúdo que você deseja preservar.

Eliminar registo original

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