No se pueden extraer imágenes de Azure Container Registry mediante la autenticación de identidad administrada
En este artículo se describe cómo solucionar errores de extracción de imágenes al implementar en Azure Container Instances (ACI) desde Azure Container Registry (ACR) mediante una identidad administrada.
Síntomas
Al intentar implementar un grupo de contenedores y extraer imágenes de un registro de contenedor de Azure que se ejecuta detrás de un punto de conexión privado mediante una identidad administrada, se produce un error en la extracción de imágenes.
Causa
Estas son algunas causas de errores de extracción de imágenes:
Desde el lado de ACI:
- En función de la versión de la API de ACI que se usa al implementar el grupo de contenedores, el formato de credencial proporcionado en la plantilla de ARM del grupo de contenedores podría no ser válido.
- El uso de una identidad administrada en el grupo de contenedores podría infringir las limitaciones de ACI.
- Es posible que la definición del grupo de contenedores de la plantilla de ARM tenga un formato incorrecto.
Desde el lado de ACR:
- Es posible que esté usando una versión anterior de la API.
- Es posible que esté usando una zona DNS privada para el registro de contenedor.
Solución de problemas desde el lado de ACI
Compruebe si usa una versión de api de ACI anterior a 2021-07-01.
Si es así, es posible que vea el error "InvalidImageRegistryCredentialType":
$ az deployment group create -g <resourcegroupname> --template-file containergroup_trusted.json Deployment failed. Correlation ID: <Correlation ID>. { "error": { "code": "InvalidImageRegistryCredentialType", "message": "Identity in 'imageRegistryCredentials' of container group 'acrtestcontainergroup' is not supported." } }
Para resolver este problema, use la api de ACI versión 2021-07-01 o posterior.
Compruebe si infringe las limitaciones de ACI.
Entre las limitaciones se incluyen:
- Grupos de contenedores insertados en la red virtual.
- Grupos de contenedores de Windows Server 2016.
- Intentar resolver la zona DNS privada de ACR.
Para resolver este problema, asegúrese de que no infringe esas limitaciones.
Compruebe si la definición del grupo de contenedores tiene el formato correcto.
Si no es así, es posible que vea los siguientes errores:
Código de error "AmbiguaImageResitryCredentialType":
Deployment failed. Correlation ID: <Correlation ID>. { "error": { "code": "AmbiguousImageResitryCredentialType", "message": "The registry credential type in the 'imageRegistryCredentials' of container group 'acrtestcontainergroup' cannot be detected. Please set exactly one of username or identity" } }
Código de error "InvalidImageRegistryIdentity":
Deployment failed. Correlation ID: <Correlation ID>. { "error": { "code": "InvalidImageRegistryIdentity", "message": "The identity in the 'imageRegistryCredentials' of container group 'acrtestcontainergroup' not found in container group identity list." } }
Código de error "InvalidRequestContent":
Deployment failed. Correlation ID: <Correlation ID>. { "error": { "code": "InvalidRequestContent", "message": "The request content was invalid and could not be deserialized: 'Required property 'server' not found in JSON. Path 'properties.imageRegistryCredentials[0]', line 1, position 586.'." } }
Para resolver este problema, debe proporcionar las siguientes propiedades en la plantilla de ARM:
- Las
server
propiedades yidentity
de ImageRegistryCredential. - Las
type
propiedades yuserAssignedIdentity
de ContainerGroupIdentity.
Solución de problemas desde el lado de ACR
Compruebe si la identidad administrada tiene asignado el
AcrPull
rol.Si no es así, es posible que vea el error "InaccesibleImage":
Deployment failed. Correlation ID: <Correlation ID>. { "error": { "code": "InaccessibleImage", "message": "The image 'myacr.azurecr.io/pythonworker:v1' in container group 'acrtestcontainergroup' is not accessible. Please check the image and registry credential." } }
Para resolver este problema, conceda el
AcrPull
rol a la identidad administrada. Para más información, consulte Concesión de permisos de identidad para acceder a otros recursos de Azure.Compruebe si ACR tiene habilitados los servicios de confianza. Si no es así, habilite los servicios de confianza.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.