Outil CLI
ahmetb/kubectx avatar
ahmetb/kubectx

kubectx et kubens : utilitaires pour kubectl avec navigation rapide

Un moyen plus rapide de basculer entre les clusters et les espaces de noms dans kubectl. kubens** est un outil permettant de basculer facilement entre les espaces de noms Kubernetes (et de les configurer pour kubectl).

19 986 étoiles1 382 forksGoApache-2.0

En bref

De quoi s’agit-il ?
Deux outils Go qui accélèrent la navigation entre les clusters et les namespaces Kubernetes, avec support de la recherche interactive et des shells en lecture seule.
À qui s’adresse-t-il ?
kubectx et kubens sont distribués sous licence Apache-2.0 et conviennent à toute personne utilisant kubectl et gérant plusieurs contextes et namespaces Kubernetes. Les outils sont disponibles via les gestionnaires de paquets courants sur macOS, Linux et Windows.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 45 jours.
En quel langage est-il écrit ?
Principalement Go, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Deux outils pour naviguer plus rapidement

kubectx et kubens sont deux outils fournis à partir d'un même dépôt, écrits en Go. kubectx permet de basculer plus rapidement entre les contextes (clusters) dans kubectl et peut lancer des shells en lecture seule pour chaque contexte. kubens permet de basculer entre les namespaces Kubernetes et de les configurer pour kubectl. Tous deux visent à réduire la saisie de commandes complètes ou la mémorisation des noms de contextes lors des déplacements entre clusters et namespaces.

Le README situe ces outils comme des améliorations au-dessus de kubectl lui-même, réduisant la friction administrative quotidienne pour les utilisateurs qui gèrent plusieurs environnements Kubernetes.

Utilisation de base de kubectx

kubectx bascule vers un autre contexte déjà présent dans kubeconfig, par exemple `kubectx minikube`. La commande `kubectx -` revient au contexte précédent sans avoir besoin de mémoriser son nom. `kubectx -s minikube` lance un shell isolé qui ne contient qu'un seul contexte, utile pour éviter les accidents lors du travail sur un seul cluster. `kubectx -r minikube` lance un shell en lecture seule où les opérations d'écriture sont bloquées, offrant une protection supplémentaire lors de la navigation.

Un contexte peut être renommé avec la syntaxe `kubectx dublin=gke_ahmetb_europe-west1-b_dublin`, permettant des alias de contexte plus simples que les noms GKE générés automatiquement. Cela signifie qu'un utilisateur n'a pas besoin de se souvenir de noms de contexte complexes.

Utilisation de base de kubens

kubens change le namespace actif, par exemple `kubens kube-system`. La commande `kubens -` revient au namespace précédent. `kubens namespace-404 -f` permet de basculer vers un namespace même s'il n'existe pas encore, utile lors de la création de nouveaux namespaces et de la configuration immédiate du contexte pour les opérations.

Cette dernière fonctionnalité signifie qu'un opérateur n'a pas besoin de basculer entre créer un namespace et ensuite le sélectionner comme actif : `kubens -f` configure le namespace actif avant même sa création.

Mode interactif avec fzf

Si fzf est installé dans le PATH, kubectx et kubens affichent un menu interactif avec recherche floue. Cela signifie qu'au lieu de taper la commande complète, un utilisateur peut appuyer sur la touche d'entrée pour kubectx ou kubens et voir une liste de tous les contextes ou namespaces avec possibilité de filtrer en tapant. Pour désactiver cette fonctionnalité, définissez la variable d'environnement `KUBECTX_IGNORE_FZF=1`.

Si le comportement par défaut de la commande est nécessaire malgré l'installation de fzf, redirigez la sortie vers une autre commande, par exemple `kubectx | cat`. Cette flexibilité permet aux utilisateurs de choisir d'utiliser le mode interactif ou non selon le contexte.

Installation via gestionnaires de paquets courants

Le README liste l'installation via Homebrew sur macOS et Linux (`brew install kubectx`), MacPorts sur macOS, apt sur Debian/Ubuntu, pacman sur Arch Linux, Chocolatey et Scoop sur Windows, ainsi que winget. Pour les utilisateurs de kubectl, les installations via Krew sont `kubectl krew install ctx` et `kubectl krew install ns`, ce qui les intègre directement en tant que plugins kubectl.

Les binaires peuvent aussi être téléchargés depuis la page Releases et ajoutés au PATH manuellement. Cette variété de méthodes d'installation signifie que les utilisateurs peuvent choisir la méthode qui s'adapte le mieux à leur flux de travail existant.

Complétion shell et configuration

Les deux outils prennent en charge la complétion par Tab dans les shells bash, zsh et fish. Pour zsh, les scripts de complétion peuvent être liés dans le fpath, par exemple dans oh-my-zsh. Pour bash, le README suggère de cloner le dépôt dans `~/.kubectx` et de créer des liens symboliques. Pour fish, des liens symboliques dans `~/.config/fish/completions/` suffisent.

La complétion signifie qu'un utilisateur n'a pas besoin de mémoriser les noms exacts des contextes ou des namespaces : frapper quelques caractères et appuyer sur Tab suffit pour affiner les correspondances.

Personnalisation des couleurs et intégration

Les couleurs indiquant le namespace ou le contexte actuel peuvent être personnalisées avec les variables d'environnement `KUBECTX_CURRENT_FGCOLOR` et `KUBECTX_CURRENT_BGCOLOR`. Le README recommande d'utiliser `tput` pour définir les codes de couleur de manière portable. Définir la variable d'environnement `NO_COLOR` désactive les couleurs dans la sortie pour les environnements qui ne les supportent pas.

Le README suggère d'associer kubectx et kubens avec fzf et kube-ps1, un outil qui affiche le contexte Kubernetes actuel dans le prompt du shell. Ensemble, ces outils fournissent un flux de travail complet pour gérer plusieurs clusters et namespaces avec peu de friction.

Conclusion éditoriale

kubectx et kubens sont distribués sous licence Apache-2.0 et conviennent à toute personne utilisant kubectl et gérant plusieurs contextes et namespaces Kubernetes. Les outils sont disponibles via les gestionnaires de paquets courants sur macOS, Linux et Windows.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté