Navigation 01
Déplacement dans les vues et les listes.
↑ · ↓ligne précédente / suivantek · jidem (vim-style)Ctrl-b · Ctrl-fpage ↑ / ↓g · Ghaut · bas de la listeEnterentrer / drill-downEscrevenir en arrièreCtrl-aalias disponibles?aide contextuelleCtrl-c · :qquitter k9sCommand mode 02
Taper : pour basculer vers une ressource.
:poliste des pods:deploydeployments:svcservices:nsnamespaces:ctxchanger de contexte:nonodes:ingingresses:cm · :secconfigmaps · secrets:pv · :pvcvolumes:job · :cjjobs · cronjobs:sts · :dsstatefulsets · daemonsets:crdcustom resources:evevents (triés)Filtres · Recherche 03
Filtrer la vue courante.
/<texte>filtrer par nom/-l app=webfiltre par label/!<texte>négation (exclusion)/<regex>regex (ex. ^web-.*)/-f fuzzyfuzzy matchEsceffacer le filtre0 · 1..90 = tous les ns · 1-9 favorisInstall · Launch 04
Lancer k9s avec options utiles.
k9sdémarrage simplek9s -n <ns>namespace précisk9s -Atous les namespacesk9s --context <ctx>contexte précisk9s -c podvue initialek9s --readonlylecture seulek9s --headlesssans en-tête (plus d'espace)k9s --logolesssans logok9s --crumbslesssans breadcrumbsk9s infochemins de configActions sur pod 05
Sélectionner une ligne puis taper la touche.
ddescribeyYAMLllogs (du conteneur sélectionné)plogs précédents (crash)sshell (sh/bash dans le pod)eedit (ouvre $EDITOR)Shift-fport-forwardCtrl-kkill (suppression immédiate)Ctrl-ddelete (avec confirmation)zsanitize (lint du namespace)wshow labels toggleCtrl-ssauvegarder la vue (YAML)oouvrir les owners (stack)Logs · Live 06
Depuis la vue logs (après l).
ftoggle full screenwtoggle wrapttoggle timestampsaall containersssave logs sur disque0 · 1 · 2tail 0 / 1m / 5m · 15m3 · 430m · 1h5illimitéCtrl-smark · ancrer/<texte>filtrer les logsEscretourRollout · Scale 07
Sur un deployment ou statefulset.
sscale (choisir replicas)rrestart rolloutllogs (pods gérés)Shift-rrollbackShift-jjump to referencedShift-ppulses (métriques)Pulses · XRay · Popeye 08
Vues analytiques et audit.
:pulsesdashboard live du cluster:xray <res>arbre de dépendances:xray poxray des pods (owners, PV, SA…):popeyelint / audit du cluster:sanitizealias de popeye:benchmarkhistorique des benchmarks:helmreleases Helm:dir <path>manifests locaux (filesystem)Contexte · Namespace 09
Naviguer entre clusters et ns.
:ctxlister · changer de contexte:ctx <nom>bascule directe:nslister les namespacesuuse (depuis la vue :ns)0all namespaces1..9namespace favori (slot)Shift-<N>enregistrer un favoriSélection multiple · Marks 10
Agir sur plusieurs lignes à la fois.
Spacemarquer la ligneCtrl-Spacedémarquer toutShift-stri sur la colonne courante,colonne précédente.colonne suivanteCtrl-<n>switch de vue (multi-cluster)Command aliases 11
Utiles pour passer d'une vue à l'autre.
:popods
:deploydeployments
:svcservices
:ingingresses
:stsstatefulsets
:dsdaemonsets
:rsreplicasets
:job · :cjjobs · cronjobs
:cm · :secconfigmaps · secrets
:pv · :pvcstorage
:nonodes
:nsnamespaces
:evevents
:hpaautoscalers
:netpolnetwork policies
:saservice accounts
:rb · :crbrole bindings
:pulsesdashboard live
:xrayarbre de dépendances
:popeyeaudit cluster
Config · Alias 12
Alias perso dans ~/.config/k9s/aliases.yaml.
# ~/.config/k9s/aliases.yaml alias: pp: v1/pods dp: apps/v1/deployments crb: rbac.authorization.k8s.io/v1/clusterrolebindings sec: v1/secrets ing: networking.k8s.io/v1/ingresses
# Lancement direct sur une vue
k9s -c pp # pods k9s -c dp -n prod # deploys @ prod k9s -c pulses
Skin · Thème 13
~/.config/k9s/skins/<nom>.yaml puis référencer dans la config.
# config.yaml k9s: ui: skin: dracula enableMouse: false headless: false logoless: false crumbsless: false noIcons: false refreshRate: 2 maxConnRetry: 5 readOnly: false
Plugins 14
~/.config/k9s/plugins.yaml — touche custom qui exécute un shell.
# exemple : dump YAML d'un pod plugins: dumpYaml: shortCut: Shift-Y description: Dump YAML scopes: [po] command: sh background: false args: - -c - "kubectl get po $NAME -n $NAMESPACE -o yaml | less"
# Variables dispo dans args
$NAME # ressource sélectionnée $NAMESPACE # ns courant $CONTEXT # contexte kube $CLUSTER # cluster $RESOURCE_NAME
Troubleshooting 15
Récap des gestes qui sauvent.
:evevents triés (cause racine):popeyelint du clusterShift-p + populses CPU/RAM du podp sur podlogs du conteneur précédent:xray povoir tout ce qui pointe sur le podShift-fport-forward d'urgencezsanitize du ns