Aide-mémoire5 min de lecture

Aide-mémoire : commandes kubectl essentielles pour le debugging Kubernetes

SFEIR Institute

Points clés

  • 4 commandes clés : kubectl logs, describe, exec, debug - 90% des incidents résolus
  • Tableau de référence avec syntaxe exacte et exemples concrets pour chaque commande

Vous cherchez une référence rapide pour diagnostiquer vos problèmes Kubernetes ? Ce cheatsheet regroupe les commandes kubectl indispensables que tout administrateur système Kubernetes utilise quotidiennement. Selon le rapport CNCF 2024, 84% des organisations utilisent Kubernetes en production (source), rendant la maîtrise du debugging critique pour votre carrière.

TL;DR : Maîtrisez kubectl logs, kubectl describe, kubectl exec et kubectl debug pour résoudre 90% des incidents Kubernetes. Bookmarkez cette page comme référence quotidienne.

Ces compétences sont au cœur de la formation LFS458 Administration Kubernetes.


Tableau de référence rapide

CommandeUsageExemple
kubectl logsConsulter les logs d'un conteneurkubectl logs pod/nginx -c nginx
kubectl describeDétails et événements d'une ressourcekubectl describe pod/nginx
kubectl execExécuter une commande dans un conteneurkubectl exec -it pod/nginx -- sh
kubectl debugConteneur éphémère de debuggingkubectl debug pod/nginx -it --image=busybox
kubectl get eventsÉvénements du clusterkubectl get events --sort-by='.lastTimestamp'
kubectl topMétriques CPU/mémoirekubectl top pods --sort-by=memory
kubectl port-forwardTunnel réseau localkubectl port-forward svc/nginx 8080:80
À retenir : Commencez toujours par kubectl describe pour obtenir le contexte complet avant de plonger dans les logs.

Commandes kubectl logs : analyser les sorties conteneur

La commande kubectl logs est votre premier réflexe pour le debugging. Kubectl logs describe exec Kubernetes forment le trio fondamental que vous utiliserez quotidiennement.

Syntaxe de base

# Logs du conteneur principal
kubectl logs pod/mon-app

# Logs d'un conteneur spécifique (pods multi-conteneurs)
kubectl logs pod/mon-app -c sidecar

# Logs en temps réel (streaming)
kubectl logs -f pod/mon-app

# Logs des 100 dernières lignes
kubectl logs --tail=100 pod/mon-app

# Logs de la dernière heure
kubectl logs --since=1h pod/mon-app

Debugging des pods crashés

# Logs du conteneur précédent (après crash)
kubectl logs pod/mon-app --previous

# Logs de tous les conteneurs d'un pod
kubectl logs pod/mon-app --all-containers=true

Utilisez --previous immédiatement après un CrashLoopBackOff pour capturer les logs avant le redémarrage.

À retenir : En 2026, kubectl v1.32 introduit kubectl logs --stream=all pour agréger les logs de plusieurs pods simultanément.

Commandes kubectl describe : inspecter les ressources

La commande describe affiche l'état complet d'une ressource, incluant les événements récents.

Patterns essentiels

# Détails complets d'un pod
kubectl describe pod/mon-app

# Inspecter un deployment
kubectl describe deployment/mon-app

# Vérifier un service
kubectl describe service/mon-app

# Analyser un node
kubectl describe node/worker-01

Informations critiques à vérifier

SectionCe qu'il faut chercher
EventsErreurs de scheduling, pull d'images, probes échouées
ConditionsReady, ContainersReady, Initialized
Containers.StateWaiting, Running, Terminated + raison
Requests/LimitsRessources allouées vs disponibles

Examinez systématiquement la section Events en bas de l'output. Elle révèle la chronologie des problèmes.

# Filtrer les événements d'un namespace
kubectl get events -n production --sort-by='.lastTimestamp' | head -20

Pour approfondir l'analyse, consultez notre guide sur l'architecture de monitoring Kubernetes en production.


Commandes kubectl exec : accès interactif aux conteneurs

La commande exec vous permet d'exécuter des commandes directement dans un conteneur en cours d'exécution.

Syntaxe et options

# Shell interactif
kubectl exec -it pod/mon-app -- /bin/sh

# Commande unique
kubectl exec pod/mon-app -- cat /etc/config/app.yaml

# Conteneur spécifique
kubectl exec -it pod/mon-app -c sidecar -- /bin/bash

# Avec namespace
kubectl exec -it pod/mon-app -n production -- sh

