UI & Management

KubeTail

Dashboard de logs Kubernetes en temps réel - CLI ou navigateur, agrège les logs de tous les containers d'un workload en timeline chronologique. Apache 2.0.

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

ComposantValeur
BackendGo
FrontendReact
Source de donnéesAPI Kubernetes (direct, sans agent)
ModesCLI (terminal) + dashboard web (navigateur)
ConfidentialitéDonnées traitées localement, ne quittent pas le cluster

Prérequis

RessourceValeur
Kubernetes1.21+
kubeconfigConfiguré (~/.kube/config)
OSLinux, 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

Newsletter · 2 000+ abonnés

Reste au courant de ce qui bouge en prod

RudeOps veille devops hebdo, droit au but.

Gratuit · Sans spam · Désinscription en un clic