Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo reubicar los recursos de Azure Container Registry en otra región de la misma suscripción del inquilino de Active Directory.
Nota:
Si tiene que distribuir imágenes de contenedor idénticas en varias regiones de Azure, Azure Container Registry también admite la replicación geográfica. Mediante la replicación geográfica de un registro (es necesario el nivel de servicio Premium), puede atender varias regiones con nombres idénticos de imagen y etiqueta desde un único registro.
Prerrequisitos
- Solo puede reubicar un registro dentro del mismo inquilino de Active Directory. Esta limitación se aplica a los registros cifrados y sin cifrar con una clave administrada por el cliente.
- Si el registro de origen tiene zonas de disponibilidad habilitadas, la región de destino también debe admitir las zonas de disponibilidad. Para más información sobre la compatibilidad con zonas de disponibilidad para Azure Container Registry, vea Habilitación de la redundancia de zona en Azure Container Registry.
Consideraciones para los puntos finales de servicio
Los puntos de conexión de servicio de red virtual para Azure Container Registry restringen el acceso a una red virtual especificada. También permiten restringir el acceso a una lista de intervalos de direcciones IPv4 (protocolo de Internet, versión 4). Se deniega el acceso a cualquier usuario que se conecte al registro desde fuera de esos orígenes. Si los puntos de conexión de servicio se han configurado en la región de origen del recurso de registro, tendría que hacerse lo mismo en el destino. Los pasos para este escenario son:
- Para una recreación correcta del registro en la región de destino, la red virtual y la subred deben crearse de antemano. Si el traslado de estos dos recursos se lleva a cabo con la herramienta Azure Resource Mover, los puntos de conexión de servicio no se pueden configurar automáticamente y, por tanto, debe proporcionar una configuración manual.
- En segundo lugar, es necesario realizar cambios en IaC de Azure Container Registry. En la sección
networkAcl, envirtualNetworkRules, agregue la regla para la subred de destino. Asegúrese de que laignoreMissingVnetServiceEndpointmarca esté establecida en False, para que IaC no pueda implementar Azure Container Registry en caso de que el punto de conexión de servicio no esté configurado en la región de destino. Esto garantiza que se cumplen los requisitos previos de la región de destino.
Consideración sobre el punto de conexión privado
Azure Private Link proporciona conectividad privada desde una red virtual a una plataforma como servicio (PaaS) de Azure, servicios de asociados de Microsoft o propiedad del cliente. Private Link simplifica la arquitectura de red y protege la conexión entre los puntos de conexión de Azure mediante la eliminación de la exposición de los datos a la red pública de Internet.
Para una recreación correcta del recurso en la región de destino, la red virtual y la subred se deben crear antes de que se produzca la recreación real.
Consideraciones para la integración de DNS de Azure Private Endpoint
Es importante configurar correctamente las opciones de DNS para resolver la dirección IP del punto de conexión privado en el nombre de dominio completo (FQDN) de la cadena de conexión.
Es posible que los servicios de Microsoft Azure existentes ya tengan una configuración de DNS para un punto de conexión público. Esta configuración se debe invalidar para conectarse mediante el punto de conexión privado.
La interfaz de red asociada al punto de conexión privado contiene la información para configurar DNS. La información de la interfaz de red incluye FQDN y direcciones IP privadas para el recurso de vínculo privado.
Puede usar las siguientes opciones para establecer la configuración de DNS para los puntos de conexión privados:
- Use el archivo de host (solo se recomienda con fines de pruebas). Puede usar el archivo de host en una máquina virtual para invalidar el DNS.
- Use una zona DNS privada. Puede usar zonas DNS privadas para invalidar la resolución DNS de un punto de conexión privado. Una zona DNS privada se puede vincular a la red virtual para resolver dominios específicos.
- Use el reenviador DNS (opcional). Puede usar el reenviador DNS para invalidar la resolución DNS de un recurso de vínculo privado. Cree una regla de reenvío de DNS para usar una zona DNS privada en el servidor DNS hospedado en una red virtual.
- Azure Container Registry se debe configurar en la región de destino con el nivel Premium.
- Cuando se deshabilita el acceso de red público a un registro, para el acceso al registro por parte de determinados servicios de confianza, incluido Azure Security Center, es necesario habilitar un valor de red para omitir las reglas de red.
- Si el registro tiene un punto de conexión privado aprobado y el acceso de la red pública está deshabilitado, los repositorios y las etiquetas no se pueden enumerar fuera de la red virtual mediante Azure Portal, la CLI de Azure u otras herramientas.
- En caso de que se trate de una nueva réplica, es imperativo agregar manualmente un nuevo registro del sistema de nombres de dominio (DNS) para el punto de conexión de datos en la región de destino.
Tiempo de inactividad
Para comprender los posibles tiempos de inactividad que podrían producirse, consulte Cloud Adoption Framework para Azure: Seleccionar un método de reubicación.
Preparación
Nota:
Si solo desea reubicar un registro de contenedor que no contenga datos específicos del cliente y que se mueva solo, puede volver a implementar el registro mediante Bicep o JSON.
Para ver otras plantillas de configuración de disponibilidad, vaya a Definición de recursos con Bicep, plantillas de ARM y el proveedor AzAPI de Terraform
Para prepararse para la reubicación con la migración de datos:
Cree un mapa de dependencias con todos los servicios de Azure usados por el registro. Para los servicios que están dentro del ámbito de la reubicación, debe seleccionar la estrategia de reubicación adecuada.
Identifique el diseño de red de origen para Azure Container Registry (ACR), como el firewall y el aislamiento de red.
Recupere las imágenes necesarias del registro de origen para la importación en el registro de destino. Para recuperar las imágenes, ejecute el comando siguiente:
Get-AzContainerRegistryRepository -RegistryName registryUse ACR Tasks para recuperar las configuraciones de automatización del registro de origen para la importación en el registro de destino.
Exportación de la plantilla
Para empezar, exporte una plantilla de Resource Manager. Esta plantilla contiene configuraciones que describen tu Container Registry. Para más información sobre cómo usar plantillas exportadas, consulte Uso de plantillas exportadas desde Azure Portal y la referencia de plantilla.
En Azure Portal, vaya al registro de origen.
En el menú, en Automatización, seleccione Exportar plantilla>Descargar.
Busque el archivo ZIP que descargó desde el portal y descomprímalo en la carpeta que prefiera.
Este archivo ZIP contiene los archivos .json que incluyen la plantilla y los scripts para implementar la plantilla.
Modificación de una plantilla
Inspeccione las propiedades del registro en el archivo JSON de la plantilla que ha descargado y realice los cambios necesarios. Como mínimo:
Cambie el
defaultValuedel nombre del registro por el nombre deseado del registro de destino.Actualice la
locationa la región de Azure deseada para el 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", ... } ] }Verifique todos los detalles de los recursos asociados en la plantilla descargada, como los mapas del rango del registro, y la configuración de replicaciones y de diagnóstico, como por ejemplo Log Analytics.
Si el registro de origen está cifrado, cifre el registro de destino mediante una clave administrada por el cliente y actualice la plantilla con la configuración de la identidad administrada, el almacén de claves y la clave necesarios. Solo puede habilitar la clave administrada por el cliente al implementar el registro.
Creación de un grupo de recursos
Cree un grupo de recursos para el registro de destino con el comando az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.
az group create --name myResourceGroup --location eastus
Volver a implementar
Use el comando az deployment group create para implementar el registro de destino mediante la plantilla:
az deployment group create \
--name mydeployment \
--resource-group myResourceGroup \
--template-file template.json
Nota:
Si ve errores durante la implementación, es posible que tenga que actualizar ciertas configuraciones en el archivo de plantilla y volver a intentar el comando.
Importación del contenido del registro en el registro de destino
Después de crear el registro en la región de destino:
Use el comando az acr import o el comando
Import-AzContainerImagede PowerShell equivalente para importar imágenes y otros artefactos que quiera conservar del registro de origen al registro de destino. Para ver ejemplos de comando, consulte Importación de imágenes de contenedor en un registro de contenedor.Use los comandos de la CLI de Azure az acr repository list y az acr repository show-tags, o equivalentes de Azure PowerShell, para ayudar a enumerar el contenido del registro de origen.
Ejecute el comando de importación para artefactos individuales o cree un script para ejecutarlo en una lista de artefactos.
En el ejemplo siguiente, el script de la CLI de Azure de ejemplo enumera los repositorios y etiquetas de origen y, a continuación, importa los artefactos a un registro de destino de la misma suscripción a Azure. Modifique según sea necesario para importar etiquetas o repositorios específicos. Para importar desde un registro de otra suscripción o inquilino, consulte los ejemplos de Importación de imágenes de contenedor a un registro de contenedor.
#!/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 doneAsocie los recursos dependientes al área de trabajo de Azure Container Registry de destino, como el área de trabajo de Log Analytics, en configuración de diagnóstico.
Configure la integración de Azure Container Registry con ambos tipos de clústeres de AKS, aprovisionados o sin aprovisionar, mediante la ejecución del comando siguiente:
Set-AzAksCluster -Name myAKSCluster -ResourceGroupName myResourceGroup -AcrNameToAttach <acr-name>Realice los cambios necesarios en el archivo de manifiesto de Kubernetes para la integración con la instancia de Azure Container Registry (ACR) reubicada.
Actualice los sistemas de desarrollo e implementación para usar el registro de destino en lugar del registro de origen.
Actualice las reglas de firewall de cliente para permitir el acceso al registro de destino.
Verificar
Confirme la siguiente información en el registro de destino:
- Configuración del registro, como el nombre del registro, el nivel de servicio, el acceso público y las replicaciones
- Repositorios y etiquetas para el contenido que desea conservar
Eliminación del registro original
Después de implementar el registro de destino, el contenido migrado y la configuración comprobada del Registro, puede eliminar el registro de origen.
Contenido relacionado
- Para mover los recursos de registro a un nuevo grupo de recursos, ya sea en la misma suscripción o en una [nueva suscripción], vea Traslado de recursos de Azure a un nuevo grupo de recursos o suscripción.
- Aprenda más sobre la importación de imágenes de contenedor en un registro de contenedor de Azure desde un registro público u otro registro privado.
- Consulte la referencia de la plantilla de Resource Manager para Azure Container Registry.