Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Observação
Se precisar distribuir imagens de contêineres idênticas em várias regiões do Azure, o Azure Container Registry também suporta geo-replicação. Ao geo-replicar um registo (é necessário o nível de serviço Premium), pode servir múltiplas regiões com nomes de imagens e tags idênticos a partir de um único registo.
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 para Pontos Finais 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 endpoints podem também restringir o acesso a uma lista de intervalos de endereços IPv4 (protocolo de 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:
- Para uma recriação bem-sucedida do registro para a região de destino, a rede virtual 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 poderão ser 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, emvirtualNetworkRules
, adicione a regra para a sub-rede de destino. Verifique se aignoreMissingVnetServiceEndpoint
flag está definida para "Falso", para que o IaC falhe na implantação do Azure Container Registry caso o ponto de extremidade do serviço não esteja configurado na região de destino. Isso garante que os pré-requisitos na região de destino sejam atendidos
Considerações sobre o endpoint privado
Azure Private Link fornece conectividade privada de uma rede virtual para o Azure como plataforma de serviço (PaaS), serviços detidos pelo cliente ou por parceiros da Microsoft. O Private Link simplifica a arquitetura de rede e protege a conexão entre endpoints no Azure ao eliminar 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 para a integração do DNS no Ponto de Extremidade Privado no 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. É necessário substituir esta configuração para se conectar através do 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.
- Utilize uma zona de DNS privada. You can use private DNS zones to override the DNS resolution for a private endpoint. Uma zona DNS privado pode ser ligada à rede virtual para resolver domínios específicos.
- Utilize o seu reencaminhador DNS (opcional). Pode utilizar o seu reencaminhador DNS para substituir a resolução DNS de um recurso de ligação privada. Crie uma regra de encaminhamento de DNS para utilizar uma zona de DNS privada no seu servidor de DNS hospedado 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 (Sistema de Nomes de Domínio) para o ponto de extremidade de dados na região de destino.
Tempo de inatividade
Para compreender os períodos de inatividade possíveis envolvidos, consulte o Cloud Adoption Framework para Azure: Selecionar um método de realocação.
Preparação
Observação
Se você quiser realocar apenas um Registro de Contêiner que não contém dados específicos do cliente e deve ser movido sozinho, você pode 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:
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.
Identifique o layout de rede de origem para o Azure Container Registry (ACR), como firewall e isolamento de rede.
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
Utilize Tarefas ACR para obter as configurações de automação do registo de origem para a importação para o registo 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 e a referência de modelo.
No Azure portal, navegue para o seu registo de origem.
No menu, em Automação, selecione Exportar modelo>Download.
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 destinoAtualize o
location
para a região do Azure desejada para o registo 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 mapas de âmbito do Registro, configurações de replicação, configurações de diagnóstico, como de 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
Reimplementar
Use o comando az deployment group create para implantar o registro de destino, usando o modelo:
az deployment group create \
--name mydeployment \
--resource-group myResourceGroup \
--template-file template.json
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:
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 obter exemplos de comando, consulte Importar imagens de contentores para um registo de contentores.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.
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 a partir de um registo numa subscrição ou inquilino diferente, consulte os exemplos em Importar imagens de contentor para um registo de contentores.
#!/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
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.
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>
Faça as alterações necessárias no arquivo de manifesto do Kubernetes para integrá-lo ao Azure Container Registry (ACR) realocado.
Atualize os sistemas de desenvolvimento e implantação para usar o registro de destino em vez do registro de origem.
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 o registro de destino, o conteúdo migrado e as configurações verificadas do registro, você pode excluir o registro de origem.
Conteúdo relacionado
- Para mover recursos do Registro para um novo grupo de recursos na mesma assinatura ou em uma [nova assinatura], consulte Mover recursos do Azure para um novo grupo de recursos ou assinatura.
- Saiba mais sobre como importar imagens de contêiner para um registro de contêiner do Azure de um registro público ou de outro registro privado.
- Consulte a referência de modelo do Resource Manager para o Registo de Contêiner do Azure.