Aller au contenu

Module 2 · k9s - l'essentiel

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 : ~30 min · Pré-requis : Module 1 (pod, deployment, service, namespace).

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<br/>Kubernetes)]
    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.

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.

Premiers pas (à faire dans la sandbox)

Ouvre la sandbox et lance k9s.

: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

/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 0-9 basculent de namespace (0 = tous les namespaces).

Les 3 actions qui changent la vie

Sélectionne un pod (:pods, flèches) puis :

📜 Voir les logs - l

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

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)

Pratique

Les TP de ce module, dans le terminal de ta sandbox - une fois la lecture faite :

tp start 01a-k9s-decouverte   # en séance, avec ton mentor
tp start ancrage-2            # en autonomie ensuite : défi navigation, moins guidé

fais la manip puis tp check (ou tp watch pour l'auto-validation) · tp hint pour un indice · tp solution si tu bloques.

En séance, on fait d'abord le tour de k9s ensemble (en partage d'écran, on navigue sans rien créer) ; le TP te fait ensuite agir dans k9s, corrigé. En autonomie : déroule le tour, puis enchaîne le TP.

Exercice 2.1 - Le tour de k9s (on navigue ensemble)

On explore, sans rien créer - les objets sont déjà là.

  1. Lance k9s : :nodes, puis :ns, puis :pods en tous namespaces (0).
  2. Filtre les pods de kube-system avec /.
  3. Sur un pod, describe (d) : trouve son adresse IP et son nœud ; ouvre ses logs (l).
  4. Descends (Entrée) d'un :deploy jusqu'à ses pods : c'est le drill-down.

Le TP 01a-k9s-decouverte te fera ensuite agir - retrouver un pod intrus, entrer dans un pod (s), supprimer - à toi le clavier.

Exercice 2.2 - Le réflexe describe (à toi de trouver)

kubectl run casse --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).

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à.

Quiz éclair

Teste-toi : réponds de tête, puis déplie.

1. Comment afficher une autre ressource (passer des pods aux services) ?

Avec la commande : : :pods, :svc, :deploy, :nsCtrl-a liste tous les alias.

2. Un pod ne démarre pas. Quel est ton premier réflexe dans k9s ?

Le sélectionner et faire d (describe), puis lire les events en bas : 90 % des causes y sont (image, scheduling, probe…).

3. Différence entre Ctrl-d et Ctrl-k sur une ressource ?

Ctrl-d supprime avec confirmation (suppression « propre »). Ctrl-k tue immédiatement, sans délai de grâce. En prod, on réfléchit à deux fois.

➡️ Suite : Module 3 - k8s par la pratique · cheat-sheet : k9s

Le k9s « de vitesse » viendra plus tard

Aliases, hotkeys, skins, multi-cluster, audit (popeye)… : tout le réglage fin de k9s est regroupé dans le Module 2b - k9s approfondi, à faire après le module 3 - une fois que tu as de vrais objets à naviguer.