Afficher les logs de plusieurs pods avec Stern
Mise à jour :
Lorsque je travaille avec Kubernetes, j’ai souvent besoin de suivre les logs de plusieurs pods en même temps. C’est là que stern devient indispensable ! Cet outil en ligne de commande me permet d’afficher en temps réel les logs de plusieurs pods correspondant à un même modèle. Plus besoin de jongler entre plusieurs commandes kubectl logs, stern fait tout le travail. Voyons comment l’utiliser efficacement.
Installation de stern
Avant de profiter de stern, il faut bien sûr l’installer. Heureusement, c’est rapide et simple, quel que soit mon système d’exploitation.
Sur Linux et macOS via Homebrew
Si vous utilisez Homebrew, l’installation est aussi simple que :
brew install stern
Tous les systèmes d’exploitation
Vous pouvez aussi l’installer directement avec Go :
go install github.com/stern/stern@latest
Vérification de l’installation
Une fois installé, assurez-vous que stern fonctionne correctement :
stern --version
version: dev
Si une version s’affiche, c’est bon ! Vous êtes prêt à explorer les logs de vos pods Kubernetes.
Afficher les logs de plusieurs pods
Avec stern, vous pouvez suivre en temps réel les logs de plusieurs
pods** en une seule commande. Plus besoin de répéter kubectl logs
pour chaque
pod, stern s’occupe de tout !
Afficher les logs d’un groupe de pods
L’argument principal de stern est une expression régulière qui permet de
cibler plusieurs pods en même temps. Par exemple, pour suivre tous les pods dont
le nom commence par nginx
:
stern nginx
Cela affichera en temps réel les logs de tous les pods correspondant à ce motif, avec des couleurs pour différencier chaque pod.
🔹 Si vous voulez cibler précisément un objet Kubernetes (comme un
Deployment, un StatefulSet ou un Job), utilisez la syntaxe
<ressource>/<nom>
:
stern deployment/nginx
Filtrer les logs par namespace
Par défaut, stern affiche les logs des pods du namespace actif. Pour
spécifier un autre namespace, utilisez -n
:
stern nginx -n mon-namespace
Si vous souhaitez afficher les logs de tous les namespaces, utilisez -A
:
stern nginx -A
Afficher les logs de tous les containers d’un pod
Si un pod contient plusieurs containers, vous pouvez voir leurs logs avec
l’option --all-containers
:
stern nginx --all-containers
Vous pouvez aussi filtrer par container grâce à l’option -c
:
stern nginx -c mon-container
Et pour exclure un container spécifique :
stern nginx --exclude-container sidecar
Gérer la quantité de logs affichés
Vous pouvez limiter le nombre de lignes affichées avec --tail
:
stern nginx --tail 100
Ou encore récupérer uniquement les logs des dernières minutes :
stern nginx --since 10m
Si vous ne voulez pas suivre les logs en continu, ajoutez --no-follow
:
stern nginx --no-follow
Filtrer les logs avec des expressions régulières
Vous pouvez inclure ou exclure des logs spécifiques en utilisant -i
et
-e
:
stern nginx -i "ERROR|WARN"
Cela affichera uniquement les lignes contenant ERROR ou WARN.
À l’inverse, pour ignorer certains logs :
stern nginx -e "DEBUG|TRACE"
Personnaliser l’affichage
Par défaut, stern colore automatiquement les logs pour identifier les pods.
Vous pouvez modifier cette coloration avec --color
:
stern nginx --color always
Vous pouvez aussi choisir un format de sortie spécifique avec -o
:
stern nginx -o json # Affichage en JSONstern nginx -o raw # Affichage brut
Si vous voulez un format personnalisé, utilisez un template :
stern nginx --template '{{.PodName}}/{{.ContainerName}}: {{.Message}}'
Autres options utiles
-
Afficher les logs d’un pod spécifique qui tourne sur un nœud particulier :
Terminal window stern nginx --field-selector spec.nodeName=mon-noeud -
Afficher uniquement les logs des pods en erreur :
Terminal window stern nginx --condition=ready=false --tail=0 -
Exclure des pods spécifiques :
Terminal window stern nginx --exclude-pod kube-apiserver
Avec ces options, stern devient un outil puissant pour suivre et analyser vos logs Kubernetes en temps réel !
Conclusion
Avec stern, suivre et analyser les logs Kubernetes devient bien plus efficace. Grâce à sa prise en charge des expressions régulières, ses nombreux filtres, et ses options de mise en forme et de colorisation, vous pouvez afficher précisément ce qui vous intéresse, sans vous noyer dans un flot d’informations inutiles.
Que vous souhaitiez simplement surveiller un Deployment, suivre un debug
précis, ou filtrer les erreurs d’un container spécifique, stern vous
offre une lecture claire et organisée des logs, sans avoir à jongler avec
des dizaines de commandes kubectl logs
.
En optimisant l’affichage et en utilisant les bons filtres, vous gagnerez du temps et pourrez identifier rapidement les problèmes dans vos applications Kubernetes. Alors, à vous de jouer !