bee42 weekly #29 | Blogposts, News & Events


Arbeiten mit kubectl

Management von kubectl Configdateien

Die Anzahl der Kubernetes Cluster auf die man Zugang hat wächst stetig. Schnell kommt da der Wunsch auf, nicht alle Config-Dateien in der Standard Kubeconfig Datei als einen Monolithen zu verwalten. Das Management der Configs und verschiedenen Benutzerrechte soll flexibel und einfach werden. Dazu exportieren wir einfach alle verschiedenen Kubeconfig-Dateien in die Variable $KUBECONFIG.

export KUBECONFIG=~/.kube/config:~/.kube/bee42-raspberrypi:~/.kube/bee42-dev:~/.kube/bee42-azure

Kubectl und Alias

Wer hat schon mal folgendes gesehen?

bash: kubeclt: command not found

Dagegen hilft nur langsamer und aufmerksamer tippen (keine Option, richtig?) oder folgende Alias:

kc   = 'kubectl'`
kcgp = 'kubectl get pods'
kcgd = 'kubectl get deployments'
kcgn = 'kubectl get nodes'

Wem das zu einfach ist, der sollte sich dieses Projekt anschauen: https://github.com/ahmetb/kubectl-aliases
Dann kann man auch kgpooyaml oder kgpdepallsl schreiben. Für wen das zu kryptisch aussieht, keine Angst, es steckt ein System dahinter!

  1. kubectl get pods -o yaml
  2. kubectl get deployments --all-namespaces --show-labels

Autocompletion

Man kann nicht alles wissen. Man muss nur wissen, wo es steht

Oder TAB zeigt es einem… ;-)

source <(kubectl completion bash)
# oder
source <(kubectl completion zsh)

Hier gehts zum vollständigen Installationsguide.

Plugins

Das spannendste Thema aktuell im Bereich Vereinfachung in der Shell sind sicherlich die Plugins für kubectl, diese sind seit Kubernetes 1.12 integiert.

Einerseits kann man unkompliziert sein eigenes Plugin bauen, ein Guide findet sich im vorherigen Link, andererseits natürlich bereits fertige benutzen.

Mit Krew gibt es auch gleich schon einen Paketmanager für diese Plugins.

Bei GitHub findet sich eine bunte Auswahl, wir haben die für uns interessantesten einmal herausgesucht:

Kubectx / Kubens
Ist aus unserer Sicht das praktischste der bisher verfügbaren Tools, aber richtig gut wird es erst in Verbindung mit fzf. Der wechsel zwischen mehreren Clustern und Namespaces wird kinderleicht. Wer sich gern Zeichen spart, setzt sich natürlich noch kctx und kns als Alias!

rakkess
Zeigt alle momentan verfügbaren Resourcen. Somit lassen sich Zugangsregeln einfach erkennen und verbessern.

warp
Hilft uns schnell und unkompliziert direkt im Cluster zu entwickeln. Das lokale Arbeitsverzeichnis wird mit einem Pod im Cluster synchronisiert und ein Port Forwarding aufgebaut.

Einen alternativen Ansatz verfolgt Skaffold, falls jemand ein Standalone Tool nutzen möchte.

Um secrets einfacher anzuzeigen anstelle von manifest parsen mit jq / yq und jsonpath. Gibt es noch k8sec. Dieses ermöglicht euch einen einfachen Blick auf eurer Secrets und decodiert auch diese direkt.

Wer mehr zu Kubernetes und den Plugins erfahren möchte, darf uns gern auf einem unserer Kubernetes Trainings besuchen.


Das war es für diese Woche von uns, wenn du eigene Vorschläge hast, schick sie uns gern bei Twitter!

die bee42 crew

"Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung."