Kan geen installatiekopieën ophalen uit Azure Container Registry met behulp van managed identity-verificatie
In dit artikel wordt beschreven hoe u pull-fouten met installatiekopieën oplost wanneer u implementeert in Azure Container Instances (ACI) vanuit Azure Container Registry (ACR) met behulp van een beheerde identiteit.
Symptomen
Wanneer u probeert een containergroep te implementeren en installatiekopieën op te halen uit een Azure-containerregister dat achter een privé-eindpunt wordt uitgevoerd met behulp van een beheerde identiteit, mislukt de pull-installatiekopie.
Oorzaak
Hier volgen enkele oorzaken van pull-fouten in de installatiekopie:
Vanaf de ACI-zijde:
- Op basis van de ACI API-versie die wordt gebruikt bij het implementeren van de containergroep, is de referentie-indeling in de ARM-sjabloon voor de containergroep mogelijk ongeldig.
- Het gebruik van een beheerde identiteit in de containergroep kan ACI-beperkingen schenden.
- De definitie van de containergroep in de ARM-sjabloon is mogelijk onjuist.
Vanaf de ACR-zijde:
- Mogelijk gebruikt u een eerdere API-versie.
- Mogelijk gebruikt u een privé-DNS-zone voor het containerregister.
Problemen met de ACI-zijde oplossen
Controleer of u een ACI API-versie gebruikt die ouder is dan 2021-07-01.
Als dit het probleem is, ziet u mogelijk de fout 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." } }
Gebruik ACI API-versie 2021-07-01 of hoger om dit probleem op te lossen.
Controleer of u ACI-beperkingen schendt.
Beperkingen zijn onder andere:
- Virtuele netwerk geïnjecteerde containergroepen.
- Windows Server 2016-containergroepen.
- Poging om de privé-DNS-zone van ACR op te lossen.
U kunt dit probleem oplossen door ervoor te zorgen dat u deze beperkingen niet schendt.
Controleer of de definitie van de containergroep juist is gevormd.
Als dat niet het is, ziet u mogelijk de volgende fouten:
Foutcode 'AmbiguousImageResitryCredentialType':
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" } }
Foutcode '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." } }
Foutcode "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.'." } }
U kunt dit probleem oplossen door de volgende eigenschappen op te geven in de ARM-sjabloon:
- De
server
enidentity
eigenschappen van ImageRegistryCredential. - De
type
enuserAssignedIdentity
eigenschappen van ContainerGroupIdentity.
Problemen oplossen vanuit de ACR-zijde
Controleer of aan de beheerde identiteit de
AcrPull
rol is toegewezen.Als dat niet het probleem is, ziet u mogelijk de fout 'OntoegankelijkeImage':
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." } }
U kunt dit probleem oplossen door de
AcrPull
rol toe te kennen aan de beheerde identiteit. Zie De identiteitsmachtigingen verlenen voor toegang tot andere Azure-resources voor meer informatie.Controleer of ACR vertrouwde services heeft ingeschakeld. Zo niet, schakel dan vertrouwde services in.
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.