Delen via


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

  1. 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.

  2. 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.

  3. 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:

Problemen oplossen vanuit de ACR-zijde

  1. 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.

  2. 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.