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:
- 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:
Per ulteriori informazioni, consulta Nomi di repository e immagini.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
- 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:
- Concedi le autorizzazioni all'account che interagisce con il repository.
- Configura il client per eseguire l'autenticazione nel repository.
Impossibile eseguire il push di un'immagine in Artifact Registry
Prova quanto segue:
- 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.
- 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.
- 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. - 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.
- Verifica i requisiti per il recupero da Artifact Registry.
- Esamina i passaggi per la risoluzione dei problemi nella documentazione di GKE.