Comment changer rapidement de contexte Kubernetes avec Kubectx et Kubens
Agence web » Actualités du digital » Comment démarrer avec Krew, le gestionnaire de plugins Kubectl

Comment démarrer avec Krew, le gestionnaire de plugins Kubectl

Krew est un gestionnaire de packages pour Kubectl, la CLI officielle de Kubernetes. En utilisant Krew, vous pouvez trouver, installer et mettre à jour les plugins Kubectl qui étendent la CLI avec des fonctionnalités supplémentaires.

Le mécanisme de plugins de Kubectl prend en charge plusieurs méthodes d’installation de plugins. Le moyen le plus simple consiste à placer les plugins directement dans un répertoire qui se trouve dans votre PATH. Il s’agit d’un processus manuel qui n’offre aucun moyen de mettre à jour le plugin lorsque de nouvelles versions sont publiées.

Krew fournit des fonctionnalités communes de gestion des packages pour l’écosystème de plugins Kubectl. Il maintient un index public des packages connus et prend également en charge les index tiers. Ce dernier vous permet de publier des plugins en privé au sein d’une organisation ou d’une équipe.

Installation de Krew

Krew est un outil open source qui fait partie du projet Kubernetes. Cependant, il n’est pas fourni avec Kubectl. Pour démarrer avec Krew, vous devez télécharger et installer manuellement la dernière version. Les distributions Krew actuelles fonctionnent avec Kubectl v1.12 et versions ultérieures.

Les téléchargements sont disponibles sur la page des versions GitHub du projet. Les archives tar de distribution contiennent le binaire Krew. Exécutez son script d’installation pour terminer l’ajout de Krew à votre système :

$ ./krew-linux_amd64 install krew

Un script complet qui télécharge et installe automatiquement la bonne distribution Krew pour votre système est disponible dans la documentation.

Ensuite, vous devez mettre à jour votre PATH pour inclure Krew bin annuaire. Celle-ci se situe à l’intérieur $KREW_ROOT qui est habituellement $HOME/.krew. Les exécutables des plugins Kubectl que vous installez seront stockés dans le bin sous-répertoire.

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

Vous devriez maintenant pouvoir utiliser Krew via le kubectl krew commande:

~$ kubectl krew
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]..."

Usage:
  kubectl krew [command]
...

Mise à jour de l’index des plugins

L’index des plugins de Krew répertorie tous les plugins actuellement disponibles que vous pouvez installer. Cela fonctionne de la même manière que les listes de packages utilisées par les gestionnaires de packages au niveau du système d’exploitation, tels que apt.

Mettez à jour l’index périodiquement afin que votre installation Krew ait accès aux dernières versions de tous les plugins disponibles :

$ kubectl krew update
Updated the local copy of plugin index.

Installer des plugins

La install La commande ajoute de nouveaux plugins à Kubectl. Il peut installer n’importe lequel des plugins répertoriés dans l’index de Krew. Krew se charge de télécharger le plugin et de l’enregistrer auprès de Kubectl.

$ kubectl krew install ctx
Updated the local copy of plugin index.
Installing plugin: ctx
Installed plugin: ctx
...

Krew met automatiquement à jour son index de plug-in avant l’installation, vous assurant ainsi d’obtenir la dernière version du nouveau plug-in. Une fois l’installation terminée, vous verrez quelques informations de base de l’auteur du plugin au bas de la sortie de la commande.

Vous pouvez maintenant utiliser les commandes du plugin via le kubectl CLI :

$ kubectl ctx my-context

Mise à jour vers les nouvelles versions de plugins

L’un des principaux avantages de Krew est son système de mise à jour de plug-in intégré. Exécution de la upgrade La commande actualisera l’index du package et mettra à jour tous vos plugins installés vers leur dernière version. Ce processus est entièrement automatique.

$ kubectl krew upgrade
Updated the local copy of plugin index.
...

Vous pouvez mettre à niveau les plugins individuellement en transmettant leurs noms au upgrade commande:

$ kubectl krew upgrade ctx

Si jamais vous souhaitez supprimer un plugin, fournissez son nom au uninstall commande:

$ kubectl krew uninstall ctx

Krew s’assurera que le plugin est complètement supprimé de votre système.

La list La commande affiche tous vos plugins et leurs versions installées :

~$ kubectl krew list
PLUGIN  VERSION
ctx     v0.9.4
krew    v0.4.3
ns      v0.9.4

