Kubernetes Deployment

15 Tools gegen die Container-Komplexität

30.03.2022
Von 
Serdar Yegulalp schreibt für unsere US-Schwesterpublikation Infoworld.
Kubernetes ist komplex. Diese Tools schaffen Abhilfe und unterstützen Sie bei Monitoring, Command-Line Ops und Multi-Cluster-Management.
Kubernetes-Probleme? Diese 15 Tools schaffen Abhilfe.
Kubernetes-Probleme? Diese 15 Tools schaffen Abhilfe.
Foto: Dmitry Kovalchuk - shutterstock.com

Kubernetes ist inzwischen für viele Experten DAS Standardverfahren, um containerisierte Anwendungen in großem Maßstab bereitzustellen. Die Technologie und hilft dabei, ausufernd komplexen Container Deployments ihren Schrecken zu nehmen. Allerdings ist auch Kubernetes selbst eher komplex, unübersichtlich und schwierig zu managen.

15 Tools, die Kubernetes einfacher machen

Zwar wächst und gedeiht Kubernetes weiter, und zweifellos werden viele seiner Auswüchse im Rahmen der diversen Projekte gezähmt. Einige Benutzer wollen jedoch nicht darauf warten, dass andere ihnen die Arbeit mit Kubernetes erleichtern. Sie haben ihre eigenen Lösungen für häufige Probleme mit Kubernetes im produktiven Betrieb entwickelt. Wir zeigen Ihnen 15 Tools, die das Kubernetes-Leben leichter machen.

Goldpinger

Der Mensch ist ein visuelles Wesen. Grafiken und Diagramme machen es uns leichter, das große Ganze zu verstehen. Vergegenwärtigt man sich Umfang und Komplexität eines Kubernetes-Clusters, ist jede visuelle Hilfe willkommen. Goldpinger, entwickelt von der Tech-Abteilung von Bloomberg, ist ein simples Tool, das innerhalb eines Kubernetes-Clusters läuft und eine interaktive Karte der Beziehungen zwischen den Knoten erstellt. Gesunde Nodes erscheinen in Grün, ungesunde in Rot. Ein Klick auf den jeweiligen Knoten ruft Details auf. Um zusätzliche Reportings, Metriken oder andere Integrationen einzubinden, lässt sich die API von Goldpinger mit Swagger anpassen.

K9s

Admins lieben "Single Pane of Glass Utilities". K9s ist eine bildschirmfüllende CLI-Benutzeroberfläche für Kubernetes-Cluster. Sie gewährt einen Überblick über laufende Pods, Protokolle und Deployments sowie schnellen Shell-Zugriff. Damit K9s ordnungsgemäß funktioniert, müssen Sie Kubernetes-Benutzern Leseberechtigungen auf Benutzer- und Namespace-Ebene gewähren.

Kops

Vom Kubernetes-Team entwickelt, ermöglicht es dieses Tool, Kubernetes-Cluster über die Befehlszeile zu managen. Es unterstützt Cluster, die auf AWS und Google Compute Engine (GCE) laufen - Support für VMware vSphere und andere Umgebungen ist in Planung. Neben der Automatisierung des Einrichtungs- und Teardown-Prozesses hilft Kops auch bei anderen Arten der Automatisierung und kann beispielsweise Terraform-Konfigurationen generieren, um ein Cluster mit Terraform neu bereitzustellen.

Kubebox

Diese fortschrittliche Terminal-Konsole für Kubernetes hat mehr als nur eine anerkannte Shell und eine zugehörige API in petto: Kubebox bietet interaktive Anzeigen der Speicher- und CPU-Auslastung, Listen von Pods, laufenden Protokollen und Konfigurationseditoren. Das Beste daran: Kubebox ist als Standalone-App für Linux, Windows und MacOS verfügbar.

Kube-applier

Dieser Kubernetes-Service holt sich deklarative Konfigurationsdateien für einen Kubernetes-Cluster aus einem Git-Repository und wendet sie auf die Pods im Cluster an. Wenn Änderungen an den Definitionsdateien vorgenommen werden, werden sie aus dem Repository abgerufen und auf die betreffenden Pods angewandt. Im Wesentlichen funktioniert Kube-applier wie Googles Skaffold, mit dem Unterschied, dass es für die Verwaltung eines ganzen Kubernetes-Clusters und nicht einer einzelnen Anwendung gedacht ist.

Kube-applier kann Konfigurationsänderungen nach einem festgelegten Zeitplan oder bei Bedarf vornehmen. Dabei protokolliert das Tool sein Verhalten bei jeder Ausführung und bietet Prometheus-kompatible Metriken, um nachvollziehbar zu machen, wie es das Cluster beeinflusst.

Kubehelper

Wer kann schon der Verlockung eines All-in-One-Dashboards widerstehen? Kubehelper fasst eine ganze Reihe gängiger Management-Aufgaben und Datenansichten für Kubernetes in einer einzigen, übersichtlichen Weboberfläche zusammen. Damit können die Benutzer Cluster nach Ressourcen durchsuchen, Befehle ausführen, Sicherheitsdetails prüfen, mit Labels/Anmerkungen/Selektoren arbeiten, Cron-Jobs verwalten und vieles mehr.

