
Für das vollständige Arbeiten mit dem System ist das Wissen über die Kommandozeilen-Tools wichtig: im Fall von Kubernetes ist das kubectl. Andererseits können gut gestaltete, durchdachte grafische Benutzeroberflächen einen Großteil der gängigen Aufgaben übernehmen und zusätzliche Möglichkeiten bei der Nutzung der Systeme eröffnen.oIm letzten Jahr haben wir die Übersetzung einer kleinen Übersicht über die web UI für Kubernetes veröffentlicht, die an die Ankündigung der Web-Oberfläche angeknüpft war.
Der Autor dieses Artikels und des Tools ist Henning Jacobs von der Firma Zalando — er hat die Neuheit als "kubectl für das Web" positioniert. Er wollte ein Tool mit bequemen Möglichkeiten zur Interaktion im Format des technischen Supports schaffen (zum Beispiel, um Probleme schnell über einen Weblink zu zeigen) und um auf Vorfälle zu reagieren, Probleme in vielen Clustern gleichzeitig zu suchen. Sein Werk wird auch heute noch weiterentwickelt (hauptsächlich durch den Autor selbst). Unterstützung der Benutzerrechteverwaltung (RBAC); Visualisierung des Zustands von Namespaces und Standardprimitive von Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
Zugang zur Kommandozeile innerhalb von Pods erhalten;
- Protokolle von Pods anzeigen;
- Zustand von Pods anzeigen (
- describe status
- Pods löschen.
- Andere Funktionen, wie die Anzeige der genutzten Ressourcen (in Bezug auf Pods/Kontroller/Namensräume), die Erstellung/Bearbeitung von K8s-Primitive, sind in unserem Arbeitsprozess nicht relevant.
Wir beginnen die Übersicht mit dem klassischen Kubernetes Dashboard, das bei uns als Standard gilt. Da die Welt sich nicht stillstellt (und somit immer neue GUIs für Kubernetes entstehen), werden wir auch über die aktuellen Alternativen berichten und alles in einer Vergleichstabelle am Ende des Artikels zusammenfassen.); - : In der Übersicht werden wir nicht mit jenen Lösungen wiederholen, die bereits in
besprochen wurden, jedoch — für ein vollständiges Bild — sind relevante Optionen aus dieser (K8Dash, Octant, Kubernetes Web View) in die endgültige Tabelle aufgenommen.
1. Kubernetes Dashboard
NBDokumentationsseite (8000+ Sterne auf GitHub);
Lizenz: Apache 2.0;
- ;
- (8000+ Sterne auf GitHub);
- Lizenz: Apache 2.0;
- Kurz gesagt: „Universelle Webschnittstelle für Kubernetes-Cluster. Sie ermöglicht es Nutzern, Anwendungen im Cluster zu verwalten und Probleme zu beheben sowie den Cluster selbst zu verwalten.“

Es ist ein vielseitiges Dashboard, das von den Kubernetes-Autoren in der offiziellen Dokumentation betrachtet wird (obwohl es auch bereitgestellt wird). Es ist für die tägliche Nutzung und Fehlersuche von Anwendungen im Cluster konzipiert. Bei uns verwenden wir es als vollwertiges, leichtgewichtiges visuelles Werkzeug, das Entwicklern den notwendigen und ausreichenden Zugang zum Cluster bietet. Ihre Funktionen decken alle Bedürfnisse ab, die im Verlauf der Nutzung des Clusters entstehen (in wir haben einige Funktionen des Dashboards demonstriert). Wie leicht zu erraten, bedeutet das, dass es all unseren oben genannten Anforderungen entspricht.
Zu den Hauptfunktionen des Kubernetes Dashboards gehören:
- Navigation: Ansicht der grundlegenden K8s-Objekte in Bezug auf Namespaces.
- Bei Vorliegen von Administratorrechten zeigt das Dashboard Knoten, Namespaces und Persistent Volumes an. Für Knoten sind Statistiken über die Speichernutzung, CPU, Ressourcenzuteilung, Metriken, Status, Ereignisse usw. verfügbar.
- Anzeige der im Namespace bereitgestellten Anwendungen nach Typ (Deployment, StatefulSet usw.), ihrer Beziehungen (ReplicaSet, Horizontal Pod Autoscaler), Gesamt- und personalisierter Statistiken und Informationen.
- Anzeige von Services und Ingress sowie deren Beziehungen zu Pods und Endpunkten.
- Ansicht von Dateispeichern und Speicherorten: Persistent Volume und Persistent Volume Claim.
- Ansicht und Bearbeitung von ConfigMap und Secret.
- Anzeige von Protokollen.
- Zugriff auf die Befehlszeile in Containern.
Ein wesentlicher Nachteil (jedoch nicht für uns) – es gibt keine Unterstützung für Multicluster-Betrieb. Das Projekt wird aktiv von der Community weiterentwickelt und unterstützt aktuelle Funktionen mit den neuen Versionen und Spezifikationen der Kubernetes-API: die letzte Version des Dashboards ist vom 22. Mai 2020 – wurde auf Kompatibilität mit Kubernetes 1.18 getestet.
2. Lens
- ;
- ;
- (~4800 Sterne auf GitHub);
- Lizenz: MIT;
- Kurz gesagt: „Kubernetes IDE.“

