Aller au contenu

Module 1b · k9s avancé & personnalisation

Objectifs

  • Configurer k9s à ton goût (défauts, skin, mode lecture seule).
  • Gagner en vitesse avec alias, hotkeys et plugins.
  • Jongler entre plusieurs clusters (ex. sandbox ↔ EKS) sans quitter k9s.
  • Faire de l'admin depuis k9s : opérations sur les nœuds, vues RBAC, audit.
  • Durée : ~2 h · Pré-requis : Module 1.

Où vivent les fichiers de config ?

Tout est dans ~/.k9s/ (ou $XDG_CONFIG_HOME/k9s/). Tu peux éditer ces fichiers directement dans le terminal de la sandbox (vim ~/.k9s/config.yaml). Pour savoir où k9s lit sa config : k9s info.

1. Configuration de base — ~/.k9s/config.yaml

yaml k9s: # Fréquence de rafraîchissement (secondes) refreshRate: 2 # Démarre en lecture seule (aucune action destructive) — idéal pour observer/démontrer readOnly: false ui: # Skin appliqué (cf. section 2) skin: dracula # Masquer le logo ASCII pour gagner de la place headless: false logoless: true # Comportement des logs logger: tail: 200 buffer: 5000 sinceSeconds: 300

Mode lecture seule à la volée

k9s --readonly lance une session sans aucune action destructive : parfait pour explorer une prod ou faire une démo sans risque de fausse manip.

2. Skins (thèmes) — ~/.k9s/skins/

Crée ~/.k9s/skins/dracula.yaml puis référence-le dans config.yaml (ui.skin: dracula).

yaml k9s: body: fgColor: "#f8f8f2" bgColor: "#282a36" logoColor: "#bd93f9" frame: border: fgColor: "#6272a4" title: fgColor: "#f8f8f2" highlightColor: "#ffb86c"

De nombreux skins prêts à l'emploi existent dans le dépôt k9s (skins/).

3. Alias de ressources — ~/.k9s/aliases.yaml

Raccourcis perso pour la commande :.

yaml aliases: dp: deployments sec: secrets pp: pods cm: configmaps # Filtres pré-mâchés possibles via les vues (voir section 8)

Désormais :dp ouvre les deployments. (Ctrl-a liste tous les alias, natifs + perso.)

4. Hotkeys — ~/.k9s/hotkeys.yaml

Associe une touche à une commande, pour sauter là où tu veux en 1 frappe.

yaml hotKeys: shift-0: shortCut: Shift-0 description: Pods kube-system command: pods kube-system shift-1: shortCut: Shift-1 description: Tous les deployments command: deployments --all-namespaces

5. Plugins — ~/.k9s/plugins.yaml

Ajoute des actions custom déclenchées par une touche sur une ressource. Exemple : suivre les logs d'un pod avec un défilement enrichi.

yaml plugins: # Sur un pod : Ctrl-L -> logs en suivi logs-follow: shortCut: Ctrl-L description: "Logs (follow)" scopes: - pods command: kubectl background: false args: - logs - -f - $NAME - -n - $NAMESPACE - --context - $CONTEXT

Les variables $NAME, $NAMESPACE, $CONTEXT, $RESOURCE_NAME… sont injectées par k9s.

6. Multi-cluster : jongler entre sandbox et EKS

C'est le super-pouvoir pour le module 4 (EKS) : observer deux clusters dans la même interface.

text :ctx ← liste les contextes ; Entrée pour basculer :ctx <nom> ← bascule direct vers un contexte

bash k9s --context mon-eks # démarrer sur un contexte précis kubectl config get-contexts # voir tous les contextes disponibles

Tip

Le contexte courant est toujours affiché en haut à gauche. Vérifie-le avant toute action destructive : on ne supprime pas un pod d'EKS en croyant être sur la sandbox.

7. Administrer depuis k9s

Opérations sur les nœuds — vue :nodes

Sélectionne un nœud : k9s propose (voir la barre du haut) cordon (interdire la planification), uncordon, et drain (vider le nœud de ses pods). Indispensable pour une maintenance.

Warning

drain évince les pods : à ne faire que sur la sandbox pour s'exercer, ou en connaissance de cause en prod.

Vues d'audit & relations

Commande Effet
:rbac Inspecter les règles RBAC du cluster
:xray deploy Arbre des relations (deploy → rs → pod)
:pulses Tableau de bord temps réel (santé globale)
:popeye Audit du cluster : ressources mal configurées, sans limites, etc.

Exercice 1b.1 — Popeye

Lance :popeye dans la sandbox. Repère un pod sans requests/limits et un autre problème signalé. Corrige-en un, relance :popeye, vérifie que le score s'améliore.

8. Personnaliser les colonnes — ~/.k9s/views.yaml

Affiche exactement les colonnes utiles pour une ressource.

yaml k9s: views: v1/pods: columns: - NAME - READY - STATUS - RESTARTS - NODE - IP

9. Exercices

Exercice 1b.2 — Ta config perso

  1. Active un skin et passe refreshRate à 1.
  2. Ajoute un alias :dp pour les deployments et une hotkey vers kube-system.
  3. Relance k9s et vérifie que tout est pris en compte.

Exercice 1b.3 — Deux clusters

(À refaire au module 4, une fois EKS provisionné.) 1. Avec :ctx, bascule entre la sandbox et un autre contexte. 2. Identifie en un coup d'œil sur quel cluster tu es (indicateur en haut à gauche).

10. Ce qu'il faut retenir

  • Toute la config vit dans ~/.k9s/ : config, skins, aliases, hotkeys, plugins, views.
  • --readonly = filet de sécurité pour observer/démontrer.
  • :ctx pour le multi-cluster ; vérifie toujours le contexte avant d'agir.
  • :nodes (cordon/drain), :rbac, :popeye, :pulses = l'admin sans quitter k9s.

➡️ Suite : Module 2 — k8s par la pratique