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 Google Cloud ambiente di runtime

Controlla quanto segue:

  1. Verifica che il percorso completo dell'immagine che stai inviando sia corretto. Il percorso deve includere il nome host del registry, Google Cloud, l'ID progetto, il repository e l'immagine. Ad esempio:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
    Per ulteriori informazioni, consulta Nomi di repository e immagini.
  2. Verifica che l'account che estrae l'immagine disponga delle autorizzazioni corrette per leggere dal repository. Se hai disattivato la concessione automatica dei ruoli agli account di servizio, devi concedere i ruoli di Artifact Registry agli account di servizio di runtime.
    • Per gli account di servizio Compute Engine, Cloud Run e Google Kubernetes Engine, devi concedere il ruolo Lettore del registry degli elementi (roles/artifactregistry.reader) all'account di servizio di runtime.
    • Per il tuo account di servizio Cloud Build, devi concedere il ruolo Authore del registry di elementi (roles/artifactregistry.writer) all'account di servizio che esegue le build.
    • Se utilizzi Docker o un altro strumento di terze parti, devi:

Impossibile eseguire il push di un'immagine in Artifact Registry

Prova 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 registry, Google Cloud l'ID progetto, il repository e l'immagine. Ad esempio:
    us-west1-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-west1-docker.pkg.dev/my-project/my-image:v1 è un percorso immagine non valido.

    Per ulteriori 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. Se hai disattivato la concessione automatica dei ruoli agli account di servizio, devi concedere i ruoli di Artifact Registry agli account di servizio di runtime.
    • Per gli account di servizio Compute Engine, Cloud Run e Google Kubernetes Engine, devi concedere il ruolo Scrittore del registry di elementi (roles/artifactregistry.writer) all'account di servizio di runtime.
    • Per il tuo account di servizio Cloud Build, devi concedere il ruolo Authore del registry di elementi (roles/artifactregistry.writer) all'account di servizio che esegue le build.
  4. Se Artifact Registry ha restituito il messaggio The repository has enabled tag immutability, l'immutabilità dei 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 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 nella console Google Cloud o esegui il seguente 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.