Das Projekt wird als vollwertige integrierte Entwicklungsumgebung (IDE) für Kubernetes positioniert. Es ist für die Arbeit mit mehreren Clustern und einer großen Anzahl von darin betriebenen Pods optimiert (getestet mit 25.000 Pods).
Hauptmerkmale/Funktionen von Lens:
- Autonome Anwendung, die keine Installation innerhalb des Clusters erfordert (genauer gesagt, um alle Metriken abzurufen, wird Prometheus benötigt, aber dafür kann auch eine bereits vorhandene Installation verwendet werden). Die „Hauptinstallation“ erfolgt auf einem Desktop-Computer unter Linux, macOS oder Windows.
- Multi-Cluster-Verwaltung (unterstützt Hunderte von Clustern).
- Visualisierung des Clusterzustands in Echtzeit.
- Grafiken zur Ressourcennutzung und Trends mit einer Historie basierend auf integriertem Prometheus.
- Zugang zur Befehlszeile von Containern und Knoten im Cluster.
- Vollständige Unterstützung für Kubernetes RBAC.
Aktuelle Version — vom 16. Juni 2020. Die ursprüngliche Version wurde von der Firma Kontena erstellt, und heute sind alle geistigen Eigentumsrechte an eine spezielle Organisation , die als „Vereinigung von Cloud-Native-Profis und Technikern“ bezeichnet wird, verantwortlich für „die Erhaltung und Verfügbarkeit von Open Source-Software und Produkten von Kontena“.
Lens ist das zweitbeliebteste Projekt auf GitHub in der Kategorie GUI für Kubernetes, das nur hinter dem Kubernetes-Dashboard zurückbleibt. Alle anderen Open-Source-Lösungen außerhalb der CLI*-Kategorie sind erheblich weniger beliebt.
* Siehe zu K9s im Bonusabschnitt der Übersicht.
3. Kubernetic
- ;
- ;
- (200+ Sterne auf GitHub);
- Lizenz: proprietär;
- Kurz gesagt: „Einfache Clusterverwaltung“.

Es handelt sich um eine proprietäre Anwendung, die auf einem Desktop-Computer installiert wird (unterstützt Linux, macOS, Windows). Die Autoren versprechen eine vollständige Ersetzung des Befehlszeilenwerkzeugs und damit die Notwendigkeit, Befehle zu merken, sowie eine zehnfache Steigerung der Arbeitsgeschwindigkeit.
Eine der interessanten Funktionen des Tools ist die integrierte Unterstützung für Helm-Charts, während ein Nachteil das Fehlen von Leistungsmetriken für Anwendungen ist.
Hauptfunktionen von Kubernetic:
- Benutzerfreundliche Darstellung des Clusterzustands. Ein Bildschirm zur Anzeige aller verbundenen Objekte des Clusters und ihrer Abhängigkeiten; rot/grün Status für alle Objekte; Modus zur Anzeige des Clusterzustands mit Echtzeit-Statusaktualisierungen.
- Schnelltasten zum Löschen und Skalieren von Anwendungen.
- Unterstützung für die Multi-Cluster-Arbeit.
- Einfache Handhabung von Namespaces.
- Unterstützung von Helm-Charts und Helm-Repositories (einschließlich privater). Installation und Verwaltung von Charts über die Web-Oberfläche.
Der aktuelle Preis für das Produkt beträgt eine einmalige Zahlung von 30 Euro für die Nutzung durch eine Person für beliebig viele Namespaces und Cluster.
4. Kubevious
- ;
- ;
- (~500 Sterne auf GitHub);
- Lizenz: Apache 2.0
- Kurz gesagt: „Kubevious macht Kubernetes-Cluster, Anwendungs-Konfiguration und die Überwachung ihres Zustands sicher und einfach verständlich.“

