UI & Management

K9s

Interface TUI Kubernetes pour terminal - navigation interactive, logs streaming, exec, port-forward, YAML live. Raccourcis clavier, skins, plugins. Apache 2.0.

K9s est une interface terminal (TUI) pour Kubernetes développée par Fernand Galiana. Là où kubectl impose de taper des commandes longues pour chaque action, K9s transforme le terminal en cockpit interactif : navigation dans toutes les ressources du cluster, streaming de logs, exec dans un pod, port-forwarding, édition YAML live, tout s'effectue au clavier sans quitter l'interface. C'est l'outil de productivité de référence pour les équipes qui passent leur journée dans un terminal.


Informations essentielles

Origine : Fernand Galiana (derailed)  ·  Licence : Apache 2.0  ·  Architectures : x86_64, ARM64

Liens : Site officiel  ·  Documentation  ·  GitHub  ·  Releases

Support : Projet très actif, releases fréquentes.

Stack par défaut

ComposantValeur
InterfaceTUI (terminal), navigation 100% clavier
Accès clusterVia kubeconfig (tous clusters standards)
MétriquesCPU/mémoire en temps réel (via metrics-server)
PluginsExtensible via fichier de configuration YAML
SkinsThèmes visuels personnalisables

Raccourcis essentiels

ToucheAction
:Ouvrir le prompt de commande (:pod, :deploy, :svc…)
/Filtrer les ressources (regex supporté)
EnterEntrer dans une ressource / voir les détails
lLogs du pod sélectionné
sShell exec dans le container
eÉditer la ressource en YAML
dDescribe (kubectl describe)
Ctrl-dSupprimer la ressource
Ctrl-kTuer un pod (sans confirmation)
fPort-forward
nChanger de namespace
?Aide contextuelle

Prérequis

RessourceValeur
kubeconfigConfiguré (~/.kube/config ou KUBECONFIG)
OSLinux, macOS, Windows
metrics-serverOptionnel - pour CPU/RAM en temps réel

Installation

# Homebrew (macOS / Linux)
brew install derailed/k9s/k9s

# Linux - binaire direct
curl -Lo k9s.tar.gz \
  https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_amd64.tar.gz
tar -xzf k9s.tar.gz && sudo mv k9s /usr/local/bin/

# Arch Linux
pacman -S k9s

# Windows (Scoop)
scoop install k9s

k9s version

Lancer K9s

k9s                          # Contexte actif
k9s --context prod-cluster  # Contexte spécifique
k9s --namespace production  # Namespace de départ
k9s --readonly               # Mode lecture seule (pas de modifications)

Configuration

# ~/.config/k9s/config.yaml
k9s:
  refreshRate: 2
  readOnly: false
  ui:
    skin: dracula
  clusters:
    prod-cluster:
      namespace:
        active: production
        favorites: [production, kube-system]
      view:
        active: pod

Skins (thèmes)

mkdir -p ~/.config/k9s/skins
# Télécharger le skin dracula
curl -Lo ~/.config/k9s/skins/dracula.yaml \
  https://raw.githubusercontent.com/derailed/k9s/master/skins/dracula.yaml

Plugins

# ~/.config/k9s/plugins.yaml
plugins:
  # Lancer stern sur le pod sélectionné
  stern:
    shortCut: Shift-L
    description: "Logs multi-pods avec Stern"
    scopes: [pods]
    command: stern
    background: false
    args: ["--tail", "100", "$NAME", "-n", "$NAMESPACE"]

Mise à jour

brew upgrade k9s

# Ou : retélécharger le binaire
curl -Lo k9s.tar.gz \
  https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_amd64.tar.gz
tar -xzf k9s.tar.gz && sudo mv k9s /usr/local/bin/

Troubleshooting

# Infos de configuration active (kubeconfig, version K8s…)
k9s info

# Activer les logs de debug
k9s --logLevel debug 2> /tmp/k9s.log

# Réinitialiser la config si l'interface est cassée
rm ~/.config/k9s/config.yaml

Commandes utiles

k9s                              # Lancer sur le contexte actif
k9s --context <nom>             # Contexte spécifique
k9s --namespace <ns>            # Namespace de départ
k9s --readonly                   # Mode lecture seule
k9s info                         # Configuration active
k9s version                      # Version installée

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