Condividi tramite


Non è possibile eseguire il pull di immagini da Registro Azure Container usando l'autenticazione dell'identità gestita

Questo articolo illustra come risolvere gli errori di pull delle immagini quando si esegue la distribuzione in Istanze di Azure Container (ACI) da Registro Azure Container (Registro Azure Container) usando un'identità gestita.

Sintomi

Quando si tenta di distribuire un gruppo di contenitori ed eseguire il pull di immagini da un registro contenitori di Azure eseguito dietro un endpoint privato usando un'identità gestita, il pull dell'immagine ha esito negativo.

Causa

Ecco alcune cause degli errori di pull dell'immagine:

  • Dal lato ACI:

    • In base alla versione dell'API ACI usata durante la distribuzione del gruppo di contenitori, il formato delle credenziali fornito nel modello arm del gruppo di contenitori potrebbe non essere valido.
    • L'uso di un'identità gestita nel gruppo di contenitori potrebbe violare le limitazioni di ACI.
    • La definizione del gruppo di contenitori nel modello di Resource Manager potrebbe non essere valida.
  • Dal lato ACR:

    • È possibile che si usi una versione precedente dell'API.
    • È possibile che si usi una zona DNS privata per il registro contenitori.

Risoluzione dei problemi dal lato ACI

  1. Controllare se si usa una versione dell'API ACI precedente alla versione 2021-07-01.

    In tal caso, potrebbe essere visualizzato l'errore "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." 
      } 
    } 
    

    Per risolvere questo problema, usare l'API ACI versione 2021-07-01 o successiva.

  2. Verificare se si stanno violando eventuali limitazioni di ACI.

    Le limitazioni includono:

    • Gruppi di contenitori inseriti nella rete virtuale.
    • Windows Server 2016 gruppi di contenitori.
    • Tentativo di risolvere la zona DNS privata del Registro Azure Container.

    Per risolvere questo problema, assicurarsi di non violare tali limitazioni.

  3. Controllare se la definizione del gruppo di contenitori è formattata correttamente.

    In caso contrario, potrebbero verificarsi gli errori seguenti:

    • Codice di errore "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" 
      } 
      } 
      
    • Codice di errore "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." 
      } 
      } 
      
    • Codice di errore "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.'." 
      } 
      }
      

    Per risolvere questo problema, è necessario specificare le proprietà seguenti nel modello di Resource Manager:

Risoluzione dei problemi dal lato Registro Azure Container

  1. Verificare se all'identità gestita è assegnato il AcrPull ruolo.

    In caso contrario, potrebbe essere visualizzato l'errore "InaccessibleImage":

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

    Per risolvere questo problema, concedere il AcrPull ruolo all'identità gestita. Per altre informazioni, vedere Concedere le autorizzazioni di identità per accedere ad altre risorse di Azure.

  2. Verificare se il Registro Azure Container ha abilitato i servizi attendibili . In caso contrario, abilitare i servizi attendibili.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.