Die Idee des Projekts besteht darin, ein Werkzeug zu schaffen, das für die Analyse und Debugging von Anwendungs-Konfigurationen, die in einem Cluster bereitgestellt werden, entwickelt wurde. Die Autoren konzentrierten sich zunächst auf die Implementierung dieser Funktionen und ließen allgemeinere Dinge später.
Hauptmerkmale und Funktionen von Kubevious:
- Visualisierung des Clusters auf anwendungsorientierte Weise: Verknüpfte Objekte im Interface werden gruppiert und in einer Hierarchie angeordnet.
- Eindeutige Darstellung der Abhängigkeiten in Konfigurationen und der kaskadierenden Folgen ihrer Änderungen.
- Darstellung von Konfigurationsfehlern im Cluster: falsche Verwendung von Labels, fehlende Ports usw. (Übrigens, wenn Sie an dieser Funktion interessiert sind, beachten Sie , über die wir .)
- Zusätzlich zum vorherigen Punkt ist die Erkennung potenziell gefährlicher Container verfügbar, d.h. solcher mit zu großen Berechtigungen (Attribute
hostPID,hostNetwork,hostIPC, Einbindung vondocker.sockusw.). - Erweiterte Suchsystem für den Cluster (nicht nur nach Objektnamen, sondern auch nach ihren Eigenschaften).
- Werkzeuge zur Kapazitätsplanung und Ressourcenschonung.
- Integrierte „Zeitmaschine“ (Möglichkeit, frühere Änderungen an Objekten zu sehen).
- RBAC-Management durch eine zusammenfassende verknüpfte Tabelle aus Roles, RoleBindings, ServiceAccounts.
- Funktioniert nur mit einem Cluster.
Das Projekt hat eine sehr kurze Geschichte (die erste Veröffentlichung fand am 11. Februar 2020 statt) und es scheint, als würde sich eine Phase der Stabilisierung oder Verlangsamung im Wachstum abzeichnen. Während frühere Versionen häufig veröffentlicht wurden, ist die letzte Veröffentlichung ( vom 15. April 2020) vom ursprünglichen Entwicklungstempo zurückgeblieben. Wahrscheinlich hängt dies mit der geringen Anzahl von Mitwirkenden zusammen: Im Verlauf des Repositories gibt es nur 4, und die gesamte praktische Arbeit wird von einer Person durchgeführt.
5. Kubewise
- ;
- Lizenz: proprietär (wird Open Source);
- Kurz gesagt: „Ein einfaches plattformübergreifendes Client für Kubernetes“.

Ein neues Produkt von VMware, ursprünglich während eines internen Hackathons (im Juni 2019) entwickelt. Es wird auf dem persönlichen Computer installiert und basiert auf (unterstützt werden Linux, macOS und Windows) und erfordert kubectl in der Version nicht niedriger als v1.14.0.
Hauptfunktionen von Kubewise:
- Interaktion im Interface mit den am häufigsten verwendeten Kubernetes-Entitäten: Knoten, Namespaces usw.
- Unterstützung für mehrere kubeconfig-Dateien für verschiedene Cluster.
- Terminal mit der Möglichkeit, Umgebungsvariablen festzulegen
KUBECONFIG. - Erstellung von benutzerdefinierten kubeconfig-Dateien für den angegebenen Namespace.
- Erweiterte Sicherheitsfunktionen (RBAC, Passwörter, Servicekonten).
Derzeit gibt es nur einen Release des Projekts — Version vom 26. November 2019. Die Autoren hatten geplant, es sofort als Open Source zu veröffentlichen, konnten dies jedoch aufgrund interner Probleme (unabhängig von technischen Fragen) nicht umsetzen. Stand Mai 2020 arbeiten die Autoren an der nächsten Version und sollten gleichzeitig mit dieser den Prozess der Codeöffnungen einleiten.
6. OpenShift Console
- ;
- (~150 Sterne auf GitHub);
- Lizenz: Apache 2.0;
- Kurz gesagt: „UI für OpenShift-Cluster“.

