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îtrisezkubectl logs,kubectl describe,kubectl execetkubectl debugpour 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
| Commande | Usage | Exemple |
|---|---|---|
kubectl logs | Consulter les logs d'un conteneur | kubectl logs pod/nginx -c nginx |
kubectl describe | Détails et événements d'une ressource | kubectl describe pod/nginx |
kubectl exec | Exécuter une commande dans un conteneur | kubectl exec -it pod/nginx -- sh |
kubectl debug | Conteneur éphémère de debugging | kubectl debug pod/nginx -it --image=busybox |
kubectl get events | Événements du cluster | kubectl get events --sort-by='.lastTimestamp' |
kubectl top | Métriques CPU/mémoire | kubectl top pods --sort-by=memory |
kubectl port-forward | Tunnel réseau local | kubectl 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
| Section | Ce qu'il faut chercher |
|---|---|
| Events | Erreurs de scheduling, pull d'images, probes échouées |
| Conditions | Ready, ContainersReady, Initialized |
| Containers.State | Waiting, Running, Terminated + raison |
| Requests/Limits | Ressources 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
| Erreur | Cause probable | Solution |
|---|---|---|
ImagePullBackOff | Image introuvable ou credentials manquants | Vérifiez le nom de l'image et les secrets |
CrashLoopBackOff | Application qui crash au démarrage | Consultez kubectl logs --previous |
Pending | Ressources insuffisantes ou PVC non bound | Exécutez kubectl describe pod |
OOMKilled | Dépassement des limites mémoire | Augmentez les limits ou optimisez l'app |
CreateContainerError | ConfigMap/Secret manquant | Vé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 :
- LFS458 Administration Kubernetes : 4 jours pour maîtriser l'administration de clusters, incluant le debugging avancé
- LFD459 Kubernetes pour les développeurs d'applications : 3 jours pour développer et débugger des applications cloud-native
- Kubernetes, les fondamentaux : 1 jour pour découvrir les bases si vous débutez
Consultez le guide complet Formation Kubernetes pour choisir le parcours adapté à votre profil.