
Für die effektive Nutzung des Systems ist es wichtig, die Kommandozeilen-Tools zu beherrschen: im Fall von Kubernetes ist das kubectl. Auf der anderen Seite können gut gestaltete und durchdachte grafische Benutzeroberflächen einen Großteil der Routineaufgaben übernehmen und zusätzliche Funktionen bei der Verwaltung von Systemen bieten.größtenIm vergangenen Jahr haben wir eine Übersetzung veröffentlicht
einer kurzen Übersicht über das Web-UI Kubernetes Web View Da wir zahlreiche Kubernetes-Cluster unterschiedlicher Größen betreuen, sind auch wir an der Möglichkeit interessiert, unseren Kunden ein visuelles Arbeitswerkzeug anzubieten. Bei der Auswahl der richtigen Oberfläche waren für uns folgende Funktionen entscheidend:
Da wir zahlreiche Kubernetes-Cluster unterschiedlicher Größen betreuen, sind auch wir an der Möglichkeit interessiert, unseren Kunden ein visuelles Werkzeug anzubieten. Bei der Auswahl der geeigneten Oberfläche waren uns folgende Funktionen besonders wichtig:
- Unterstützung für rollenbasierte Zugriffskontrolle (RBAC);
- Visualisierung des Zustands von Namespaces und grundlegenden Kubernetes-Primitiven (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- Zugriff auf die Befehlszeile innerhalb des Pods;
- Anzeigen von Pod-Protokollen;
- Überprüfen des Pod-Status (
Status beschreiben); - Löschen von Pods.
Andere Funktionen, wie das Anzeigen des Ressourcenverbrauchs (auf Pod-/Controller-/Namespace-Ebene), das Erstellen/Bearbeiten von K8s-Primitiven, sind in unserem Arbeitsablauf nicht relevant.
Die Übersicht beginnt mit dem klassischen Kubernetes Dashboard, das bei uns als Standard angesehen wird. Da die Welt nicht stillsteht (was bedeutet, dass es immer neue GUIs für Kubernetes gibt), werden wir auch über aktuelle Alternativen sprechen und alles in einer vergleichenden Tabelle am Ende des Artikels zusammenfassen.
NB: In der Übersicht werden wir uns nicht mit den bereits behandelten Lösungen wiederholen, , jedoch - um das Gesamtbild zu vervollständigen - sind relevante Optionen aus dieser (K8Dash, Octant, Kubernetes Web View) in die abschließende Tabelle aufgenommen.
1. Kubernetes Dashboard
- ;
- (8000+ Sterne auf GitHub);
- Lizenz: Apache 2.0;
- Kurz gesagt: „Ein universelles Web-Interface für Kubernetes-Cluster. Es ermöglicht den Benutzern, Anwendungen, die im Cluster laufen, zu verwalten und Fehler zu beheben sowie den Cluster selbst zu administrieren.“

Dies ist ein allgemeines Dashboard, das von den Autoren von Kubernetes in der offiziellen Dokumentation betrachtet wird. (obwohl es bereitgestellt wird). Es ist für die Anforderungen des alltäglichen Betriebs und der Fehlersuche von Anwendungen im Cluster konzipiert. Bei uns nutzen wir es als vollwertiges, leichtgewichtiges visuelles Werkzeug, das den Entwicklern den notwendigen und ausreichenden Zugang zum Cluster ermöglicht. Ihre Funktionen decken alle Bedürfnisse ab, die im Rahmen der Nutzung des Clusters auftreten. (in wir haben einige Funktionen des Dashboards demonstriert). Wie leicht zu erraten ist, bedeutet dies, dass es all unseren oben genannten Anforderungen gerecht wird.
Zu den Hauptfunktionen des Kubernetes Dashboards gehören:
- Navigation: Anzeige der wichtigsten K8s-Objekte nach Namensräumen.
- Mit Administratorrechten zeigt das Dashboard Knoten, Namespace und Persistent Volumes an. Für Knoten sind Statistiken zur Speichernutzung, CPU-Zuordnung, Ressourcenverteilung, Metriken, Status, Ereignisse usw. verfügbar.
- Einblick in die Anwendungen, die im Namespace nach Typ (Deployment, StatefulSet usw.) bereitgestellt sind, sowie deren Verbindungen (ReplicaSet, Horizontal Pod Autoscaler), umfassende und personalisierte Statistiken und Informationen.
- Einblick in Dienste und Ingress sowie deren Verbindungen zu Pods und Endpunkten.
- Einblick in Dateiobjekte und Speicher: Persistent Volume und Persistent Volume Claim.
- Einblick und Bearbeitung von ConfigMap und Secret.
- Einblick in die Protokolle.
- Zugriff auf die Kommandozeile in Containern.
Ein wesentlicher Nachteil (allerdings nicht für uns) – es gibt keine Unterstützung für den Betrieb in mehreren Clustern. Das Projekt wird aktiv von der Gemeinschaft weiterentwickelt und unterstützt aktuelle Funktionen mit der Veröffentlichung neuer Versionen und Spezifikationen der Kubernetes-API: Die letzte Version des Dashboards – 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 positioniert sich als vollwertige integrierte Entwicklungsumgebung (IDE) für Kubernetes. Dabei ist sie für die Arbeit mit einer Vielzahl von Clustern und einer großen Anzahl von laufenden Pods optimiert (getestet auf 25.000 Pods).
Hauptmerkmale / Funktionen von Lens:
- Eigenständige Anwendung, die keine Installation innerhalb des Clusters benötigt (genauer gesagt, um alle Metriken zu erhalten, wird Prometheus benötigt, aber dafür kann eine bereits vorhandene Installation verwendet werden). Die ‚Hauptinstallation‘ erfolgt auf einem persönlichen Computer unter Linux, macOS oder Windows.
- Multi-Cluster-Management (unterstützt Hunderte von Clustern).
- Visualisierung des Clusterzustands in Echtzeit.
- Grafiken zur Ressourcennutzung und Trends mit Historie, basierend auf dem integrierten Prometheus.
- Zugriff auf die Befehlszeile von Containern und auf Clusterknoten.
- Vollständige Unterstützung von Kubernetes RBAC.
Aktuelle Version — vom 16. Juni 2020. Die ursprüngliche Version wurde von der Firma Kontena erstellt, während heute das gesamte geistige Eigentum an eine spezielle Organisation übertragen wurde. , genannt „Vereinigung der Cloud-Native-Enthusiasten und Technologen“, die für „die Erhaltung und Verfügbarkeit von Open Source-Software und Produkten von Kontena“ verantwortlich sind.
Lens – das zweitbeliebteste Projekt auf GitHub in der Kategorie GUI für Kubernetes, das nur vom Kubernetes-Dashboard selbst übertroffen wird. Alle anderen Open Source-Lösungen außerhalb der CLI-Kategorie* sind deutlich weniger populär.
* Siehe zu K9s im Bonusteil der Übersicht.
3. Kubernetic
- ;
- ;
- (über 200 GitHub-Sterne);
- Lizenz: proprietär;
- Kurz gesagt: „Clusterverwaltung, die einfach ist“.

Dies ist eine proprietäre Anwendung, die auf einem persönlichen Computer installiert wird (unterstützt werden Linux, macOS, Windows). Die Autoren versprechen, das Kommandozeilenprogramm vollständig zu ersetzen, sodass es keine Notwendigkeit mehr gibt, sich Befehle zu merken, und dies soll die Arbeitsgeschwindigkeit verzehnfachen.
Eine der interessanten Eigenschaften des Tools ist die eingebaute Unterstützung für Helm-Charts, während das Fehlen von Leistungsmetriken für Anwendungen als Nachteil gilt.
Hauptfunktionen von Kubernetic:
- Einfache Anzeige des Clusterzustands. Ein Bildschirm zur Anzeige aller verbundenen Objekte des Clusters und ihrer Abhängigkeiten; roter/grüner Bereitschaftszustand für alle Objekte; Clusterzustandsansicht mit Echtzeitstatusaktualisierung.
- Schnellaktionsschaltflächen zum Löschen und Skalieren von Anwendungen.
- Unterstützung für den Multicluster-Betrieb.
- Einfache Handhabung von Namensräumen.
- Unterstützung für Helm-Charts und Helm-Repositorys (einschließlich privater). Installation und Verwaltung von Charts über die Weboberfläche.
Der aktuelle Produktpreis beträgt eine einmalige Zahlung von 30 Euro für die Nutzung durch eine Person in beliebig vielen Namensräumen und Clustern.
4. Kubevious
- ;
- ;
- (~500 Sterne auf GitHub);
- Lizenz: Apache 2.0
- Kurz gesagt: "Kubevious macht Kubernetes-Cluster, Anwendungs-Konfigurationen und deren Zustand sicher und einfach verständlich."

Die Idee des Projekts besteht darin, ein Werkzeug zu schaffen, das zur Analyse und Fehlersuche von Anwendungs-Konfigurationen, die in einem Cluster bereitgestellt sind, dient. Die Autoren konzentrierten sich zunächst auf die Umsetzung dieser Funktionen und ließen allgemeinere Aspekte für später.
Hauptmerkmale und Funktionen von Kubevious:
- Anwendungsorientierte Clustervisualisierung: Verknüpfte Objekte werden im Interface gruppiert und in einer Hierarchie angeordnet.
- Anschauliche Darstellung von Abhängigkeiten in Konfigurationen und den kaskadierenden Auswirkungen ihrer Änderungen.
- Anzeige von Konfigurationsfehlern im Cluster: falsche Verwendung von Labels, fehlende Ports usw. (Übrigens, wenn Sie an diesem Feature interessiert sind, beachten Sie , über das wir .)
- Zusätzlich zum vorherigen Punkt — die Erkennung potenziell gefährlicher Container ist verfügbar, d.h. Container mit zu hohen Berechtigungen (Attribute
hostPID,hostNetwork,hostIPC, Mountingdocker.sockund Ähnliches). - Ein fortgeschrittenes Suchsystem für den Cluster (nicht nur nach Objektnamen, sondern auch nach deren Eigenschaften).
- Tools zur Kapazitätsplanung und Ressourcenoptimierung.
- Eingebaute "Zeitmaschine" (Möglichkeit, frühere Änderungen an der Konfiguration von Objekten zu sehen).
- RBAC-Verwaltung mithilfe einer zusammenfassenden, vernetzten Tabelle aus Roles, RoleBindings und 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 die vorherigen Versionen oft veröffentlicht wurden, hat die letzte Veröffentlichung ( vom 15. April 2020) das anfängliche Entwicklungstempo hinter sich gelassen. Wahrscheinlich liegt das an der geringen Anzahl von Mitwirkenden: Im Verlauf des Repositories gab es nur 4, und die gesamte praktische Arbeit wird von einer Person durchgeführt.
5. Kubewise
- ;
- Lizenz: proprietär (wird Open Source);
- Kurz gesagt: „Einfacher plattformübergreifender Client für Kubernetes“.

Ein neues Produkt von VMware, das ursprünglich im Rahmen eines internen Hackathons (im Juni 2019) entwickelt wurde. Es wird auf einem persönlichen Computer installiert und basiert auf (unterstützt werden Linux, macOS und Windows) und erfordert kubectl in Version 1.14.0 oder höher.
Die Hauptfunktionen von Kubewise:
- Interaktive Benutzeroberfläche mit den am häufigsten verwendeten Entitäten von Kubernetes: Knoten, Namespaces usw.
- Unterstützung mehrerer kubeconfig-Dateien für unterschiedliche Cluster.
- Terminal mit der Möglichkeit, Umgebungsvariablen festzulegen.
KUBECONFIG. - Generierung von benutzerdefinierten kubeconfig-Dateien für den angegebenen Namespace.
- Erweiterte Sicherheitsfunktionen (RBAC, Passwörter, Dienstkonten).
Das Projekt hat bisher nur eine Veröffentlichung – die Version vom 26. November 2019. Die Autoren hatten geplant, sie direkt als Open Source herauszugeben, konnten dies jedoch aufgrund interner Probleme (nicht technischer Natur) nicht. Stand Mai 2020 arbeiten die Autoren an der nächsten Veröffentlichung und sollen gleichzeitig den Prozess der Codefreigabe initiieren.
6. OpenShift Console
- ;
- (~150 Sterne auf GitHub);
- Lizenz: Apache 2.0;
- Kurz gesagt: „UI für OpenShift-Cluster“.

Obwohl dieses Web-Interface Teil des OpenShift-Distributionspakets ist (es wird dort mit Hilfe von ), haben die Autoren Die OpenShift Console entwickelt sich schon lange und hat daher viele Funktionen integriert. Hier sind die wichtigsten:
Geteilte Benutzeroberfläche – zwei „Perspektiven“ der Console-Funktionen: für Administratoren und für Entwickler. Der Modus
- Developer perspective Entwicklerperspektive gruppiert Objekte in einer für Entwickler verständlicheren Weise (nach Anwendungen) und orientiert die Benutzeroberfläche an der Lösung typischer Aufgaben wie Anwendungs-Deployments, Statusverfolgung von Builds/Deployments und sogar Codebearbeitung über Eclipse Che.
- Verwaltung von Workloads, Netzwerk, Speicher und Zugriffsrechten.
- Logische Trennung von Workloads nach Projekten und Anwendungen. In einer der letzten Versionen – v4.3 – speziell Projekt-Dashboard, das gewohnte Daten anzeigt (Anzahl und Status von Deployments, Pods usw.; Ressourcenverbrauch und andere Metriken) im Kontext von Projekten.
- Echtzeit-Statusanzeige des Clusters, von Änderungen (Ereignissen), die darin aufgetreten sind; Protokolle einsehen.
- Überwachung von Daten, basierend auf Prometheus, Alertmanager und Grafana.
- Verwaltung von Operatoren, die in .
- Verwaltung von Builds, die über Docker (aus dem angegebenen Repository mit Dockerfile) ausgeführt werden, oder beliebige externe Dienstprogramme.
NB: Wir haben uns entschieden, andere Kubernetes-Distributionen nicht zu vergleichen (zum Beispiel das deutlich weniger bekannte Obwohl die grafische Benutzeroberfläche sehr fortschrittlich sein kann, ist sie in der Regel Teil eines integrierten Stacks eines großen Systems. Sollten Ihnen jedoch Lösungen fehlen, die in einer Vanilla-Installation von K8s voll funktionsfähig sind, lassen Sie es uns in den Kommentaren wissen.
Bonus
1. Portainer auf Kubernetes in der Beta-Phase
- ;
- (~100 Sterne auf GitHub);
- Lizenz: Zlib(?) (so wie beim Hauptprojekt).
Ein Projekt des Portainer-Teams, das die gleichnamige beliebte Schnittstelle für die Arbeit mit Docker entwickelt hat. Da sich das Projekt in der frühen Entwicklungsphase befindet (erste und einzige Beta-Version vom 16. April 2020), haben wir seine Funktionen nicht bewertet. Vielleicht wird es jedoch viele interessieren: Wenn das auf Sie zutrifft, folgen Sie den Entwicklungen. (16. April 2020), haben wir die Funktionen nicht bewertet. Möglicherweise wird es jedoch für viele von Interesse sein: Wenn das auf Sie zutrifft, verfolgen Sie die Entwicklungen.
2. IcePanel
- ;
- Lizenz: proprietär;
- Kurz gesagt: "Visueller Editor für Kubernetes".

Diese junge Desktop-Anwendung zielt darauf ab, die Ressourcen von Kubernetes in Echtzeit zu visualisieren und über eine einfache Drag & Drop-Oberfläche zu verwalten. Derzeit werden Pods, Services, Deployments, StatefulSets, PersistentVolumes, PersistentVolumeClaims, ConfigMaps und Secrets unterstützt. Bald soll auch die Unterstützung für Helm hinzugefügt werden. Die Hauptnachteile sind die Geschlossenheit des Codes (seine Veröffentlichung wird erwartet. ) und fehlende Unterstützung für Linux (bisher sind nur Versionen für Windows und macOS verfügbar, was jedoch wahrscheinlich nur eine Frage der Zeit ist).
3. k9s
- ;
- ;
- (~7700 GitHub-Sterne);
- Lizenz: Apache 2.0;
- Kurz gesagt: "Konsolenoberfläche für Kubernetes, die eine stilvolle Verwaltung des Clusters ermöglicht."

Das Tool fand nur in der Bonussektion des Berichts Erwähnung, weil es eine konsolenbasierte GUI bietet. Die Entwickler haben jedoch das Beste aus dem Terminal herausgeholt und nicht nur eine benutzerfreundliche Schnittstelle, sondern auch 6 vordefinierte Designs, ein umfangreiches System von Tastenkombinationen und Aliassen für Befehle angeboten. Ihr gründlicher Ansatz beschränkte sich nicht nur auf das Aussehen: Die Möglichkeiten von k9s sind beeindruckend: Ressourcenverwaltung, Anzeige des Clusterstatus, Ausgabe von Ressourcen in einer hierarchischen Darstellung mit Abhängigkeiten, Log-Ansicht, Unterstützung für RBAC, Erweiterungsmöglichkeiten durch Plugins… Das alles kam in der breiten K8s-Community gut an: Die Anzahl der GitHub-Sterne des Projekts steht nahezu gleichauf mit dem offiziellen Kubernetes Dashboard!
4. Anwendungsmanagement-Panels
Abschließend möchten wir eine separate Mini-Kategorie vorstellen. Hierbei handelt es sich um zwei Weboberflächen, die nicht für das umfassende Management von Kubernetes-Clustern gedacht sind, sondern für die Verwaltung der Anwendungen, die dort bereitgestellt werden.
Wie bekannt ist, zählt Helm zu den ausgereiftesten und am weitesten verbreiteten Werkzeugen für die Bereitstellung komplexer Anwendungen in Kubernetes. Im Laufe seiner Existenz sind zahlreiche Pakete (Helm Charts) entstanden, die eine einfache Bereitstellung ermöglichen. Daher ist es nur logisch, dass auch passende visuelle Werkzeuge entstehen, die die Verwaltung des Lebenszyklus der Charts ermöglichen.
4.1. Monocular
- (1300+ Sterne auf GitHub);
- Lizenz: Apache 2.0;
- Kurz gesagt: „Eine Webanwendung zur Suche und Entdeckung von Helm-Charts in zahlreichen Repositories. Sie bildet die Grundlage für das Helm Hub-Projekt.“

Diese Entwicklung von den Machern von Helm wird in Kubernetes installiert und funktioniert innerhalb eines Clusters, um die gestellte Aufgabe zu erfüllen. Derzeit wird das Projekt jedoch kaum noch weiterentwickelt. Sein Hauptzweck ist die Unterstützung des Bestehens von Helm Hub. Für andere Anliegen empfehlen die Autoren Kubeapps (siehe weiter unten) oder den Red Hat Automation Broker (Teil von OpenShift, wird jedoch ebenfalls nicht weiterentwickelt).
4.2. Kubeapps
- ;
- ;
- (~2100 Sterne auf GitHub);
- Lizenz: Apache 2.0
- Kurz gesagt: „Ihr Dashboard für Kubernetes“.

Ein Produkt von Bitnami, das ebenfalls im Kubernetes-Cluster installiert wird, jedoch von Monocular abweicht, da es ursprünglich auf die Arbeit mit privaten Repositories ausgerichtet ist.
Wichtige Funktionen und Merkmale von Kubeapps:
- Durchsuchen und installieren von Helm-Charts aus Repositories.
- Überprüfung, Aktualisierung und Entfernung von auf Helm basierenden Anwendungen, die im Cluster installiert sind.
- Unterstützung für die Nutzung von benutzerdefinierten und privaten Chart-Repositories (unterstützt ChartMuseum und JFrog Artifactory).
- Durchsuchen und Arbeiten mit externen Diensten — aus Service Catalog und Service Brokers.
- Veröffentlichung installierter Anwendungen mittels des Service Catalog Bindings-Mechanismus.
- Unterstützung von Authentifizierung und Berechtigungsmanagement durch RBAC.
Zusammenfassungstabelle
Im Folgenden finden Sie eine Zusammenstellungstabelle, 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 Benutzeroberflächen für Kubernetes sind ein ziemlich spezielles und junges Segment. Es entwickelt sich jedoch sehr dynamisch weiter: Man findet sowohl ausgereifte Lösungen als auch ganz neue Ansätze, die noch viel Potenzial haben. Diese bieten verschiedene Anwendungsoptionen und verfügen über Funktionen sowie Designs, die fast jedem Geschmack gerecht werden. Wir hoffen, dass dieser Überblick Ihnen hilft, das beste Tool auszuwählen, das Ihre aktuellen Anforderungen 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
