Module 1 · k9s — prise en main¶
Objectifs
- Comprendre ce qu'est k9s et pourquoi c'est un accélérateur.
- Naviguer dans n'importe quelle ressource sans la souris.
- Lire des logs, exec dans un pod, faire un port-forward — depuis k9s.
- Durée : ~3 h · Pré-requis : bases k8s (pod, deployment, service, namespace).
1. C'est quoi k9s ?¶
kubectl est l'outil en ligne de commande « officiel » : une commande = une requête.
k9s est une interface terminal (TUI) par-dessus le même cluster : tu vois tes ressources
en temps réel, tu navigues, et tu déclenches des actions (logs, exec, delete, scale…) avec une touche.
graph LR
A[Toi] --> B[k9s TUI]
A --> C[kubectl CLI]
B --> D[(API server\nKubernetes)]
C --> D
À retenir
k9s ne remplace pas ta compréhension de Kubernetes : c'est un multiplicateur de vitesse.
Tout ce que fait k9s, kubectl peut le faire — k9s le fait juste 10× plus vite.
2. Le modèle mental de k9s¶
Trois idées suffisent pour tout comprendre :
- On affiche une ressource à la fois (pods, deployments, services…) via la commande
:. - On filtre la liste avec
/. - On agit sur la ligne sélectionnée avec une touche contextuelle (affichée en haut de l'écran).
La barre du haut affiche en permanence le contexte, le namespace courant, et les raccourcis disponibles sur la vue active. Lis-la : c'est ta carte.
3. Premiers pas (à faire dans la sandbox)¶
Ouvre la sandbox et lance k9s.
text
:pods ← entre dans la vue des pods (le ":" ouvre le mode commande)
:deploy ← deployments
:svc ← services
:ns ← namespaces
:nodes ← nœuds
Le : est ta télécommande
Tape : puis le nom (ou l'alias) de la ressource et Entrée.
Ctrl-a ouvre la liste de tous les alias disponibles (po, deploy, cm, secret, ing…).
Naviguer¶
| Action | Touche |
|---|---|
| Monter / descendre | ↑ ↓ ou k j |
| Entrer dans la ressource (drill-down) | Entrée |
| Revenir en arrière | Esc |
| Aide contextuelle | ? |
| Quitter k9s | : q puis Entrée, ou Ctrl+c |
Filtrer¶
text
/nginx ← n'affiche que les lignes contenant "nginx"
Esc ← efface le filtre
Changer de namespace¶
- Tape
:nspuisEntréesur le namespace voulu, ou - Dans une vue de ressources, les touches 0–9 basculent de namespace (0 = tous les namespaces).
4. Les 3 actions qui changent la vie¶
Sélectionne un pod (:pods, flèches) puis :
📜 Voir les logs — l¶
text
l ← logs du pod
f ← plein écran
w ← retour à la ligne (wrap) on/off
0 ← depuis le début ; 1/2/3/4/5 = dernières minutes/heures
Esc ← revenir
🐚 Exec dans le conteneur — s¶
text
s ← ouvre un shell DANS le pod (comme "kubectl exec -it ... -- sh")
exit ← sortir du shell, retour à k9s
🔌 Port-forward — Maj+f¶
Expose un port du pod vers ta session pour le tester localement (détails et confirmation dans la fenêtre k9s).
Les autres touches contextuelles utiles¶
| Touche | Action |
|---|---|
| d | describe (les events sont en bas — toujours les lire pour debugger) |
| y | voir le YAML complet de la ressource |
| e | éditer la ressource en live (ouvre $EDITOR) |
| Ctrl+d | supprimer (avec confirmation) |
| Ctrl+k | kill (suppression immédiate, sans grâce) |
Ctrl-d vs Ctrl-k
Ctrl-d demande confirmation. Ctrl-k tue immédiatement. Dans la sandbox : amuse-toi.
En prod : réfléchis à deux fois.
5. Exercices¶
Exercice 1.1 — Le tour du propriétaire
- Lance
k9s, va voir les:nodes, puis:ns, puis:podsen tous namespaces (0). - Retrouve les pods du namespace
kube-systemen filtrant avec/. - Sur un pod, lis son
describe(d) et trouve son adresse IP et son nœud.
Exercice 1.2 — Crée et observe
Dans le terminal (pas dans k9s) :
bash
kubectl create deployment web --image=nginx --replicas=3
Puis dans k9s :
1. Va dans :deploy, drill-down (Entrée) jusqu'aux pods du deployment.
2. Ouvre les logs d'un pod (l).
3. Exec dans un pod (s) et lance curl -s localhost (ou ls).
Exercice 1.3 — Le réflexe describe
bash
kubectl run cassé --image=nginx:cette-version-nexiste-pas
1. Trouve le pod dans k9s : quel est son statut ?
2. Fais d (describe) et lis les events en bas. Quelle est la cause exacte ?
3. Supprime-le (Ctrl+d).
6. Ce qu'il faut retenir¶
:= changer de ressource ·/= filtrer ·Esc= revenir ·?= aide.- Le réflexe debug : sélectionner → d (describe) → lire les events.
llogs,sshell,ddescribe : 80 % de ton temps k9s sera là.
➡️ Suite : Module 1b — k9s avancé & personnalisation · cheat-sheet : k9s