Risolvere i problemi relativi all'immagine container

Scopri i passaggi per la risoluzione dei problemi, utili in caso di problemi di gestione delle immagini container in Artifact Registry.

Impossibile eseguire il pull di un'immagine o il deployment in un ambiente di runtime di Google Cloud

Verifica quanto segue:

  1. Verifica che il percorso completo dell'immagine che stai inviando sia corretto. Il percorso deve includere il nome host del registro, l'ID progetto Google Cloud, il repository e l'immagine. Ad esempio:

    us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
    

    Per maggiori informazioni, consulta Nomi di repository e immagini.

  2. Verifica che l'account che esegue il pull dell'immagine disponga delle autorizzazioni per leggere dal repository.

    • L'account di servizio predefinito di Cloud Build dispone delle autorizzazioni di lettura e scrittura per i repository nello stesso progetto Google Cloud. Se utilizzi un account di servizio fornito dall'utente o esegui il push e il pull delle immagini tra progetti, concedi il ruolo Writer Artifact Registry all'account di servizio che esegue le build.
    • Per impostazione predefinita, Compute Engine, Cloud Run e Google Kubernetes Engine dispongono delle autorizzazioni di lettura per i repository nello stesso progetto. Se Artifact Registry si trova in un progetto diverso dall'ambiente di runtime, devi concedere il ruolo Lettore Artifact Registry all'account di servizio di runtime.
    • Se utilizzi Docker o un altro strumento di terze parti, devi:

Impossibile eseguire il push di un'immagine in Artifact Registry

Verifica quanto segue:

  1. Verifica che il repository esista. A differenza di Container Registry, la creazione del repository è un'operazione separata dal push della prima immagine. Se il repository non esiste, crealo.

  2. Verifica che il percorso completo dell'immagine che stai inviando sia corretto. Il percorso deve includere il nome host del registro, l'ID progetto Google Cloud, il repository e l'immagine. Ad esempio:

    us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
    

    Ogni repository Artifact Registry è una risorsa separata, quindi non puoi eseguire il push di un'immagine in un percorso senza un repository. Ad esempio, us-east1-docker.pkg.dev/my-project/my-image:v1 è un percorso dell'immagine non valido.

    Per maggiori informazioni, consulta Nomi di repository e immagini.

  3. Verifica che l'account che esegue il push dell'immagine disponga delle autorizzazioni per scrivere nel repository.

    • L'account di servizio predefinito di Cloud Build dispone delle autorizzazioni di lettura e scrittura per i repository nello stesso progetto Google Cloud. Se utilizzi un account di servizio fornito dall'utente o esegui il push e il pull delle immagini tra progetti, concedi il ruolo Writer Artifact Registry all'account di servizio che esegue le build.
    • Per impostazione predefinita, Compute Engine, Cloud Run e Google Kubernetes Engine dispongono delle autorizzazioni di lettura per i repository nello stesso progetto. Se utilizzi uno strumento di terze parti in questi ambienti per eseguire il push delle immagini, devi concedere il ruolo Writer Artifact Registry all'account di servizio di runtime.
  4. Se Artifact Registry ha restituito il messaggio The repository has enabled tag immutability, l'immutabilità del tag è configurata per il repository. Non puoi eseguire il push di un'immagine con un tag già utilizzato per un'altra versione della stessa immagine nel repository. Prova a eseguire nuovamente il push dell'immagine con un tag che non sia utilizzato da altre versioni archiviate dell'immagine.

    Per verificare che in un repository siano configurati tag immagine immutabili, controlla la colonna Tag immagine immutabili nell'elenco dei repository nella console Google Cloud o esegui questo comando:

    gcloud artifacts repositories describe REPOSITORY
        --project=PROJECT-ID
        --location=LOCATION
    

Messaggi ImagePullBackOff ed ErrImagePull

I messaggi con ImagePullBackOff e ErrImagePull indicano che GKE non può estrarre un'immagine dal registro.