Aller au contenu
Conteneurs & Orchestration medium

Installation des Plugins Kubectl avec Krew

9 min de lecture

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.

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.

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.

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

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 :

Fenêtre de terminal
(
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.

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 :

Fenêtre de terminal
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

Puis rechargez votre configuration :

Fenêtre de terminal
source ~/.bashrc # ou source ~/.zshrc

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

Fenêtre de terminal
kubectl krew version

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

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

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

Fenêtre de terminal
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 :

Fenêtre de terminal
kubectl krew install <nom_du_plugin>

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

Fenêtre de terminal
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 :

Fenêtre de terminal
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 :

Fenêtre de terminal
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 :

Fenêtre de terminal
kubectl krew uninstall <nom_du_plugin>

Exemple :

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

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.

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é.