Aller au contenu

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 :

  1. On affiche une ressource à la fois (pods, deployments, services…) via la commande :.
  2. On filtre la liste avec /.
  3. 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…).

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 :ns puis Entrée sur le namespace voulu, ou
  • Dans une vue de ressources, les touches 09 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

  1. Lance k9s, va voir les :nodes, puis :ns, puis :pods en tous namespaces (0).
  2. Retrouve les pods du namespace kube-system en filtrant avec /.
  3. 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.
  • l logs, s shell, d describe : 80 % de ton temps k9s sera là.

➡️ Suite : Module 1b — k9s avancé & personnalisation · cheat-sheet : k9s