Freigeben über


Fehler beim Abrufen von Images aus der Azure-Containerregistrierung mithilfe der Authentifizierung mit verwalteter Identität

In diesem Artikel wird erläutert, wie Sie Image-Pullfehler behandeln, wenn Sie mithilfe einer verwalteten Identität in Azure Container Instances (ACI) in Azure Container Instances (ACI) bereitstellen.

Symptome

Wenn Sie versuchen, eine Containergruppe bereitzustellen und Bilder aus einer Azure-Containerregistrierung abzurufen, die mit einer verwalteten Identität hinter einem privaten Endpunkt ausgeführt wird, schlägt der Image-Pull fehl.

Ursache

Hier sind einige Ursachen für Bild-Pullfehler:

  • Von der ACI-Seite:

    • Basierend auf der ACI-API-Version, die beim Bereitstellen der Containergruppe verwendet wird, ist das in der Containergruppen-ARM-Vorlage bereitgestellte Anmeldeinformationsformat möglicherweise ungültig.
    • Die Verwendung einer verwalteten Identität in der Containergruppe kann gegen ACI-Einschränkungen verstoßen.
    • Die Containergruppendefinition in der ARM-Vorlage ist möglicherweise fehlerhaft.
  • Von der ACR-Seite:

    • Möglicherweise verwenden Sie eine frühere API-Version.
    • Möglicherweise verwenden Sie eine private DNS-Zone für die Containerregistrierung.

Problembehandlung von ACI-Seite

  1. Überprüfen Sie, ob Sie eine ACI-API-Version vor 2021-07-01 verwenden.

    Wenn ja, wird möglicherweise der Fehler "InvalidImageRegistryCredentialType" angezeigt:

    $ 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." 
      } 
    } 
    

    Um dieses Problem zu beheben, verwenden Sie die ACI-API Version 2021-07-01 oder höher.

  2. Überprüfen Sie, ob Sie gegen ACI-Einschränkungen verstoßen.

    Es gelten u. a. folgende Einschränkungen:

    • Containergruppen für virtuelle Netzwerke injiziert.
    • Windows Server 2016-Containergruppen.
    • Es wird versucht, die private DNS-Zone von ACR aufzulösen.

    Um dieses Problem zu beheben, stellen Sie sicher, dass Sie diese Einschränkungen nicht verletzen.

  3. Überprüfen Sie, ob die Containergruppendefinition ordnungsgemäß gebildet ist.

    Wenn nicht, werden möglicherweise die folgenden Fehler angezeigt:

    • Fehlercode "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" 
      } 
      } 
      
    • Fehlercode "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." 
      } 
      } 
      
    • Fehlercode "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.'." 
      } 
      }
      

    Um dieses Problem zu beheben, müssen Sie die folgenden Eigenschaften in der ARM-Vorlage bereitstellen:

Problembehandlung von ACR-Seite

  1. Überprüfen Sie, ob die verwaltete Identität die AcrPull Rolle zugewiesen hat.

    Andernfalls wird möglicherweise der Fehler "InaccessibleImage" angezeigt:

    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." 
      } 
    } 
    

    Um dieses Problem zu beheben, erteilen Sie der verwalteten Identität die AcrPull Rolle. Weitere Informationen finden Sie unter Erteilen der Identitätsberechtigungen für den Zugriff auf andere Azure-Ressourcen.

  2. Überprüfen Sie, ob ACR vertrauenswürdige Dienste aktiviert hat. Wenn nicht, aktivieren Sie vertrauenswürdige Dienste.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.