Maîtriser K9s, L'outil incontournable pour Kubernetes
Mise à jour :
En tant que spécialiste DevOps, j’apprécie particulièrement les outils qui rendent la gestion des clusters Kubernetes plus fluide et intuitive. Parmi eux, K9s se distingue comme un outil incontournable. Conçu pour les administrateurs système et les développeurs travaillant avec Kubernetes, K9s offre une interface utilisateur basée sur le terminal, combinant puissance et simplicité d’utilisation.
L’objectif de K9s est de fournir une vue d’ensemble rapide et complète de l’état d’un cluster Kubernetes. Grâce à son interface en mode texte, il permet de naviguer aisément à travers les différentes ressources Kubernetes, telles que les pods, les déploiements et les services. Cette approche est particulièrement appréciée pour sa rapidité, surtout lorsqu’on travaille avec de grands clusters comportant de nombreuses ressources.
Installation K9s
Installation de K9s
L’installation de K9s est relativement simple et varie légèrement en fonction de votre système d’exploitation. Pour les utilisateurs de Linux et macOS, vous pouvez utiliser des gestionnaires de paquets comme Homebrew sur macOS ou des outils similaires sous Linux.
Sur Linux
Comme d’habitude, je vous conseille de l’installer avec asdf-vm :
Sur Windows
Le classique Choco ou Scoop :
Sur MacOS
Utilisation de K9s
Maintenant que k9s est installé, vous pouvez le lancer depuis votre terminal
avec la commande k9s. Si vous avez plusieurs fichiers config.yaml, vous indiquez
lequel utiliser grâce à l’option --kubeconfig ~/.kube/config.yaml
. Dans le cas
où plusieurs contextes existent, il vous demandera de choisir lequel utilisé.
Sinon k9s affichera par défaut la liste des pods du cluster dans le namespace
default
.
Lorsque vous quittez l’application, k9s
stocke les infos de namespace et de
types de ressources utilisées pour les réafficher lors de sa prochaine
utilisation.
k9s
possède d’autres options dont les plus importantes :
--refresh=n
pour modifier la tempo de refresh (par défaut 2s)--namespace=<namespace>
ou-n <namespace>
pour se rendre directement sur un namespace particulier.-c <view>
: accède directement à une vue. Par défaut po (pod), mais on peut utiliser : ns (namespace), ctx (context), pu (pulses) et pop (popeye).--readonly
Accès en lecture seul--all-namespaces
: affiche tous les namespaces
k9s info
: qui donne des infos sur la version et la localisation des
différents répertoires : logs, config et capture d’écran.
Navigation
Lorsque vous lancez K9s, vous êtes accueilli par une vue par défaut qui affiche tous les pods dans le cluster actuellement sélectionné. Cette vue est le point de départ pour naviguer à travers les différentes ressources de votre cluster.
La conception de l’interface est centrée sur la simplicité et l’efficacité. En haut, vous trouverez une barre d’état qui affiche des informations essentielles comme le contexte Kubernetes actuel et le namespace. Au bas de l’écran, une ligne de commande vous permet d’entrer des commandes directement.
La navigation dans K9s est principalement basée sur des raccourcis clavier. Par exemple :
- Changer de ressource : Pour basculer entre différentes ressources
Kubernetes (comme les services, déploiements, etc.), vous pouvez utiliser les
touches
:
suivies du nom de la ressource. Par exemple,:svc
vous amènera à la liste des services. - Naviguer dans les listes : Utilisez les touches fléchées pour vous
déplacer dans les listes. La touche
Enter
permet de voir les détails d’un élément sélectionné. - Retour à l’écran précédent : La touche
Esc
vous ramène à l’affichage précédent.
Les autres vues :
:popeye
: Signale d’éventuels problèmes avec les ressources de votre cluster.:xray
: Affiche les dépendances entre ressource:pulse
: un tableau de bord affichant l’état de santé de votre cluster:rbac
: affiche les infosrbac
si elles sont activées.
Les touches de contrôles
K9s permet également d’exécuter des commandes directement depuis son
interface. Par exemple, pour obtenir des détails sur un pod spécifique,
sélectionnez-le dans la liste et appuyez sur d
. Une fenêtre s’ouvrira,
affichant des informations détaillées sur ce pod.
Pour obtenir de l’aide, il suffit d’appuyer sur la touche [?].
Description des touches :
- La touche [0] permet d’afficher les resources de tous les namespaces
- [1] celle du namespace default et d’autres raccourcis sont ajoutés au fur et à mesure que vous naviguez à travers les namespaces.
- En fonction de l’écran dans l’écran où vous vous trouvez les commandes disponibles s’afficheront. Par exemple dans la vue pod, [l] pour afficher les logs d’un pod, [d] pour afficher la description, [e] pour éditer une ressource, [s] pour exécuter un shell sur un pod
- [/] suivit d’une string ou d’une regex permet de filtrer les informations affichées
- [/] suivit -l
<label>
filtre par label - [/] suivit de -f
<filter>
fait du fuzzy find - [:] suivi du nom d’une vue : pulses, pod, popeye, xray
- Pour sortir d’un écran utilisez la touche [esc]
- Pour quitter [CTRL] + [C] ou [:]quit
Personnalisation de k9s
L’un des aspects les plus attrayants de K9s est sa capacité à être personnalisé selon les préférences de chaque utilisateur. Cette personnalisation améliore non seulement l’expérience utilisateur, mais permet également une interaction plus rapide et plus efficace avec vos clusters Kubernetes.
Pour personnaliser ces paramètres, vous devez modifier le fichier de
configuration de K9s. Ce fichier se trouve généralement dans votre
répertoire personnel sous .k9s/config.yml
.
Le fichier d’origine :
K9s offre plusieurs options de personnalisation pour adapter son interface à vos besoins :
- Thèmes : K9s supporte plusieurs thèmes, vous permettant de changer l’apparence de l’interface. Vous pouvez choisir un thème par défaut ou en créer un personnalisé.
- Configuration des vues : Vous pouvez configurer les colonnes affichées pour chaque type de ressource Kubernetes. Cela vous permet de concentrer votre attention sur les informations les plus pertinentes pour votre travail.
- Raccourcis Claviers : Bien que K9s vienne avec un ensemble de raccourcis par défaut, vous pouvez les personnaliser pour mieux correspondre à vos habitudes de travail.
Changement de Thème
Si vous voulez créer un thème personnalisé, vous pouvez définir les couleurs
pour différents éléments de l’interface. Il faut créer un fichier dans le
répertoire ~/.config/k9s/skins
. Créons le fichier in-the-vay.yaml
avec ce
contenu :
Pour changer le thème, ouvrez le fichier config.yml
et modifiez la section
k9s.skin
.
Par exemple, pour utiliser le thème “dracula” :
Dans le projet K9s, vous trouverez plusieurs thèmes prédéfinis ↗ et vous pouvez également créer le vôtre.
Les Raccourcis Claviers
Les raccourcis clavier sont essentiels pour naviguer rapidement dans K9s.
- Modification des raccourcis : Les raccourcis peuvent être modifiés en éditant le fichier de configuration de K9s. Vous pouvez relier des actions spécifiques à des touches différentes, en fonction de vos préférences.
Il faut créer un fichier ~/.config/k9s/hotkeys.yaml
:
Définition de plugins
L’utilisation de plugins dans K9s enrichit considérablement votre expérience de gestion des clusters Kubernetes, en vous permettant d’étendre les fonctionnalités de base de l’outil. Voici comment installer et utiliser des plugins avec K9s.
Dans le répertoire ~/.config/k9s
créez un fichier plugins.yaml
:
Ici on définit un plugin permettant d’utiliser l’outil dive.
Composants d’un Plugin
Un plugin K9s est composé des éléments suivants :
- shortcut : Il s’agit de la combinaison de touches utilisée pour activer
votre plugin dans K9s. Par exemple,
d
peut être un raccourci pour activer le plugin dive. - description : C’est un texte explicatif qui s’affiche à côté du raccourci dans le menu de K9s. Il décrit brièvement ce que fait le plugin.
- scopes : Ceci définit une collection de noms ou de noms courts de ressources associées à votre plugin. Par exemple, si votre plugin est conçu pour fonctionner avec des pods, vous définirez ‘pods’ dans les portées.
- command : Elle représente la commande exécutée par votre plugin lors de son activation. Cette commande peut être un script shell ou tout autre exécutable.
- background : Ce paramètre spécifie si la commande doit s’exécuter en arrière-plan ou non.
- args : Ce sont les différents arguments qui doivent être appliqués à la commande définie dans le champ Commande.
Variables d’Environnement Prédéfinies
Lors de la création de votre plugin, vous avez accès à certaines variables d’environnement prédéfinies que vous pouvez utiliser :
- $NAMESPACE : Le namespace de la ressource sélectionnée.
- $NAME : Le nom de la ressource sélectionnée.
- $CONTAINER : Le conteneur actuel, si applicable.
- $FILTER : Le filtre actuel, s’il y en a un.
- $KUBECONFIG : L’emplacement du KubeConfig.
- $CLUSTER : Le nom du cluster actif.
- $CONTEXT : Le nom du contexte actif.
- $USER : L’utilisateur actif.
- $GROUPS : Les groupes actifs.
- $POD : Utilisé lors de la vue d’un conteneur.
- $COL-<NOM_COLONNE_RESSOURCE> : Utilisez un nom de colonne donné pour une ressource visualisée. Doit être préfixé par COL-!
Conclusion
Créer un plugin pour K9s ouvre un monde de possibilités pour personnaliser et étendre les capacités de gestion de vos clusters Kubernetes. En utilisant ces composants et variables d’environnement, vous pouvez concevoir des plugins qui s’intègrent parfaitement avec votre workflow et répondent à des besoins spécifiques. Que vous souhaitiez simplifier des tâches répétitives, ajouter des fonctionnalités de surveillance, ou intégrer des outils externes, les plugins K9s offrent une solution flexible et puissante.
Conclusion
La personnalisation de K9s joue un rôle important dans l’optimisation de votre expérience de gestion des clusters Kubernetes. En adaptant l’interface et les raccourcis à vos besoins, vous pouvez améliorer significativement votre efficacité et votre confort d’utilisation. Dans le prochain et dernier chapitre, je partagerai des astuces et des bonnes pratiques pour maximiser les bénéfices de K9s dans votre travail quotidien.
Plus d’infos
-
Dépôt GitHub de K9s : Le dépôt GitHub offre un aperçu du projet, les dernières mises à jour et des instructions sur l’installation et la configuration. Vous pouvez le consulter à cette adresse : GitHub - derailed/k9s ↗.
-
Site Officiel de la Documentation K9s : Pour des informations plus détaillées sur l’installation, l’utilisation, la personnalisation, les raccourcis clavier, les plugins et plus encore, vous pouvez visiter le site officiel de la documentation de K9s : K9s Documentation ↗.