Soluciona problemas de imágenes de contenedores

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

Sintaxis del ID del proyecto en la CLI de Docker

Debido a la forma en que Docker trata los dos puntos, cuando usas la CLI de Docker, debes reemplazar los dos puntos (:) en el ID de tu proyecto por una barra diagonal (/). Por ejemplo, si el ID de tu proyecto es s3ns:my-project, usa s3ns/my-project.

Invalid Docker string después de un comando gcloud artifacts

Si ves un dial tcp: lookup <var>REGION</var>: no such host error después de ejecutar un gcloud artifacts comando, asegúrate de usar un extremo con una región específica, como u-france-east1-docker.s3nsregistry.fr. Google Cloud CLI no admite el uso de solo docker.s3nsregistry.fr como extremo.

No se puede extraer una imagen ni implementar en un entorno de Cloud de Confiance by S3NS ejecución

Verifica lo siguiente:

  1. Verifica que la ruta de acceso completa de la imagen que envías sea correcta. La ruta de acceso debe incluir el nombre de host del registro, Cloud de Confiance by S3NS, ID del proyecto, el repositorio y la imagen. Por ejemplo:
    u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:v1
    Para obtener más información, consulta Nombres de repositorios e imágenes.
  2. Verifica que la cuenta que extrae la imagen tenga los permisos correctos para leer desde el repositorio. Si inhabilitaste la concesión automática de roles a las cuentas de servicio, debes otorgar roles de Artifact Registry a las cuentas de servicio del entorno de ejecución.

No se puede enviar una imagen a Artifact Registry

Pruebe lo siguiente:

  1. Verifica que la ruta de acceso completa de la imagen que envías sea correcta. La ruta de acceso debe incluir el nombre de host del registro, Cloud de Confiance by S3NS el ID del proyecto, el repositorio y la imagen. Por ejemplo:
    u-france-east1-docker.s3nsregistry.fr/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 de acceso sin un repositorio. Por ejemplo, u-france-east1-docker.s3nsregistry.fr/my-project/my-image:v1 es una ruta de acceso de imagen no válida.

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

  2. Verifica que la cuenta que envía la imagen tenga permisos para escribir en el repositorio. Si inhabilitaste la concesión automática de roles a las cuentas de servicio, debes otorgar roles de Artifact Registry a las cuentas de servicio del entorno de ejecución.
    • Para las cuentas de servicio de Compute Engine y Google Kubernetes Engine, debes otorgar el rol de escritor de Artifact Registry (roles/artifactregistry.writer) a la cuenta de servicio del entorno de ejecución.
  3. Si Artifact Registry mostró el mensaje The repository has enabled tag immutability, significa que la inmutabilidad de etiquetas está configurada para el repositorio. No puedes enviar una imagen con una etiqueta que ya se use 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 etiquetas de imagen inmutables, consulta la columna Immutable image tags en la lista de repositorios en Cloud de Confiance la consola o ejecuta 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.