UI & Management

kubectx / kubens

Outils CLI Apache 2.0 pour switcher rapidement entre contextes Kubernetes et namespaces. Autocomplétion, interface interactive fzf, intégration PS1 prompt.

kubectx et kubens sont deux utilitaires CLI développés par Ahmet Alp Balkan (Google) qui résolvent un problème quotidien : changer de cluster ou de namespace dans Kubernetes est verbeux avec kubectl natif. kubectx remplace kubectl config use-context <nom-très-long> par kubectx prod. kubens remplace kubectl config set-context --current --namespace=... par kubens production. Avec fzf installé, la sélection devient interactive avec une recherche filtrée en temps réel.


Informations essentielles

Origine : Ahmet Alp Balkan (Google)  ·  Licence : Apache 2.0  ·  Architectures : x86_64, ARM64

Liens : GitHub  ·  Releases

Support : Projet stable et très adopté, maintenance active.

Stack par défaut

ComposantValeur
kubectxSwitch entre contextes (clusters) du kubeconfig
kubensSwitch entre namespaces du contexte actif
Interface interactiveVia fzf (optionnel mais recommandé)
ShellAutocomplétion Bash, Zsh, Fish
PromptPlugin kube-ps1 pour afficher contexte/namespace

Prérequis

RessourceValeur
kubeconfigConfiguré avec les contextes souhaités
fzfOptionnel - pour l'interface interactive

Installation

# Homebrew (macOS / Linux)
brew install kubectx

# Linux - binaires directs
sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

# Arch Linux
pacman -S kubectx

# Windows (Scoop)
scoop install kubectx

# Autocomplétion Zsh
mkdir -p ~/.zsh/completion
ln -s /opt/kubectx/completion/kubectx.zsh ~/.zsh/completion/_kubectx
ln -s /opt/kubectx/completion/kubens.zsh ~/.zsh/completion/_kubens

Interface interactive avec fzf

# Installer fzf
brew install fzf
# ou
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install

# Avec fzf installé, kubectx et kubens deviennent interactifs :
kubectx   # Affiche une liste filtrée interactive des contextes
kubens    # Affiche une liste filtrée interactive des namespaces

Utilisation

kubectx - gestion des contextes

# Lister les contextes disponibles
kubectx

# Switcher vers un contexte
kubectx prod-cluster

# Revenir au contexte précédent (comme cd -)
kubectx -

# Renommer un contexte
kubectx prod=gke_my-project_europe-west1_prod

# Supprimer un contexte
kubectx -d old-cluster

# Contexte actif
kubectx -c

kubens - gestion des namespaces

# Lister les namespaces du contexte actif
kubens

# Switcher vers un namespace
kubens production

# Revenir au namespace précédent
kubens -

# Namespace actif
kubens -c

Intégration dans le prompt (kube-ps1)

Pour afficher le contexte et le namespace dans votre prompt shell :

# Installation
brew install kube-ps1

# Ajouter dans ~/.zshrc ou ~/.bashrc
source "$(brew --prefix kube-ps1)/share/kube-ps1.sh"
PS1='$(kube_ps1)'$PS1

# Activer/désactiver
kubeon   # Active kube-ps1
kubeoff  # Désactive kube-ps1

Mise à jour

brew upgrade kubectx

# Ou : git pull sur le repo cloné
cd /opt/kubectx && git pull

Commandes utiles

kubectx                    # Lister les contextes
kubectx <nom>              # Switcher de contexte
kubectx -                  # Contexte précédent
kubectx -c                 # Contexte actif
kubens                     # Lister les namespaces
kubens <nom>               # Switcher de namespace
kubens -                   # Namespace précédent
kubens -c                  # Namespace actif

Ressources

Newsletter · 2 000+ abonnés

Reste au courant de ce qui bouge en prod

RudeOps veille devops hebdo, droit au but.

Gratuit · Sans spam · Désinscription en un clic