Échec de l’extraction d’images à partir d’Azure Container Registry à l’aide de l’authentification d’identité managée
Cet article explique comment résoudre les échecs d’extraction d’images lorsque vous déployez sur Azure Container Instances (ACI) à partir d’Azure Container Registry (ACR) à l’aide d’une identité managée.
Symptômes
Lorsque vous essayez de déployer un groupe de conteneurs et d’extraire des images à partir d’un registre de conteneurs Azure qui s’exécute derrière un point de terminaison privé à l’aide d’une identité managée, l’extraction d’images échoue.
Cause
Voici quelques causes d’échecs d’extraction d’images :
Du côté ACI :
- En fonction de la version de l’API ACI utilisée lors du déploiement du groupe de conteneurs, le format d’informations d’identification fourni dans le modèle ARM du groupe de conteneurs peut ne pas être valide.
- L’utilisation d’une identité managée dans le groupe de conteneurs peut violer les limitations ACI.
- La définition du groupe de conteneurs dans le modèle ARM peut être incorrecte.
Du côté ACR :
- Vous utilisez peut-être une version antérieure de l’API.
- Vous utilisez peut-être une zone DNS privée pour le registre de conteneurs.
Résolution des problèmes du côté ACI
Vérifiez si vous utilisez une version d’API ACI antérieure à 2021-07-01.
Dans ce cas, l’erreur « InvalidImageRegistryCredentialType » peut s’afficher :
$ 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." } }
Pour résoudre ce problème, utilisez l’API ACI version 2021-07-01 ou ultérieure.
Vérifiez si vous ne respectez aucune limite ACI.
Ces limitations incluent :
- Groupes de conteneurs injectés de réseau virtuel.
- Groupes de conteneurs Windows Server 2016.
- Tentative de résolution de la zone DNS privée d’ACR.
Pour résoudre ce problème, veillez à ne pas violer ces limitations.
Vérifiez si la définition du groupe de conteneurs est correctement formée.
Si ce n’est pas le cas, les erreurs suivantes peuvent s’afficher :
Code d’erreur « AmbiguImageResitryCredentialType » :
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" } }
Code d’erreur « 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." } }
Code d’erreur « 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.'." } }
Pour résoudre ce problème, vous devez fournir les propriétés suivantes dans le modèle ARM :
- Propriétés
server
etidentity
propriétés d’ImageRegistryCredential. - Propriétés
type
etuserAssignedIdentity
propriétés de ContainerGroupIdentity.
Résolution des problèmes du côté ACR
Vérifiez si l’identité managée a le
AcrPull
rôle attribué.Si ce n’est pas le cas, l’erreur « InaccessibleImage » peut s’afficher :
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." } }
Pour résoudre ce problème, accordez le
AcrPull
rôle à l’identité managée. Pour plus d’informations, consultez Accorder les autorisations d’identité pour accéder à d’autres ressources Azure.Vérifiez si ACR a activé les services approuvés. Si ce n’est pas le cas, activez les services approuvés.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.