Aller au contenu

Installation des Plugins Kubectl avec Krew

Mise à jour :

logo kubernetes

Kubectl, la CLI de Kubernetes, peut être étendues grâce à des plugins. Gérer ces plugins manuellement peut vite devenir fastidieux : installation, mises à jour et compatibilité sont autant de défis à surmonter. C’est là qu’intervient Krew, un gestionnaire de plugins pour kubectl, simplifiant leur découverte, installation et maintenance.

Présentation de Krew

Krew est doc le gestionnaire de plugins pour kubectl, permettant d’installer, de mettre à jour et de supprimer des extensions facilement. Il fonctionne comme un gestionnaire de paquets (similaire à apt, brew ou yum), mais dédié aux plugins Kubernetes.

Sans Krew, l’ajout de nouvelles commandes à kubectl nécessite souvent des installations manuelles, des téléchargements depuis des sources variées et des configurations spécifiques. Krew automatise ce processus en fournissant un référentiel centralisé de plugins validés par la communauté Kubernetes.

Installation de Krew

Avant de profiter des plugins kubectl gérés par Krew, il faut d’abord l’installer correctement. L’installation varie selon le système d’exploitation, mais les étapes restent globalement similaires.

Prérequis

Avant d’installer Krew, assurez-vous d’avoir :

  • Kubectl installé et configuré
  • Un accès à un terminal compatible (bash, zsh, PowerShell)
  • Un accès à Internet pour télécharger Krew et ses plugins

Installation de Krew sur Linux et macOS

La méthode la plus simple consiste à utiliser le script d’installation officiel. Ce script détecte automatiquement le système d’exploitation et configure Krew :

Terminal window
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m)" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)

Après l’exécution du script, Krew est installé, mais il faut encore configurer le PATH pour pouvoir utiliser les commandes kubectl krew.

Configuration du PATH

Après l’installation, ajoutez Krew au PATH pour exécuter ses commandes n’importe où.

Ajoutez la ligne suivante à votre fichier ~/.bashrc ou ~/.zshrc :

Terminal window
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

Puis rechargez votre configuration :

Terminal window
source ~/.bashrc # ou source ~/.zshrc

Vérification de l’installation

Pour confirmer que Krew est bien installé, exécutez :

Terminal window
kubectl krew version

Si Krew est installé correctement, cette commande retournera des informations sur la version de Krew et son environnement.

Utilisation de Krew

  1. Découverte et recherche de plugins : Krew dispose d’un catalogue de plugins vérifiés, accessible via :
Terminal window
kubectl krew search <mot-clé>

Exemple : rechercher les plugins contenant le mot “context” :

Terminal window
kubectl krew search context
NAME DESCRIPTION INSTALLED
allctx Run commands on contexts in your kubeconfig no
cautious Prevents accidental kubectl commands for contexts no
cluster-group Exec commands across a group of contexts. no
cs Quick Kubernetes context switcher no
ctx Switch between contexts in your kubeconfig yes
shell-ctx Shell independent context switching no

Cela permet d’explorer les extensions utiles sans devoir consulter divers dépôts GitHub.

  1. Installation simplifiée des plugins :

Avec Krew, il suffit d’une simple commande pour ajouter un plugin à kubectl :

Terminal window
kubectl krew install <nom_du_plugin>

Exemple : pour installer le plugin kubectl tree, qui affiche une hiérarchie des ressources Kubernetes :

Terminal window
kubectl krew install tree
  1. Mise à jour automatique des plugins :

Krew gère la mise à jour centralisée de tous les plugins installés. Une seule commande permet d’avoir les dernières versions :

Terminal window
kubectl krew upgrade
Updated the local copy of plugin index.
Upgrading plugin: ctx
Skipping plugin ctx, it is already on the newest version
Upgrading plugin: krew
Skipping plugin krew, it is already on the newest version
Upgrading plugin: ns
Skipping plugin ns, it is already on the newest version
Upgrading plugin: tree
Skipping plugin tree, it is already on the newest version

Pour mettre à jour Krew lui-même :

Terminal window
kubectl krew update
Updated the local copy of plugin index.
  1. Désinstallation des plugins :

Si un plugin devient inutile, il peut être supprimé proprement avec :

Terminal window
kubectl krew uninstall <nom_du_plugin>

Exemple :

Terminal window
kubectl krew uninstall tree
  1. Liste des plugins installés Pour afficher tous les plugins déjà installés sur le système :
Terminal window
kubectl krew list
PLUGIN VERSION
ctx v0.9.5
krew v0.4.4
ns v0.9.5
tree v0.4.3

Quelques plugins kubectl incontournables

Pour optimiser la gestion et l’administration de vos clusters Kubernetes, plusieurs plugins kubectl se distinguent par leur utilité et leur popularité. Voici une sélection des plus notables :

  1. kubectx : Simplifie le changement de contexte entre différents clusters Kubernetes.
  2. kubens : Facilite la navigation entre namespaces au sein d’un même cluster.
  3. stern : Permet de suivre en temps réel les logs de plusieurs pods simultanément, avec une sortie colorée pour différencier les sources. Idéal pour le débogage et la surveillance des applications. Plus d’informations
  4. kubectl-who-can : Identifie quels utilisateurs ou services ont les permissions pour effectuer des actions spécifiques sur les ressources Kubernetes. Utile pour les audits de sécurité et la gestion des accès. Plus d’informations
  5. popeye : Analyse en continu votre cluster pour détecter des mauvais configurations et des anomalies, aidant à maintenir les meilleures pratiques et à éviter les problèmes potentiels. Plus d’informations
  6. kubectl-tree : Affiche une représentation arborescente des ressources Kubernetes, montrant les relations hiérarchiques entre elles. Particulièrement utile pour visualiser les dépendances et les propriétaires des ressources. Plus d’informations
  7. kubectl-neat : Nettoie la sortie YAML ou JSON des commandes kubectl en supprimant les champs par défaut ou générés automatiquement, rendant la lecture plus aisée. Plus d’informations
  8. ksniff : Facilite la capture de paquets réseau directement depuis les pods Kubernetes, intégrant des outils comme tcpdump et Wireshark pour une analyse approfondie. Plus d’informations

Ces plugins enrichissent considérablement les fonctionnalités de kubectl, rendant la gestion des clusters Kubernetes plus efficace et intuitive.

La liste complète des plugins kubectl est disponible sur le site officiel.

Conclusion

Vous l’aurez compris, Krew est un outil indispensable pour étendre les fonctionnalités de kubectl et simplifier la gestion des plugins Kubernetes. Grâce à Krew, l’installation, la mise à jour et la suppression des extensions sont grandement facilitées, permettant de se concentrer sur l’essentiel : la gestion de vos clusters Kubernetes. N’hésitez pas à explorer le catalogue de plugins pour découvrir de nouvelles extensions utiles et améliorer votre productivité.