Das Problem
Du arbeitest mit mehreren Kubernetes-Clustern – vielleicht Dev, Staging und Production. Oder du verwaltest verschiedene Namespaces im selben Cluster. Jeder Kontextwechsel sieht so aus:
kubectl config use-context my-company-production-cluster-eu-west-1
kubectl config set-context --current --namespace=monitoring
Das dutzende Male am Tag einzutippen ist langsam, fehleranfällig und schlicht nervig. Ein Tippfehler – und du führst einen Befehl gegen den falschen Cluster aus.
kubectx & kubens
kubectx und kubens sind zwei kleine, fokussierte Tools von Ahmet Alp Balkan, die genau dieses Problem lösen:
- kubectx – sofort zwischen Kubernetes-Kontexten (Clustern) wechseln
- kubens – sofort zwischen Namespaces wechseln
Beide unterstützen interaktive Fuzzy-Suche via fzf – ein paar Buchstaben tippen, aus der Liste wählen, fertig.
Sie ersetzen kubectl nicht. Sie ändern nur deine kubeconfig – dasselbe wie kubectl config, nur schneller.
Installation
Via krew:
kubectl krew install ctx
kubectl krew install ns
Via Homebrew (macOS/Linux):
brew install kubectx
Damit sind kubectx und kubens installiert.
Manuell:
git clone https://github.com/ahmetb/kubectx.git ~/.kubectx
export PATH="$PATH:$HOME/.kubectx"
Optional aber empfohlen – fzf für interaktive Auswahl installieren:
brew install fzf
# oder
apt install fzf
Grundlegende Verwendung
kubectx
# Alle Kontexte anzeigen
kubectx
# Zu einem Kontext wechseln
kubectx my-production-cluster
# Zum vorherigen Kontext zurückwechseln
kubectx -
# Einen Kontext umbenennen
kubectx prod=my-company-production-cluster-eu-west-1
# Einen Kontext löschen
kubectx -d old-cluster
Lange GKE- oder EKS-Kontextnamen sind korrekt und mühsam zu tippen. Ein kurzer Alias wie prod=... hilft im Alltag mehr als es auf den ersten Blick wirkt.
kubens
# Alle Namespaces anzeigen
kubens
# Zu einem Namespace wechseln
kubens monitoring
# Zum vorherigen Namespace zurückwechseln
kubens -
kubens setzt den Standard-Namespace am aktuellen Kontext – wie kubectl config set-context --current --namespace=....
Mit installiertem fzf reicht ein einfaches kubectx oder kubens ohne Argumente – interaktive Auswahl mit Pfeiltasten und Fuzzy-Suche.
Die echte Power: Aliases
Viele Engineers kürzen die Befehle zusätzlich in ihrer Shell-Konfiguration:
alias kx='kubectx'
alias kn='kubens'
Cluster wechseln ist dann buchstäblich zwei Tastenanschläge. Ein Prompt, der Kontext und Namespace zeigt (Starship, kube-ps1 o. Ä.), macht falsche Umgebungen noch leichter sichtbar.
Warum das mehr als nur Komfort ist
Im falschen Cluster zu arbeiten ist eine Fehlerkategorie, die echte Production-Incidents verursacht hat. Wenn Kontextwechsel langsam und umständlich sind, vermeiden Engineers sie – und führen Befehle in der falschen Umgebung aus.
kubectx und kubens machen das richtige Verhalten zum einfachen Verhalten. Das ist Safety Culture angewendet auf Tooling.
Auf dem richtigen Cluster und Namespace helfen danach kubectl tree bei Ownership und kubectl-Grundlagen für Einsteiger bei den eigentlichen Befehlen.
Zusammenfassung
| Installation | kubectl krew install ctx ns oder brew install kubectx |
| kubectx | Zwischen Clustern/Kontexten wechseln |
| kubens | Zwischen Namespaces wechseln |
| Bonus | fzf für interaktive Fuzzy-Auswahl |
| Empfohlene Aliases | kx für kubectx, kn für kubens |
Zwei Tools. In zwei Minuten installiert. Du wirst dich fragen, wie du je ohne sie gearbeitet hast.