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
- Active un skin et passe
refreshRateà1. - Ajoute un alias
:dppour les deployments et une hotkey verskube-system. - 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.:ctxpour 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