Risolvere i problemi relativi alle immagini container

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

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

Verifica quanto segue:

  1. Verifica che il percorso completo dell'immagine che stai inviando sia corretto. Il percorso deve includere l'hostname del registry, 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 ulteriori informazioni, vedi Nomi di repository e immagini.

  2. Verifica che l'account che sta estraendo l'immagine abbia autorizzazioni di lettura dal repository.

    • L'account di servizio predefinito di Cloud Build dispone di autorizzazioni di lettura e scrittura ai repository nello stesso progetto Google Cloud. Se utilizzi un dell'account di servizio fornito dall'utente o eseguire il push e il pull delle immagini per i progetti, concedi il ruolo Writer Artifact Registry al servizio che esegue le build.
    • Per impostazione predefinita, Compute Engine, Cloud Run e Google Kubernetes Engine hanno letto autorizzazioni per i repository nello stesso progetto. Se Artifact Registry si trova in un progetto diverso dall'ambiente di runtime, devi concedere Artifact Registry Reader 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, il repository è un'operazione separata dal push della prima immagine. Se repository inesistente, crealo.

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

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

    Ogni repository Artifact Registry è una risorsa separata, pertanto 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 immagine non valido.

    Per ulteriori informazioni, vedi Nomi di repository e immagini.

  3. Verifica che l'account che invia l'immagine abbia autorizzazioni di scrittura nel repository.

    • L'account di servizio predefinito di Cloud Build dispone di autorizzazioni di lettura e scrittura ai repository nello stesso progetto Google Cloud. Se utilizzi un dell'account di servizio fornito dall'utente o eseguire il push e il pull delle immagini per i progetti, concedi il ruolo Writer Artifact Registry al 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 un di terze parti in questi ambienti per eseguire il push delle immagini, devi concedi 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 spingere nuovamente l'immagine con un tag non utilizzato da altre versioni archiviate dell'immagine.

    Per verificare che un repository sia configurato per i tag immagine immutabili, controlla la Colonna Tag immagine immutabili nell'elenco dei repository in 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 un'immagine non può essere estratta dal registry da GKE.