Résoudre les problèmes liés aux images de conteneurs

Découvrez les étapes de dépannage qui pourraient vous être utiles si vous rencontrez des problèmes lors de la gestion des images de conteneurs dans Artifact Registry.

Impossible d'extraire une image ou de la déployer dans un environnement d'exécution Google Cloud

Vérifiez les éléments suivants :

  1. Vérifiez que le chemin d'accès complet de l'image que vous transférez est correct. Le chemin d'accès doit inclure le nom d'hôte du registre, l'ID de projet Google Cloud, le dépôt et l'image. Exemple :

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

    Pour en savoir plus, consultez la section Noms des dépôts et des images.

  2. Vérifiez que le compte qui extrait l'image dispose des autorisations nécessaires pour lire le dépôt.

    • Le compte de service par défaut de Cloud Build dispose d'autorisations de lecture et d'écriture sur les dépôts du même projet Google Cloud. Si vous utilisez un compte de service fourni par l'utilisateur, ou que vous transférez et extrayez des images sur plusieurs projets, accordez le rôle "Rédacteur Artifact Registry" au compte de service qui exécute les compilations.
    • Par défaut, Compute Engine, Cloud Run et Google Kubernetes Engine disposent d'autorisations de lecture pour les dépôts d'un même projet. Si Artifact Registry se trouve dans un projet différent de celui de l'environnement d'exécution, vous devez attribuer le rôle Lecteur d'Artifact Registry au compte de service d'exécution.
    • Si vous utilisez Docker ou un autre outil tiers, vous devez:

Impossible de transférer une image vers Artifact Registry

Vérifiez les éléments suivants :

  1. Vérifiez que le dépôt existe. Contrairement à Container Registry, la création d'un dépôt est une opération distincte de la transmission de la première image. Si le dépôt n'existe pas, créez-le.

  2. Vérifiez que le chemin d'accès complet de l'image que vous transférez est correct. Le chemin d'accès doit inclure le nom d'hôte du registre, l'ID de projet Google Cloud, le dépôt et l'image. Exemple :

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

    Chaque dépôt Artifact Registry est une ressource distincte. Vous ne pouvez donc pas transférer une image vers un chemin d'accès sans dépôt. Par exemple, us-east1-docker.pkg.dev/my-project/my-image:v1 est un chemin d'accès d'image non valide.

    Pour en savoir plus, consultez la section Noms des dépôts et des images.

  3. Vérifiez que le compte qui transmet l'image dispose des autorisations nécessaires pour écrire dans le dépôt.

    • Le compte de service par défaut de Cloud Build dispose d'autorisations de lecture et d'écriture sur les dépôts du même projet Google Cloud. Si vous utilisez un compte de service fourni par l'utilisateur, ou que vous transférez et extrayez des images sur plusieurs projets, accordez le rôle "Rédacteur Artifact Registry" au compte de service qui exécute les compilations.
    • Par défaut, Compute Engine, Cloud Run et Google Kubernetes Engine disposent d'autorisations de lecture pour les dépôts d'un même projet. Si vous utilisez un outil tiers dans ces environnements pour transférer des images, vous devez attribuer le rôle "Rédacteur Artifact Registry" au compte de service d'exécution.
  4. Si Artifact Registry a renvoyé le message The repository has enabled tag immutability, l'immuabilité des tags est configurée pour le dépôt. Vous ne pouvez pas transférer une image avec un tag déjà utilisé pour une autre version de la même image dans le dépôt. Essayez de transférer à nouveau l'image avec un tag qui n'est pas utilisé par les autres versions stockées de l'image.

    Pour vérifier qu'un dépôt est configuré pour les tags d'image immuables, consultez la colonne Tags d'image immuables dans la liste des dépôts de la console Google Cloud ou exécutez la commande suivante:

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

Messages ImagePullBackOff et ErrImagePull

Les messages contenant ImagePullBackOff et ErrImagePull indiquent qu'une image ne peut pas être extraite du registre par GKE.