Initial vault setup
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
---
|
||||
title: Kubetail
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, logs, kubernetes, k8s, dashboard, real-time, multi-pod, typescript, kubectl]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Logs, https://github.com/kubetail-org/kubetail]
|
||||
---
|
||||
|
||||
# 📋 Kubetail
|
||||
|
||||
> **Le `kubectl logs` revisité** : dashboard web et TUI pour suivre les logs de plusieurs pods Kubernetes en temps réel, avec sélection de containers, namespaces et tail multi-stream. Le k9s des logs.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [kubetail.com](https://www.kubetail.com/) |
|
||||
| **GitHub** | [kubetail-org/kubetail](https://github.com/kubetail-org/kubetail) |
|
||||
| **License** | Apache-2.0 |
|
||||
| **Langage** | TypeScript (Node.js) + Go (backend) |
|
||||
| **Étoiles GitHub** | 1.7k ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-04 |
|
||||
| **Catégorie** | [[cat-logs|Logs]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Kubetail** est un **dashboard de logs Kubernetes** qui résout le plus gros point de friction de `kubectl` : **suivre les logs de plusieurs pods simultanément**. Fini le jonglage entre 5 terminaux avec `kubectl logs -f pod-1`, `kubectl logs -f pod-2`, etc. Kubetail unifie tout dans une seule UI web (ou TUI) avec sélection des containers, namespaces, et filtrage.
|
||||
|
||||
L'outil propose deux interfaces : une **UI web** moderne (basée sur le kubeconfig local ou un service account K8s) et un **TUI** terminal (style k9s). Les deux supportent le **tail multi-pod**, la **colorisation par container**, la **recherche full-text**, et la **sélection dynamique** des ressources à suivre. C'est un outil indispensable pour le debug en cluster.
|
||||
|
||||
Kubetail peut être utilisé en **mode local** (CLI qui lit votre kubeconfig) ou **mode serveur** (déployé dans le cluster avec un service account, accessible à toute l'équipe). Le mode serveur permet de **partager** une session de debug avec des collègues ou de surveiller depuis un navigateur distant.
|
||||
|
||||
**Public cible** : développeurs backend qui débuggent des microservices K8s, SRE qui font du troubleshooting en cluster, équipes DevOps qui veulent partager des sessions de logs, toute personne qui trouve `kubectl logs` limité.
|
||||
|
||||
- ✅ **Dashboard web** : UI moderne accessible depuis le navigateur
|
||||
- ✅ **TUI terminal** : pour les SSH dans des jump hosts
|
||||
- ✅ **Multi-pod** : tail simultané de N pods/containers
|
||||
- ✅ **Multi-namespace** : switch rapide entre namespaces
|
||||
- ✅ **Recherche full-text** : grep-like sur les logs en temps réel
|
||||
- ✅ **Colorisation** : logs colorés par container/pod
|
||||
- ✅ **Mode CLI local** : utilise votre `~/.kube/config`
|
||||
- ✅ **Mode serveur** : déployé dans le cluster pour l'équipe
|
||||
- ✅ **Kubernetes RBAC** : respect des permissions K8s natives
|
||||
- ✅ **Source d'events K8s** : integration avec les Events API
|
||||
- ✅ **Apache-2.0** : usage libre, même commercial
|
||||
- ⚠️ **Pas de rétention** : viewer, pas aggregator (utiliser Loki en complément)
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1 : Kubetail CLI (mode local)
|
||||
|
||||
```bash
|
||||
# macOS / Linux
|
||||
curl -L https://raw.githubusercontent.com/kubetail-org/kubetail/main/install.sh | sh
|
||||
|
||||
# Homebrew
|
||||
brew install kubetail
|
||||
|
||||
# Vérifier l'install
|
||||
kubetail --version
|
||||
```
|
||||
|
||||
### Option 2 : Docker (mode serveur)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml (déploiement dans le cluster recommandé)
|
||||
# Ou en standalone pour test :
|
||||
version: '3.8'
|
||||
services:
|
||||
kubetail:
|
||||
image: kubetail-org/kubetail:latest
|
||||
container_name: kubetail
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7500:7500" # Backend API
|
||||
- "8080:8080" # Web UI
|
||||
volumes:
|
||||
- ./kubeconfig:/root/.kube/config:ro
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.kubetail.rule=Host(`kubetail.example.com`)"
|
||||
- "traefik.http.routers.kubetail.entrypoints=websecure"
|
||||
- "traefik.http.routers.kubetail.tls.certresolver=letsencrypt"
|
||||
```
|
||||
|
||||
### Option 3 : Helm (Kubernetes)
|
||||
|
||||
```bash
|
||||
helm repo add kubetail https://kubetail-org.github.io/helm-charts
|
||||
helm install kubetail kubetail/kubetail \
|
||||
--namespace logging --create-namespace
|
||||
```
|
||||
|
||||
### Option 4 : kubectl plugin
|
||||
|
||||
```bash
|
||||
kubectl krew install tail
|
||||
kubectl tail deployment/my-app
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Vérifier kubectl** : `kubectl get nodes` doit fonctionner
|
||||
2. **Lancer le mode local** : `kubetail` → ouvre le TUI
|
||||
3. **Sélectionner une ressource** : TUI > taper le nom du deployment/statefulset
|
||||
4. **Lancer le mode web** : `kubetail web --port 8080`
|
||||
5. **Accéder à l'UI** : `http://IP:8080`
|
||||
6. **Sélectionner namespace/pods** : UI > dropdowns
|
||||
7. **Tail multi-pod** : cocher plusieurs pods dans l'UI
|
||||
8. **Rechercher** : barre de recherche (regex supporté)
|
||||
9. **Mode serveur cluster** : déployer via Helm, créer un ServiceAccount dédié
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- **k9s** — Dashboard K8s généraliste (inclut logs)
|
||||
- **Lens** — IDE K8s avec logs intégrés
|
||||
- **Rancher** — Plateforme K8s (logs)
|
||||
- [[app-loki]] + [[app-grafana]] — Pour archivage long terme
|
||||
- **stern** — Multi-pod log tailer en CLI (Go)
|
||||
- **kubectl-tail** — Plugin kubectl de base
|
||||
|
||||
### Comparaison Kubetail vs autres
|
||||
|
||||
| Critère | Kubetail | k9s | stern | Loki/Grafana |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| **Focus** | Logs | K8s général | Logs CLI | Logs + métriques |
|
||||
| **UI** | Web + TUI | TUI | CLI | Web |
|
||||
| **Multi-pod** | ✅ UI | ✅ UI | ✅ | ✅ |
|
||||
| **Mode partageable** | ✅ (serveur) | ❌ | ❌ | ✅ |
|
||||
| **Recherche full-text** | ✅ | ❌ | ✅ | ✅ Excellente |
|
||||
| **Rétention** | ❌ | ❌ | ❌ | ✅ Configurable |
|
||||
| **Setup** | 2 min | 5 min | 30s | 30 min |
|
||||
| **Ressources cluster** | Aucune | Aucune | Aucune | Lourdes |
|
||||
| **License** | Apache-2.0 | Apache-2.0 | Apache-2.0 | AGPL-3.0 |
|
||||
|
||||
**Verdict** : Kubetail est **le meilleur viewer de logs K8s** pour le debug en temps réel. Pour l'archivage long terme, [[app-loki]] + Grafana est incontournable. En complément de k9s, c'est le duo parfait.
|
||||
|
||||
### Propriétaires (ce que Kubetail remplace)
|
||||
- **Datadog Log Monitoring** (cher, K8s integration payante)
|
||||
- **New Relic Logs** (K8s)
|
||||
- **Splunk Observability Cloud** (K8s)
|
||||
- **Sumo Logic** (K8s log monitoring)
|
||||
- **Dynatrace** (K8s log management)
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- ⚠️ **Logs = données sensibles** : logs K8s contiennent souvent des secrets, tokens
|
||||
- ✅ **Chiffrement in-transit** : TLS obligatoire (Traefik en reverse proxy)
|
||||
- ✅ **K8s RBAC natif** : Kubetail respecte les permissions Kubernetes
|
||||
- ✅ **Service Account dédié** : créer un SA avec permissions minimales
|
||||
- ✅ **Read-only** : Kubetail ne fait que lire, jamais d'écriture sur le cluster
|
||||
- ⚠️ **Rétention** : aucune, c'est un viewer (ne pas y aller pour la conformité)
|
||||
- ✅ **Pas de stockage** : aucune base de données à compromettre
|
||||
- ✅ **Audit K8s** : les accès logs sont tracés par K8s audit log
|
||||
- ✅ **Pas de backup nécessaire** : stateless
|
||||
- ⚠️ **Secret leak** : attention aux secrets en clair dans les env vars des pods
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [GitHub kubetail-org/kubetail](https://github.com/kubetail-org/kubetail)
|
||||
- [Documentation officielle](https://www.kubetail.com/docs)
|
||||
- [Démo en ligne](https://demo.kubetail.com/)
|
||||
- [Blog technique](https://www.kubetail.com/blog)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-logs]] — Catégorie Logs
|
||||
- [[app-loki]] — Archivage long terme K8s
|
||||
- [[app-grafana]] — Visualisation (couplage Loki)
|
||||
- [[app-prometheus]] — Métriques K8s
|
||||
- [[app-uptime-kuma]] — Monitoring uptime
|
||||
- [[securisation-home-lab]] — Bonnes pratiques sécurité
|
||||
Reference in New Issue
Block a user