Commandes de diagnostic courantes

# Vérifier la résolution DNS
kubectl exec pod/mon-app -- nslookup kubernetes.default

# Tester la connectivité réseau
kubectl exec pod/mon-app -- wget -qO- http://service-backend:8080/health

# Lister les variables d'environnement
kubectl exec pod/mon-app -- env | grep -i database

# Vérifier les fichiers montés
kubectl exec pod/mon-app -- ls -la /etc/secrets/

Créez un alias pour accélérer votre workflow :

alias kex='kubectl exec -it'
# Usage: kex pod/mon-app -- sh
À retenir : Préférez kubectl debug pour les conteneurs distroless ou minimalistes qui n'incluent pas de shell.

Commandes kubectl debug : conteneurs éphémères

Introduit en version stable dans Kubernetes 1.25, kubectl debug crée des conteneurs éphémères pour le debugging avancé. Cette commande est essentielle pour tout développeur Backend préparant la certification CKAD.

Debugging avec conteneur éphémère

# Attacher un conteneur de debug à un pod existant
kubectl debug pod/mon-app -it --image=busybox --target=mon-conteneur

# Debug avec image complète (outils réseau inclus)
kubectl debug pod/mon-app -it --image=nicolaka/netshoot

# Copier un pod pour debugging (sans affecter l'original)
kubectl debug pod/mon-app -it --copy-to=mon-app-debug --container=debug

Debug des nodes

# Accès root au filesystem d'un node
kubectl debug node/worker-01 -it --image=ubuntu

# Dans le conteneur de debug
chroot /host
systemctl status kubelet
journalctl -u kubelet --since "10 minutes ago"

Consultez notre guide complet sur l'installation de Prometheus pour compléter votre stack de monitoring.


Commandes de diagnostic réseau

Le réseau est la source de 60% des incidents Kubernetes selon le rapport Datadog 2024 (source).

# Port-forward vers un pod
kubectl port-forward pod/mon-app 8080:80

# Port-forward vers un service
kubectl port-forward svc/mon-service 8080:80

# Vérifier les endpoints d'un service
kubectl get endpoints mon-service

# Lister les NetworkPolicies
kubectl get networkpolicies -A

Debugging DNS

# Déployer un pod de test DNS
kubectl run dnsutils --image=gcr.io/kubernetes-e2e-test-images/dnsutils:1.3 --rm -it -- sh

# Tests DNS internes
nslookup kubernetes.default.svc.cluster.local
nslookup mon-service.mon-namespace.svc.cluster.local

Référencez notre aide-mémoire des métriques Kubernetes pour corréler les problèmes réseau avec les métriques.


Commandes de performance et ressources

# Utilisation CPU/mémoire des pods
kubectl top pods --sort-by=memory

# Utilisation par node
kubectl top nodes

# Pods consommant le plus de CPU
kubectl top pods -A --sort-by=cpu | head -10

# Vérifier les resource quotas
kubectl describe resourcequota -n production
À retenir : Activez metrics-server dans votre cluster pour que kubectl top fonctionne. C'est un prérequis pour le debugging de performance.

Erreurs courantes et solutions

ErreurCause probableSolution
ImagePullBackOffImage introuvable ou credentials manquantsVérifiez le nom de l'image et les secrets
CrashLoopBackOffApplication qui crash au démarrageConsultez kubectl logs --previous
PendingRessources insuffisantes ou PVC non boundExécutez kubectl describe pod
OOMKilledDépassement des limites mémoireAugmentez les limits ou optimisez l'app
CreateContainerErrorConfigMap/Secret manquantVérifiez les références de volumes

Pour une analyse approfondie, consultez la page Monitoring et dépannage Kubernetes et le guide sur l'observabilité Kubernetes.


Alias kubectl recommandés (2026)

Ajoutez ces alias à votre .bashrc ou .zshrc :

alias k='kubectl'
alias kgp='kubectl get pods'
alias kgpa='kubectl get pods -A'
alias kdp='kubectl describe pod'
alias kl='kubectl logs'
alias klf='kubectl logs -f'
alias kex='kubectl exec -it'
alias kd='kubectl debug'
alias kge='kubectl get events --sort-by=.lastTimestamp'

Prochaines étapes

Vous souhaitez maîtriser ces commandes en conditions réelles ? Les formations SFEIR vous préparent aux certifications officielles avec des labs pratiques intensifs :

Consultez le guide complet Formation Kubernetes pour choisir le parcours adapté à votre profil.