Zur Vereinfachung gibt es ein hilfreiches kleines Werkzeug namens k9s, das eine einfache Übersicht aller Pods zeigt und eine ähnliche Darstellung wie top nutzt:Screenshot eines Terminals mit k9s
Hier wird als Beispiel ein frisch gestartetes Minikube in der klassischen 24*80-Ansicht gezeigt, dessen Services teilweise noch nicht gestartet sind.
Installation
k9s ist auf der Seite https://k9scli.io/ verfügbar.
Unter https://github.com/derailed/k9s/releases finden sich Downloads für verschiedene Paketmanager. Hier haben wir eine einfache Installation via tarball bevorzugt. Es gibt daneben auch Pakete für alle gängigen Distributionen (rpm, deb). Dabei sollte man nur nicht arm64 und amd64 verwechseln ;-)!
Nutzung
k9s kann direkt und ohne weitere Konfiguration gestartet werden, sofern eine funktionierende kubectl-Installation und -Konfiguration vorliegt. Falls nicht, muss diese erst bereitgestellt werden, ein Unterfangen, das an dieser Stelle zu weit führen würde.
Der reine Start als k9s nutzt den Namensraum, der in der kubeconfig als Standard gesetzt ist, meistens default. Für einen bestimmten Namensraum dient der -n-Flag: k9s -n wordpress. Alternativ dazu kann auch -A für alle Namensräume verwendet werden.
Danach befindet man sich in einer top-üblichen Übersicht, in der laufende Container, ggf. mit Fehlermeldungen und derzeitigem Status sowie weiteren Informationen angezeigt werden. Dies ist definitiv hilfreich, um sich eine schnelle Übersicht zu verschaffen.
Logfiles
Mit den Cursortasten können einzelne Deployments/Pods ausgewählt und über die Eingabetaste aufgerufen werden. Dort kann man, wieder über die Eingabetaste, die Logfiles eines einzelnen Pods ansehen. Wer sich dieses sparen will, kann sie auch direkt aus der zentralen Übersicht per l auswählen. Laufen unter einem Deployment mehrere Pods, werden alle Pods in einem Logfile zusammengefasst.
Hier zeigt sich eine Stärke des Systems: Es kann bequem mit den Cursortasten geblättert werden. Standardmässig folgt k9s dem Logfile. Mit s (Toggle Autoscroll) kann dieses Verhalten jedoch geändert werden.
Mit "/" kann die Ausgabe zusätzlich durchsucht werden und wird direkt interaktiv um die nicht zutreffenden Zeilen bereinigt.
Shell
Von der Übersichtsseite aus kann per s in die Shell eines Containers gewechselt werden, sofern er eine hat. Diese kann dann mit exit wieder verlassen werden (abhängig vom System).
delete & kill
Mit STRG+d können Pods “normal”, mit STRG+k per kill beendet werden. In beiden Fällen wird der Pod neu gestartet.
Es ist zu beachten, dass in beiden Fällen nicht das Deployment gelöscht wird. Es wird nur der laufende Pod beendet und neu gestartet.
describe
Mit d erhalten wir eine Beschreibung eines Pods, wie auch kubectl describe sie liefert. Auch hier wird die Ausgabe besser handhabbar.
forward
Eine von mir seltener verwendete Funktion ist die Möglichkeit, mit UMSCHALT+f eine Portweiterleitung einzurichten (also das Gegenstück zu kubectl port-forward). Praktisch ist, dass k9s hier bereits vorschlägt,welcher Port weitergeleitet werden könnte. Eine bestehende Weiterleitung wird mit Ⓕ in der Spalte PF angezeigt.
Vorsicht, sie wird beendet, sobald man k9s verlässt!
Neben den hier besprochenen Funktionen bietet k9s noch eine Menge mehr, die mit ? angezeigt werden können.
Fazit
k9s ist eines der Werkzeuge, das einfach nur Freude macht und positioniert sich in einer Nische zwischen kubectl und dem Dashboard (oder gar erheblich aufwändigeren Lösungen wie Grafana et al). Aus eigener Erfahrung können wir sagen, dass es in einem Umfeld mit Minikube Zugang und Fehlersuche erheblich erleichtert hat und wir wollten es nicht mehr missen.
DEN VOLLSTÄNDIGEN ARTIKEL FINDEN SIE INKLUSIVE ALLER GRAFIKEN IN UNSEREM BLOG.