Soluciona problemas relacionados con las imágenes de contenedor

Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes problemas para administrar imágenes de contenedor en Artifact Registry.

No se puede extraer una imagen ni implementarla en un entorno de ejecución de Google Cloud

Verifica lo siguiente:

  1. Verifica que la ruta de acceso completa de la imagen que estás enviando sea correcta. La ruta debe incluir el nombre de host del registro, el ID del proyecto de Google Cloud, el repositorio y la imagen. Por ejemplo:

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

    Para obtener más información, consulta Nombres de repositorios y de imágenes.

  2. Verifica que la cuenta que extrae la imagen tenga permisos para leer del repositorio.

    • La cuenta de servicio predeterminada de Cloud Build tiene permisos de lectura y escritura en los repositorios del mismo proyecto de Google Cloud. Si usas una cuenta de servicio proporcionada por el usuario o envías y extraes imágenes entre proyectos, otorga la función de escritor de Artifact Registry a la cuenta de servicio que ejecuta las compilaciones.
    • De forma predeterminada, Compute Engine, Cloud Run y Google Kubernetes Engine tienen permisos de lectura para los repositorios en el mismo proyecto. Si Artifact Registry está en un proyecto diferente al del entorno de ejecución, debes otorgar el rol de lector de Artifact Registry a la cuenta de servicio del entorno de ejecución.
    • Si usas Docker o alguna otra herramienta de terceros, debes hacer lo siguiente:

No se puede enviar una imagen a Artifact Registry

Verifica lo siguiente:

  1. Verifica que el repositorio exista. A diferencia de Container Registry, la creación de repositorios es una operación independiente de enviar la primera imagen. Si el repositorio no existe, créalo.

  2. Verifica que la ruta de acceso completa de la imagen que estás enviando sea correcta. La ruta debe incluir el nombre de host del registro, el ID del proyecto de Google Cloud, el repositorio y la imagen. Por ejemplo:

    us-east1-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-east1-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 y de imágenes.

  3. Verifica que la cuenta que envía la imagen tenga permisos para escribir en el repositorio.

    • La cuenta de servicio predeterminada de Cloud Build tiene permisos de lectura y escritura en los repositorios del mismo proyecto de Google Cloud. Si usas una cuenta de servicio proporcionada por el usuario o envías y extraes imágenes entre proyectos, otorga la función de escritor de Artifact Registry a la cuenta de servicio que ejecuta las compilaciones.
    • De forma predeterminada, Compute Engine, Cloud Run y Google Kubernetes Engine tienen permisos de lectura para los repositorios en el mismo proyecto. Si usas una herramienta de terceros en estos entornos para enviar imágenes, debes otorgar el rol de escritor de Artifact Registry a la cuenta de servicio del entorno de ejecución.
  4. Si Artifact Registry mostró el mensaje The repository has enabled tag immutability, la inmutabilidad de etiqueta se configura para el repositorio. No puedes enviar una imagen con una etiqueta que ya se usa para otra versión de la misma imagen en el repositorio. Intenta volver a enviar la imagen con una etiqueta que no se use en otras versiones almacenadas de la imagen.

    Si deseas verificar que un repositorio esté configurado para etiquetas de imágenes inmutables, consulta la columna Etiquetas de imágenes inmutables en la lista de repositorios de Google Cloud Console o ejecuta el siguiente comando:

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

Mensajes de ImagePullBackOff y ErrImagePull

Los mensajes con ImagePullBackOff y ErrImagePull indican que GKE no puede extraer una imagen del registro.