Krew lui-même apparaît dans la liste des plugins et est pris en charge par le système de mise à jour. Fonctionnement upgrade ou upgrade krew récupérera et installera la dernière version de Krew avant la mise à jour de vos plugins.

Recherche de plugins

La search La commande vous permet de parcourir l’index des packages Krew depuis votre terminal.

~$ kubectl krew search cert-manager
NAME          DESCRIPTION                                        INSTALLED
cert-manager  Manage cert-manager resources inside your cluster  no

Une fois que vous avez trouvé un plugin qui vous intéresse, lancez le info commande pour en savoir plus. Cela révèle le numéro de version actuel du plugin, un lien vers son site Web et une courte description fournie par l’auteur.

~$ kubectl krew info cert-manager
NAME: cert-manager
INDEX: default
URI: https://github.com/jetstack/cert-manager/releases/download/v1.7.0/kubectl-cert_manager-linux-amd64.tar.gz
SHA256: 73618617b9ec42994c3ea77bbc8be743e382501d42ad2ee7aeca0d32c15655c0
VERSION: v1.7.0
HOMEPAGE: https://github.com/jetstack/cert-manager
DESCRIPTION: 
The official plugin accompanying cert-manger, a Kubernetes add-on to
automate the management and issuance of TLS certificates. Allows for
direct interaction with cert-manager resources e.g. manual renewal of
Certificate resources.

Utilisation d’index personnalisés

Krew prend en charge les index personnalisés qui facilitent l’installation du plugin à partir de vos propres sources. Les index sont simplement des dépôts Git avec un plugins dossier contenant les manifestes YAML. Ces fichiers définissent les plugins disponibles pour l’installation. La structure de l’index par défaut de Krew est un modèle utile lorsque vous configurez le vôtre.

Pour ajouter un index, transmettez son URL de référentiel au index add commande:

$ kubectl krew index add custom-index https://example.com/krew/index.git

Pour référencer les plugins dans votre index, préfixez leurs noms avec le nom d’index que vous avez choisi :

$ kubectl krew install custom-index/example-plugin

Lorsqu’aucun préfixe n’est donné, Krew utilise le default/ préfixe à la place. Cela fait toujours référence à l’index de plugins intégré de Krew. Si vous préférez diriger les noms de plug-ins sans préfixe vers votre propre index, définissez le KREW_DEFAULT_INDEX_URI variable d’environnement à l’URL de votre dépôt :

$ export KREW_DEFAULT_INDEX_URI="https://example.com/krew/index.git"

# Automatically resolved to the custom index
$ kubectl krew install example-plugin

Publier vos propres plugins

Il est assez simple de distribuer vos propres plugins aux utilisateurs via Krew. Vous devez d’abord créer une archive du contenu de votre plugin Kubectl, soit en tant que .tar.gz ou .zip dossier. Téléchargez-le dans un emplacement accessible au public – le site Web de votre projet ou la page des versions de GitHub sont de bons choix.

Écrivez ensuite un manifeste de plugin Krew. Il s’agit d’un simple fichier YAML qui fournit des informations de base sur votre plugin telles que son nom, sa description et sa version actuelle. Le manifeste inclut également l’URL publique de l’archive de votre plug-in. Lorsqu’un utilisateur installe votre plugin, Krew récupère son archive à partir de l’URL spécifiée dans le manifeste.

Une fois que vous avez écrit votre manifeste, vous pouvez le valider dans un référentiel Git. Ajoutez ce référentiel en tant qu’index Krew personnalisé pour ajouter votre plugin à votre installation Kubectl. Les soumissions à l’index public de Krew sont acceptées en créant une demande d’extraction dans son référentiel qui ajoute votre manifeste dans le plugins annuaire.

Conclusion

Krew simplifie la découverte, l’installation et la gestion des plugins Kubernetes. C’est un outil pratique pour tous ceux qui utilisent les plugins Kubectl. Krew offre une expérience complète de gestion de packages qui inclut des index privés personnalisés pour vos outils internes.

L’index public contient plus de 180 plugins couvrant tous les aspects de la gestion de Kubernetes. Certaines options populaires incluent cert-manager, pour travailler avec des objets Cert-Manager dans votre cluster, tail, offrant une diffusion de journaux simplifiée, un score pour l’analyse statique de vos objets, et ctx et ns pour rationaliser la commutation entre les contextes et les espaces de noms.

★★★★★