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!
kubectl get pods -o yaml
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