Commencez par kubectl describe pod pour les événements et le dernier code de sortie, puis kubectl logs avec --previous pour lire la sortie du conteneur qui a planté. Le code de sortie 137 signifie en général un OOM kill, donc vérifiez les limites mémoire ; un code 1 ou 2 signifie en général que l'application a échoué au démarrage, souvent à cause d'une configuration ou d'un secret manquant, ou d'une dépendance injoignable. Confirmez que le tag de l'image existe vraiment et vérifiez si une sonde de liveness trop agressive provoque la boucle.
Pourquoi les recruteurs posent cette question
C'est un test de compétence pratique : savez-vous vraiment exploiter un cluster sous pression ou connaissez-vous seulement les concepts. Les recruteurs veulent une séquence de commandes précise, le sens des codes de sortie courants, et la conscience qu'une boucle de crash vient parfois de la plateforme (sondes, limites de ressources, pression sur le nœud) plutôt que du code applicatif.
Comment structurer votre réponse
- Donnez la séquence de commandes dans l'ordre, en commençant par describe.
- Lisez le code de sortie et traduisez-le en classe de cause.
- Utilisez les logs --previous, puisque le conteneur courant peut ne pas encore exister.
- Vérifiez les causes plateforme : limites, sondes, secrets, pull d'image, pression sur le nœud.
- Dites comment vous stabiliseriez pendant le débogage.
Exemple de réponse
kubectl describe pod d'abord, parce que la section des événements vous dit en général tout de suite s'il s'agit d'un échec de pull d'image, d'un secret manquant ou d'un OOM kill, et elle vous donne le dernier état de terminaison avec le code de sortie. Ensuite kubectl logs avec --previous, puisque le conteneur en cours a déjà été remplacé et que ses logs ont disparu. Le code 137 est un SIGKILL et neuf fois sur dix c'est la limite mémoire, donc je compare la limite à l'usage réel plutôt que de deviner. Un code 1 avec une pile d'appels est un échec de démarrage applicatif, généralement de la configuration. Je vérifie aussi la sonde de liveness, parce que j'ai vu un service Java parfaitement sain partir en boucle de crash uniquement parce qu'il lui fallait 40 secondes de préchauffage et que la sonde lui en accordait 10. Pour déboguer calmement, je vais scaler le déploiement, entrer dans une copie dont la commande est remplacée par un sleep, et reproduire là plutôt que de me battre avec le minuteur de redémarrage.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment déboguer un conteneur qui plante avant d'écrire le moindre log ?
- Que vous dit le code de sortie 137, et que vérifieriez-vous ensuite ?
- Comment gardez-vous un pod qui plante en vie assez longtemps pour l'inspecter ?
Autres questions pour Ingénieur SRE
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions