KubeTail est un outil de visualisation de logs Kubernetes en temps réel, disponible en deux modes : CLI pour un stream direct dans le terminal, ou dashboard web accessible depuis le navigateur. Sa valeur ajoutée principale est l'agrégation automatique des logs de tous les containers d'un même workload (Deployment, StatefulSet, DaemonSet) en une timeline chronologique unifiée. KubeTail utilise directement l'API Kubernetes - aucun système de log forwarding externe (Loki, Elasticsearch…) n'est requis, et les données ne quittent jamais le cluster.
Informations essentielles
Origine : Communauté (kubetail-org) · Licence : Apache 2.0 · Architectures : x86_64, ARM64
Liens : Site officiel · GitHub · Releases
Support : Projet communautaire actif.
Stack par défaut
| Composant | Valeur |
|---|---|
| Backend | Go |
| Frontend | React |
| Source de données | API Kubernetes (direct, sans agent) |
| Modes | CLI (terminal) + dashboard web (navigateur) |
| Confidentialité | Données traitées localement, ne quittent pas le cluster |
Prérequis
| Ressource | Valeur |
|---|---|
| Kubernetes | 1.21+ |
| kubeconfig | Configuré (~/.kube/config) |
| OS | Linux, macOS, Windows |
Installation
CLI (binaire)
# Homebrew (macOS / Linux)
brew install kubetail-org/tap/kubetail
# Binary direct (Linux)
curl -Lo kubetail.tar.gz \
https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-linux-amd64.tar.gz
tar -xzf kubetail.tar.gz && sudo mv kubetail /usr/local/bin/
# Vérifier
kubetail --version
Cluster (dashboard web partagé)
# Via kubectl
kubectl apply -f https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail.yaml
# Vérifier
kubectl get pods -n kubetail
# Accéder au dashboard
kubectl port-forward svc/kubetail -n kubetail 7500:7500
# Ouvrir http://localhost:7500
Via Helm
helm repo add kubetail https://kubetail-org.github.io/kubetail/
helm repo update
helm install kubetail kubetail/kubetail \
--namespace kubetail --create-namespace
kubectl port-forward svc/kubetail -n kubetail 7500:7500
Utilisation CLI
La sous-commande logs prend une source sous la forme namespace:type/nom. Le namespace fait partie de la source, pas un flag séparé.
# Stream des logs d'un deployment (tous les pods/containers)
kubetail logs production:deployments/my-app
# Stream d'un pod spécifique
kubetail logs production:pods/my-app-abc123
# Suivre les logs en temps réel (streaming)
kubetail logs production:deployments/my-app --follow
# Filtrer par regex
kubetail logs production:deployments/my-app --grep "ERROR|WARN"
# Afficher les N dernières lignes
kubetail logs production:deployments/my-app --tail=100
# Plusieurs sources en même temps
kubetail logs production:deployments/my-app staging:deployments/my-app
# Lancer le dashboard web local
kubetail serve
# Ouvrir http://localhost:7500
Dashboard web
Le dashboard web permet de :
- Sélectionner un workload par namespace et type (Deployment, StatefulSet, DaemonSet, Pod)
- Visualiser la timeline unifiée des logs de tous les containers du workload, avec coloration par pod/container
- Filtrer par niveau de log, texte, ou expression régulière
- Naviguer dans l'historique des logs disponibles dans l'API K8s (limité à la fenêtre de rétention kubectl)
- Identifier les erreurs grâce à la coloration syntaxique des niveaux de log
# Lancer le dashboard en local avec le kubeconfig local
kubetail serve
# Lancer sur un port spécifique
kubetail serve --port 8080
# Lancer en spécifiant le contexte
kubetail serve --context prod-cluster
Déploiement en cluster avec authentification
# Helm avec OIDC
helm install kubetail kubetail/kubetail \
--namespace kubetail --create-namespace \
--set auth.mode=token \
--set ingress.enabled=true \
--set ingress.host=logs.example.com
Mise à jour
# CLI
brew upgrade kubetail
# Cluster (manifest)
kubectl apply -f https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail.yaml
# Cluster (Helm)
helm repo update
helm upgrade kubetail kubetail/kubetail \
--namespace kubetail \
--reuse-values
Troubleshooting
# Logs du pod kubetail
kubectl logs -n kubetail -l app.kubernetes.io/name=kubetail --tail=50
# Si le dashboard ne se connecte pas
kubectl get pods -n kubetail
kubectl describe pod -n kubetail -l app.kubernetes.io/name=kubetail
# Vérifier les permissions RBAC
kubectl auth can-i get pods --namespace production
# Si les logs n'apparaissent pas
# Vérifier que le workload a des pods Running et produit des logs
kubectl logs -n production deployment/my-app --tail=10
Commandes utiles
# Stream logs d'un deployment
kubetail logs <namespace>:deployments/<nom>
# Stream logs d'un statefulset
kubetail logs <namespace>:statefulsets/<nom>
# Stream avec filtre regex
kubetail logs <namespace>:deployments/<nom> --grep "ERROR"
# Suivre en temps réel
kubetail logs <namespace>:deployments/<nom> --follow
# Dashboard web local
kubetail serve
# Dashboard sur port personnalisé
kubetail serve --port 8080
# Contexte spécifique
kubetail serve --kube-context <nom>
# Version
kubetail --version
Ressources
- Site officiel : https://www.kubetail.com
- GitHub : https://github.com/kubetail-org/kubetail
- Releases : https://github.com/kubetail-org/kubetail/releases
- Documentation : https://www.kubetail.com/docs