Obwohl dieses Web-Interface Teil der OpenShift-Distribution ist (dort wird es über einen ) installiert, haben die Autoren Die OpenShift Console entwickelt sich schon lange, daher hat sie viele Funktionen integriert. Wir erwähnen die wichtigsten:
Geteilter Ansatz im Interface — zwei „Perspektiven“ der verfügbaren Funktionen in der Konsole: für Administratoren und für Entwickler. Der Modus
- Developer perspective gruppiert Objekte in einer für Entwickler verständlicheren Form (nach Anwendungen) und orientiert das Interface an der Lösung typischer Aufgaben wie Anwendungseinsatz, Verfolgung des Status von Builds/Einsätzen und sogar Codebearbeitung über Eclipse Che. Verwaltung von Workloads, Netzwerken, Speichern und Zugriffsrechten.
- Logische Trennung für Workloads in Projekte und Anwendungen. In einer der letzten Versionen — v4.3 —
- ein spezielles Project dashboard , das gewohnte Daten (Anzahl und Status von Deployments, Pods usw.; Ressourcennutzung und weitere Kennzahlen) in Bezug auf Projekte anzeigt., die gewohnte Daten (Anzahl und Status von Deployments, Pods usw.; Ressourcennutzung und andere Metriken) im Projektzuschnitt anzeigt.
- Echtzeit-Aktualisierung des Zustands des Clusters, aufgetretene Änderungen (Ereignisse); Protokolle anzeigen.
- Überwachung von Daten, basierend auf Prometheus, Alertmanager und Grafana.
- Management von Betreibern, die in .
- Verwaltung von Builds, die über Docker (aus dem angegebenen Repository mit Dockerfile) ausgeführt werden, oder beliebigen externen Dienstprogrammen.
NB: Wir haben andere nicht in den Vergleich aufgenommen Kubernetes-Distributionen (zum Beispiel die weniger bekannte ): obwohl die Benutzeroberfläche darin sehr fortschrittlich sein kann, ist sie normalerweise Teil eines integrierten Stacks eines großen Systems. Wenn Sie jedoch der Meinung sind, dass Lösungen, die in einer Vanilla-Installation von K8s vollständig funktionieren, fehlen, lassen Sie es uns in den Kommentaren wissen.
Bonus
1. Portainer on Kubernetes in der Beta-Version
- ;
- (~100 Sterne auf GitHub);
- Lizenz: Zlib(?) (so wie das Mutterprojekt).
Projekt des Portainer-Teams, das die gleichnamige beliebte Schnittstelle für die Arbeit mit Docker entwickelt hat. Da sich das Projekt noch in der frühen Entwicklungsphase befindet (erste und einzige Beta-Version am 16. April 2020), haben wir seine Funktionen nicht bewertet. Doch möglicherweise könnte es viele interessieren: wenn das auf Sie zutrifft, verfolgen Sie die Entwicklung.
2. IcePanel
- ;
- Lizenz: proprietär;
- Kurz gesagt: "Visueller Editor für Kubernetes".

Diese junge Desktop-Anwendung soll Ressourcen von Kubernetes in Echtzeit visualisieren und mit einer einfachen Benutzeroberfläche im Drag-and-Drop-Stil verwalten. Derzeit werden Pods, Services, Deployments, StatefulSets, PersistentVolumes, PersistentVolumeClaims, ConfigMaps und Secrets unterstützt. Bald wird Unterstützung für Helm versprochen. Die Hauptnachteile sind die nicht offene Quelle (die "in irgendeiner Form" geöffnet werden soll) und die fehlende Unterstützung für Linux (derzeit sind nur Versionen für Windows und macOS verfügbar, obwohl das wahrscheinlich auch nur eine Frage der Zeit ist). (~7700 Sterne auf GitHub);
Kurz gesagt: "Konsolenoberfläche für Kubernetes, die es ermöglicht, den Cluster stilvoll zu verwalten".
- ;
- ;
- (~7700 Sterne auf GitHub);
- Lizenz: Apache 2.0;
- Kurz gesagt: „Konsolenschnittstelle für Kubernetes, die eine stilvolle Verwaltung des Clusters ermöglicht.“

