Bug #17
openImagePullBackOff` sur le déploiement MonService en environnement Staging
0%
Description
Projet : [Nom de votre projet, ex: API-Production]
Tracker : Bogue
Sujet : ImagePullBackOff sur le déploiement [Nom du service] en environnement [Staging/Production]
Statut : Nouveau
Priorité : Élevée
Assigné à : [Nom de l'équipe ou de la personne, ex: Équipe SRE]
Version cible : [Version ou Sprint concerné, ex: Sprint 24.3]
Description¶
Bonjour,
Nous rencontrons une erreur de type ImagePullBackOff sur les pods du déploiement mon-application-backend en environnement de Production. Le déploiement est dans un état instable et les nouvelles versions du pod n'arrivent pas à démarrer.
Ce problème est survenu suite à la tentative de déploiement de la version v1.2.3 de notre image Docker.
Environnement¶
-
Cluster Kubernetes :
gke-prod-europe-west1-a -
Namespace :
backend-services -
Déploiement concerné :
mon-application-backend -
Image Docker :
mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3
Symptômes Observés¶
En utilisant la commande kubectl get pods -n backend-services, nous voyons les pods bloqués dans cet état :
NAME READY STATUS RESTARTS AGE
mon-application-backend-5f8f7f95f6-abcde 0/1 ImagePullBackOff 0 15m
mon-application-backend-5f8f7f95f6-fghij 0/1 ImagePullBackOff 0 15m
Logs et Diagnostics¶
Voici l'extrait pertinent de la commande kubectl describe pod mon-application-backend-5f8f7f95f6-abcde -n backend-services :
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 16m default-scheduler Successfully assigned backend-services/mon-application-backend-5f8f7f95f6-abcde to gke-prod-cluster-node-pool-1-xxxx
Normal Pulling 15m (x4 over 16m) kubelet Pulling image "mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3"
Warning Failed 15m (x4 over 16m) kubelet Failed to pull image "mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3": rpc error: code = Unknown desc = failed to pull and unpack image "mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3": failed to resolve reference "mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3": mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3: not found
Warning Failed 15m (x6 over 16m) kubelet Error: ErrImagePull
Normal BackOff 14m (x7 over 16m) kubelet Back-off pulling image "mon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3"
Warning Failed 1m (x25 over 16m) kubelet Error: ImagePullBackOff
L'erreur not found suggère que le tag v1.2.3 de l'image n'existe pas dans notre registre d'images (Google Container Registry).
Comportement Attendu¶
Le déploiement mon-application-backend devrait réussir à télécharger l'image v1.2.3 et les pods devraient passer au statut Running.
Étapes de Reproduction¶
- Mettre à jour le fichier de déploiement
deployment.yamlpour utiliser l'imagemon-registre.gcr.io/mon-projet/mon-application-backend:v1.2.3. - Appliquer la configuration avec
kubectl apply -f deployment.yaml -n backend-services. - Observer l'état des pods avec
kubectl get pods -n backend-services --watch.
Action Immédiate (si effectuée)¶
Pour restaurer le service, nous avons procédé à un rollback vers la version précédente (v1.2.2) en utilisant la commande kubectl rollout undo deployment/mon-application-backend -n backend-services. Le service est de nouveau opérationnel.
Question / Demande¶
Pouvez-vous s'il vous plaît vérifier pourquoi le pipeline CI/CD n'a pas publié le tag d'image v1.2.3 ou s'il y a un problème de permissions ?
Fichiers joints¶
-
deployment.v1.2.3.yaml(le fichier de déploiement qui a échoué)
Pourquoi ce modèle est efficace ?¶
-
Sujet Clair : Il contient l'erreur (
ImagePullBackOff), le service impacté, et l'environnement. On sait immédiatement de quoi il s'agit. - Contexte Précis : Fournit toutes les informations nécessaires (cluster, namespace, nom du déploiement, image Docker) pour que l'ingénieur n'ait pas à les chercher.
-
Logs Pertinents : Le résultat de
kubectl describeest la source de vérité pour ce type de bogue. L'inclure fait gagner un temps précieux. -
Analyse Préliminaire : Le ticket ne se contente pas de signaler l'erreur, il propose une hypothèse (
tag not found), ce qui montre qu'une première investigation a été menée. - Action et Attendu : La section "Comportement Attendu" clarifie l'objectif, et la section "Action Immédiate" informe des mesures de contournement déjà prises, ce qui est crucial pour la gestion d'incident.
- Actionnable : La demande finale est une question claire qui oriente la résolution du problème.
Updated by UserName LastName 7 months ago
Bonjour,
Merci pour ce rapport très détaillé et pour avoir effectué le rollback, ce qui a permis de stabiliser le service rapidement.
Votre analyse est correcte : l'image avec le tag v1.2.3 n'a pas été trouvée dans notre registre d'images (Google Container Registry). Nous examinons actuellement le pipeline CI/CD pour comprendre pourquoi la publication de cette version a échoué.
En attendant la résolution du problème avec la version v1.2.3, pourriez-vous s'il vous plaît confirmer quelle version de l'image nous devrions utiliser pour le déploiement ? Devons-nous rester sur la version v1.2.2 qui est actuellement stable, ou une autre version doit-elle être déployée ?
Cordialement,