Mes meilleurs plugins Krew
Au quotidien, j'utilise mes différents plugins Krew. Ils me sont d'une importance vitale dans mon workflow. La liste exhaustive est dans le Brewfile de mes dotfiles, sur les lignes krew "..."
Ça n'a pas toujours été le cas, longtemps la liste vivait dans un fichier texte à part, un plugin par ligne, qu'on rejoue comme ça :
Depuis brew bundle v4.5, les plugins Krew sont gérables directement dans un Brewfile - pratique pour centraliser tout son setup dans un seul endroit :
brew bundle install installe ensuite tout en une passe, brew bundle dump exporte les plugins installés.
Attention aux plugins qui viennent d'un index custom (netshoot/netshoot, pixibixi/ice) : brew bundle appelle juste kubectl krew install, il n'ajoute pas l'index tout seul. On le fait une fois avant :
kubectl krew index add netshoot https://github.com/nilic/kubectl-netshoot.git
kubectl krew index add pixibixi https://github.com/PixiBixi/krew-index.git
Voici en détail à quoi servent-ils :
browse-pvcpermet de parcourir un PVC et de voir son contenucnpgpermet de gérer ses clusters CloudNativePG : status, backup, promotion, reload, sans écrire un seul YAMLcrd-wizardouvre une TUI pour explorer les CRDs et les CRs du cluster, pratique quand on débarque sur un cluster bourré d'operatorsdf-pvpermet de voir tel la commandedfl'espace dispo sur son PVC & coforeachpermet de lancer la même commande sur plusieurs contexts en concurrent, avec le nom du context en préfixe de chaque ligneget-allpermet de lister toutes les ressources dans un NSiexecpermet de choisir interactivement le pod et le container avant de faire unkubectl execklockpermet de rafraichir automatiquement une commande, par exemplekubectl klock podsva watch toutes les secondes les changements sur les podskorpermet de repérer les ressources qui ne servent plus (configmaps, secrets, services, PVCs...) et de les supprimerlineagepermet d'afficher les dépendances ou les dépendants d'une ressource, en gros l'inverse detreemodify-secretpermet de modifier un secret en plain textneatpermet de supprimer d'un yaml tous les champs qui sont gérés par K8Snetshoot/netshootpermet de simplifier l'utilisation du magnifique container netshootnode-resourceaffiche l'allocation (allocation) et la consommation réelle (utilization) par node, avec le CPU, la RAM, le GPU, le nombre de pods et le free restantnode-shellpermet d'ouvrir un shell sur un nodepixibixi/iceest mon fork de kubectl-ice : il montre au niveau container les volumes, images, ports, commandes exec et la conso CPU/RAM (metrics-server requis), avec un mode watch en pluspixibixi/klensest mon plugin qui regroupe les inspections read-only qu'on tape en boucle : node pools, taints, capacité, zones, pods par node, requests/limits, PVC bindingsresource-capacitypermet de voir la capacité d'un nodesniffpermet de dump le traffic d'un podtmux-execpermet d'exécuter en simultané des commandes sur des containerstreepermet de voir sous formes arbres les différents liens entres les ressourcesview-secretpermet de voir les secretsview-utilizationest plus ou moins redondant avecresource-capacityet les 2 sont remplacés parnode-resource
node-resource est celui qui sert le plus au quotidien, voici les 2 commandes qu'on tape :
kubectl node-resource allocation --show-free --show-pod-count
kubectl node-resource utilization --sort-by=mem-percent
Les 2 interrogent l'API server, utilization a en plus besoin du metrics-server alors qu'allocation se contente des requests des pods. Elles acceptent un label selector en argument (kubectl node-resource allocation "role=worker"), --summary=only pour n'avoir que l'agrégat et --json pour scripter derrière.
N'hésitez pas à voir la liste des plugins Krew et de dénicher quelques pépites
Voir aussi
- Commandes utiles - gestion courante des pods et ressources
- Commandes avancées - requêtes jsonpath et débogage poussé
- Outils pour K8S - kubectx, stern, kubecolor et alternatives à kubectl natif