kubectx / kubens
Overview
kubectx et kubens, ce sont les deux outils CLI qui pensent que taper "kubectl config use-context super-long-cluster-name-production-eu-west-1" à chaque fois, c'est du masochisme pur. kubectx switch entre contextes (clusters), kubens switch entre namespaces, avec autocomplétion, interface interactive, et raccourcis. Si tu jonglent entre plusieurs clusters/namespaces, c'est indispensable.
kubectx remplace "kubectl config use-context" par "kubectx prod" (plus court). kubens remplace "kubectl config set-context --current --namespace=kube-system" par "kubens kube-system". Interface interactive avec fzf pour sélectionner visuellement, historique des contextes précédents.
kubectx/kubens se distinguent par leur simplicité extrême (un binaire, une commande), leur intégration shell parfaite (autocomplétion, PS1), et leur gain de productivité massif pour le multi-cluster.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://github.com/ahmetb/kubectx |
| Repository | https://github.com/ahmetb/kubectx |
| Licence | Apache 2.0 |
| Développeur | Ahmet Alp Balkan (Google) |
| Langage | Bash/Go |
| Plateforme | Linux, macOS, Windows |
Cas d'usage typiques
- Switch rapide entre clusters dev/staging/prod
- Navigation entre namespaces d'un même cluster
- Automatisation scripts avec context switching programmatique
- Workflow multi-cluster pour SRE/DevOps
- Debugging cross-namespace avec switch rapide
- Intégration dans PS1/prompt pour affichage contexte actuel
Intégrations et écosystème
- Shell : autocomplétion Bash, Zsh, Fish native
- fzf : interface interactive pour sélection visuelle
- Prompt : intégration PS1 pour afficher contexte/namespace actuel
- IDE : plugins VSCode, IntelliJ pour context switching
- CI/CD : utilisation dans scripts pour multi-cluster deployments
- Kubernetes : compatible avec tous clusters et kubeconfig standards
Avantages
- ✅ Simplicité extrême : une commande, switch instantané, zero configuration
- ✅ Productivité : gain de temps massif pour multi-cluster/namespace
- ✅ Interface interactive : sélection visuelle avec fzf, pas de mémorisation
- ✅ Intégration parfaite : autocomplétion, prompt, compatible kubectl
- ✅ Léger : binaires tiny, zéro overhead, installation rapide
- ✅ Standard de facto : utilisé massivement dans la communauté K8s
Inconvénients et limitations
- ❌ Fonctionnalité unique : ne fait que switch, pas de features avancées
- ❌ Dépendance kubeconfig : nécessite kubeconfig bien configuré
- ❌ Pas de validation : ne vérifie pas la connectivité du contexte
- ❌ Installation séparée : pas inclus dans kubectl par défaut
- ❌ Sécurité : switch accidentel vers mauvais cluster peut être dangereux
Alternatives
- kubectl config : commandes natives (plus verbeuses)
- K9s : interface TUI complète avec context switching intégré
- Lens : context switching dans interface graphique
- kubie : alternative moderne avec isolation de session
- kube-ps1 : uniquement pour affichage contexte dans prompt
Ressources
- GitHub : https://github.com/ahmetb/kubectx
- Installation : package managers (brew, apt, choco)
- Documentation : README GitHub complet