Das Tool erschien nur im Bonusabschnitt des Reviews, da es eine konsolenbasierte GUI bietet. Doch die Autoren haben das Maximum aus dem Terminal herausgeholt, indem sie nicht nur eine benutzerfreundliche Oberfläche und sechs vordefinierte Designs anboten, sondern auch ein umfangreiches System von Tastenkombinationen und Aliasen für Befehle einführten. Ihr gründlicher Ansatz beschränkte sich nicht nur auf die Optik: Die Fähigkeiten von k9s sind beeindruckend: Ressourcenmanagement, Clusterstatusanzeige, Ausgabe von Ressourcen in hierarchischer Darstellung mit Abhängigkeiten, Protokollansicht, Unterstützung von RBAC, Erweiterbarkeit durch Plugins… All dies fand großen Anklang in der breiten K8s-Community: Die Anzahl der GitHub-Sterne des Projekts konkurriert nahezu mit dem offiziellen Kubernetes-Dashboard!
4. Anwendungsmanagement-Dashboards
Und zum Abschluss des Reviews – eine separate Mini-Kategorie. Darin befinden sich zwei Weboberflächen, die nicht für das umfassende Management von Kubernetes-Clustern gedacht sind, sondern für die Verwaltung dessen, was in diesen bereitgestellt wird.
Wie bekannt ist, gehört Helm zu den ausgereiftesten und verbreitetsten Mitteln für die Bereitstellung komplexer Anwendungen in Kubernetes. Seit seiner Existenz sind zahlreiche Pakete (Helm-Charts) für eine einfache Bereitstellung . Daher ist das Auftauchen entsprechender visueller Mittel, die die Lebenszyklen der Charts verwalten, durchaus logisch.
4.1. Monocular
- (über 1300 GitHub-Sterne);
- Lizenz: Apache 2.0;
- Kurz gesagt: "Eine Webanwendung zur Suche und Entdeckung von Helm-Charts in zahlreichen Repositories. Dient als Grundlage für das Projekt Helm Hub."

Diese Entwicklung der Helm-Autoren wird in Kubernetes installiert und arbeitet innerhalb eines Clusters, um die gestellte Aufgabe zu erfüllen. Derzeit wird das Projekt jedoch kaum weiterentwickelt. Sein Hauptzweck ist die Unterstützung der Existenz von Helm Hub. Für andere Bedürfnisse empfehlen die Autoren Kubeapps (siehe unten) oder Red Hat Automation Broker (Teil von OpenShift, wird aber auch nicht mehr aktiv entwickelt).
4.2. Kubeapps
- ;
- ;
- (ca. 2100 GitHub-Sterne);
- Lizenz: Apache 2.0
- Kurz gesagt: "Ihr Anwendungs-Dashboard für Kubernetes."

Ein Produkt von Bitnami, das ebenfalls im Kubernetes-Cluster installiert wird, sich jedoch von Monocular durch den ursprünglichen Fokus auf die Arbeit mit privaten Repositories unterscheidet.
Wichtige Funktionen und Merkmale von Kubeapps:
- Durchsuchen und Installieren von Helm-Charts aus Repositories.
- Prüfen, Aktualisieren und Entfernen von auf Helm basierenden Anwendungen, die im Cluster installiert sind.
- Unterstützung für die Arbeit mit benutzerdefinierten und privaten Chart-Repositorys (unterstützt ChartMuseum und JFrog Artifactory).
- Ansicht und Arbeit mit externen Diensten — aus dem Servicekatalog und den Service Brokers.
- Veröffentlichung installierter Anwendungen über Mechanismen der Servicekatalog-Bindings.
- Unterstützung von Authentifizierung und Berechtigung durch RBAC.
Zusammenfassungstabelle
Nachfolgend finden Sie eine Übersichtstabelle, in der wir versucht haben, die Hauptfunktionen der bestehenden visuellen Schnittstellen zusammenzufassen und zu aggregieren, um den Vergleich zu erleichtern:
(Die Online-Version der Tabelle .)
Fazit
Grafische Schnittstellen für Kubernetes sind ein recht spezifisches und junges Segment. Dennoch entwickelt es sich sehr aktiv: Bereits jetzt gibt es sowohl ausgereifte Lösungen als auch ganz neue, die noch Entwicklungspotenzial haben. Sie sind auf verschiedene Anwendungsvarianten ausgerichtet und bieten Funktionen sowie ein Erscheinungsbild, das praktisch jedem Geschmack gerecht wird. Wir hoffen, dass dieser Überblick Ihnen hilft, ein Werkzeug auszuwählen, das Ihre aktuellen Bedürfnisse am besten erfüllt.
P.S.
Vielen Dank für die Daten zur OpenShift-Konsole für die Vergleichstabelle!
Lesen Sie auch in unserem Blog:
- «»;
- «»;
- «»;
- «».
Quelle: habr.com
