Descubre soluciones que pueden resultarte útiles si tienes algún problema al gestionar imágenes de contenedor en Artifact Registry.
No se puede extraer una imagen ni implementar en un Google Cloud entorno de tiempo de ejecución
Comprueba lo siguiente:
- Verifica que la ruta completa de la imagen que estás enviando sea correcta. La ruta debe incluir el nombre de host del registro, Google Cloud,
el ID del proyecto, el repositorio y la imagen. Por ejemplo:
Para obtener más información, consulta Nombres de repositorios e imágenes.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
- Verifica que la cuenta que está obteniendo la imagen tenga los permisos correctos para leer del repositorio. Si has inhabilitado la concesión automática de roles a las cuentas de servicio, debes conceder roles de Artifact Registry a las cuentas de servicio de tiempo de ejecución.
- En el caso de las cuentas de servicio de Compute Engine, Cloud Run y Google Kubernetes Engine, debes conceder el rol Lector de Artifact Registry (
roles/artifactregistry.reader
) a la cuenta de servicio del tiempo de ejecución. - En el caso de tu cuenta de servicio de Cloud Build, debes conceder el rol Escritor de Artifact Registry (
roles/artifactregistry.writer
) a la cuenta de servicio que ejecuta las compilaciones. - Si usas Docker u otra herramienta de terceros, debes hacer lo siguiente:
- Concede permisos a la cuenta que interactúa con el repositorio.
- Configura el cliente para que se autentique en el repositorio.
No se puede enviar una imagen a Artifact Registry
Prueba a hacer lo siguiente:
- Verifica que el repositorio exista. A diferencia de Container Registry, la creación de repositorios es una operación independiente de la inserción de la primera imagen. Si el repositorio no existe, créalo.
- Verifica que la ruta completa de la imagen que estás enviando sea correcta. La ruta debe incluir el nombre de host del registro, el ID del proyecto, el repositorio y la imagen. Google Cloud Por ejemplo:
us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
Cada repositorio de Artifact Registry es un recurso independiente, por lo que no puedes enviar una imagen a una ruta sin un repositorio. Por ejemplo,
us-west1-docker.pkg.dev/my-project/my-image:v1
es una ruta de imagen no válida.Para obtener más información, consulta Nombres de repositorios e imágenes.
- Verifica que la cuenta que está enviando la imagen tenga permisos para escribir en el repositorio. Si has inhabilitado la concesión automática de roles a las cuentas de servicio, debes conceder roles de Artifact Registry a las cuentas de servicio de tiempo de ejecución.
- En el caso de las cuentas de servicio de Compute Engine, Cloud Run y Google Kubernetes Engine, debes conceder el rol Escritor de Artifact Registry (
roles/artifactregistry.writer
) a la cuenta de servicio del tiempo de ejecución. - En el caso de tu cuenta de servicio de Cloud Build, debes conceder el rol Escritor de Artifact Registry (
roles/artifactregistry.writer
) a la cuenta de servicio que ejecuta las compilaciones. - Si Artifact Registry ha devuelto el mensaje
The repository has enabled tag immutability
, significa que la inmutabilidad de las etiquetas está configurada en el repositorio. No puedes enviar una imagen con una etiqueta que ya se haya usado para otra versión de la misma imagen en el repositorio. Intenta enviar la imagen de nuevo con una etiqueta que no usen otras versiones almacenadas de la imagen.Para verificar que un repositorio está configurado para usar etiquetas de imagen inmutables, consulte la columna Etiquetas de imagen inmutables de la lista de repositorios de la Google Cloud consola o ejecute el siguiente comando:
gcloud artifacts repositories describe REPOSITORY \ --project=PROJECT-ID \ --location=LOCATION
Mensajes ImagePullBackOff y ErrImagePull
Los mensajes con ImagePullBackOff
y ErrImagePull
indican que GKE no puede extraer una imagen del registro.
- Comprueba los requisitos para extraer contenido de Artifact Registry.
- Consulta el artículo Solucionar problemas de extracción de imágenes de la documentación de GKE.