Kube-ps1

Nein, hier handelt es sich nicht um einen Kubernetes-Emulator für die Sony PlayStation der ersten Generation. Kube-ps1 ist eine Ergänzung für Bash, die den aktuellen Kubernetes-Kontext und -Namespace in der Eingabeaufforderung anzeigt. Diese und viele weitere Funktionen bekommen Sie auch mit Kube-shell - dann allerdings mit jeder Menge Overhead.

Kube-prompt

Eine weitere minimale, aber nützliche Modifikation der Kubernetes-CLI ist Kube-prompt, mit dem Sie eine Art "interaktive Befehlssitzung" mit dem Kubernetes-Client starten können. Kube-prompt erspart Ihnen für jeden Befehl die Eingabe von kubectl als Präfix und bietet eine Auto-Vervollständigung mit kontextbezogenen Informationen.

Kubespy

Dieses Diagnosewerkzeug aus dem Hause Pulumi lässt Sie Änderungen an einer Kubernetes-Ressource in Echtzeit verfolgen und bietet darüber hinaus eine Art Text-Dashboard zu Übersichtszwecken. So können Sie beispielsweise die Änderungen am Status eines Pods beim Booten verfolgen: Die Pod-Definition wird in Etcd geschrieben, der Pod wird für die Ausführung auf einem Knoten geplant, das Kubelet auf dem Knoten erstellt den Pod, und der Pod wird schließlich als ausgeführt markiert. Kubespy kann als eigenständige Binärdatei oder als Plug-in für Kubectl ausgeführt werden.

Kubeval

Die YAML-Konfigurationsdateien von Kubernetes sind zwar für den Menschen lesbar - was aber nicht bedeutet, dass sie auch von Menschen validiert werden können. Es ist leicht, ein ausgelassenes Komma oder eine versehentliche Fettung zu übersehen. Damit Sie das nicht erst bemerken, wenn es zu spät ist, empfiehlt sich die Verwendung von Kubeval. Das Tool kommt entweder lokal zum Einsatz oder wird in Ihre CI/CD-Pipeline integriert, nimmt eine Kubernetes-YAML-Konfigurationsdefinition auf und meldet deren Gültigkeit zurück. Kubeval kann Output im JSON- oder TAP-Format erzeugen und sogar ohne zusätzliche Eingaben die Quellvorlagen analysieren, auf die in einer Helm-Diagrammkonfiguration verwiesen wird.

Kube-ops-view

Kubernetes verfügt über ein nützliches Dashboard für allgemeines Monitoring, aber die Community experimentiert mit anderen Möglichkeiten, Daten für Administratoren sinnvoll aufzubereiten. Ein solches Experiment ist Kube-ops-view. Das Tool bietet einen umfassenden, grafischen Überblick über mehrere Kubernetes-Cluster und fasst CPU- und Speichernutzung und den Status von Pods in einem Cluster übersichtlich zusammen. Dabei sollten Sie beachten, dass Kube-ops-view ausschließlich der Visualisierung dient.

Mizu

Visualisierung ist der Schlüssel zum Verständnis darüber, was innerhalb und zwischen den Komponenten eines Kubernetes-Clusters vor sich geht. Mizu kümmert sich um letztgenannten Teil und zeigt laufende Protokolle des API-Verkehrs zwischen Microservices für viele gängige Protokolle (HTTP, AMQP, Kafka, Redis) an. Das Tool kann den Traffic aller Pods, einer Teilmenge oder eines bestimmten Pods anzeigen. Der Datenverkehr kann auch anhand von gängigen Begriffen oder Verträgen, die von OpenAPI-Spezifikation vorgegeben werden, validiert werden.

Rio

Dieses Projekt von Rancher Labs implementiert gängige Anwendungsbereitstellungsmuster in Kubernetes, wie zum Beispiel die Continuous Delivery sowie A/B- oder Blue/Green-Deployments in Git. Rio kann eine neue Version Ihrer Anwendung bereitstellen und hilft Ihnen dabei, komplexe Vorgänge wie DNS, HTTPS und Service Meshes zu managen.

Stern und Kubetail

Stern kann aus Kubernetes-Pods und -Containern Outputs mit Farbcodierungen erzeugen (wie mit dem tail-Befehl). Das Tool bietet eine schnelle Möglichkeit, alle Ouputs mehrerer Ressourcen in einen einzigen Stream zu leiten, der auf einen Blick gelesen werden kann. Gleichzeitig ermöglicht die Farbcodierung, die Streams auf einen Blick zu unterscheiden.

Kubetail fasst die Protokolle mehrerer Pods auf ähnliche Weise in einem einzigen Stream zusammen und kennzeichnet die verschiedenen Pods und Container farblich. Kubetail ist jedoch ein Bash-Skript, das lediglich eine Shell benötigt. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.