Iwwersiicht vun GUIs fir Kubernetes

Iwwersiicht vun GUIs fir Kubernetes

Fir voll mam System ze schaffen, ass et wichteg Kommandozeil Utilities ze kennen: am Fall vu Kubernetes ass dat kubectl. Op der anerer Säit kënne gutt entworf, gutt duerchduechte GUIs Leeschtungeоmeescht vun den üblechen Aufgaben an opmaachen zousätzlech Méiglechkeeten wann Betribssystemer.

D'lescht Joer hu mir eng Iwwersetzung publizéiert e kuerzen Iwwerbléck iwwer Web UI fir Kubernetes, fir d'Ukënnegung vun der Web Interface gewidmet Kubernetes WebView. Den Auteur vun deem Artikel an dem Utility selwer, Henning Jacobs vun der Zalando Firma, huet dat neit Produkt als "kubectl fir de Web" positionéiert. Hie wollt en Tool mat praktesche Fäegkeeten fir Interaktioun an engem technesche Supportformat erstellen (zum Beispill séier e Problem mat engem Weblink ze weisen) a fir op Tëschefäll ze reagéieren, no Probleemer a ville Cluster zur selwechter Zäit ze sichen. Säi Brainchild gëtt haut nach entwéckelt (haaptsächlech vum Auteur selwer).

Déngscht vill Kubernetes Cluster vu verschiddene Gréissten, mir sinn och interesséiert an der Fähegkeet Clienten mat engem visuellen Aarbecht Outil ze bidden. Wann Dir e passenden Interface auswielt, waren déi folgend Features Schlëssel fir eis:

  • Ënnerstëtzung fir Differenzéierung vun de Benotzerrechter (RBAC);
  • Visualiséierung vum Nummraumstaat a Standard Kubernetes Primitiv (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • Zougang zu der Kommandozeil am Pod ze kréien;
  • Pod Logbicher kucken;
  • de Status vun de Pods kucken (describe status);
  • ewechzehuelen pods.

Aner Funktiounen, sou wéi verbrauchte Ressourcen kucken (vu Pods / Controller / Nummraim), K8s Primitiv erstellen / änneren, sinn net relevant an eisem Workflow.

Mir starten d'Iwwerpréiwung mam klassesche Kubernetes Dashboard, deen als eise Standard ugeholl gëtt. Well d'Welt net stoe bleift (wat heescht datt Kubernetes ëmmer méi nei GUIs huet), wäerte mir och iwwer seng aktuell Alternativen schwätzen, alles an enger vergläichender Tabell um Enn vum Artikel resuméieren.

NB: An der Iwwerpréiwung wäerte mir déi Léisungen net widderhuelen, déi scho berücksichtegt goufen leschten Artikel, awer - fir d'Vollständegkeet - déi relevant Optiounen dovun (K8Dash, Octant, Kubernetes Web View) sinn an der Finale Dësch abegraff.

1. Kubernetes Dashboard

  • Dokumentatioun Säit;
  • repository (8000+ GitHub Stären);
  • Lizenz: Apache 2.0;
  • Kuerz gesot: "Eng universell Webinterface fir Kubernetes Cluster. Et erlaabt d'Benotzer d'Applikatiounen ze managen an ze léisen, déi an engem Cluster lafen, wéi och de Cluster selwer verwalten.

Iwwersiicht vun GUIs fir Kubernetes

Dëst ass en allgemeng Zweck Panel vun de Kubernetes Autoren an der offizieller Dokumentatioun ofgedeckt (awer net deployable Standard). Et ass geduecht fir d'Bedierfnesser vun deeglecher Operatioun an Debugging vun Uwendungen an engem Cluster. Mir benotzen et hei als e vollwäertegt liicht visuellt Tool dat eis erlaabt Entwéckler den néidegen a genuch Zougang zum Cluster ze bidden. Seng Fäegkeeten decken all hir Bedierfnesser déi entstinn am Prozess vum Cluster ze benotzen (in dësen Artikel mir hunn e puer Features vum Panel demonstréiert). Wéi Dir kënnt einfach virstellen, heescht dat datt et all eis Ufuerderunge entsprécht uewen opgezielt.

Ënnert den Haaptfeatures vum Kubernetes Dashboard:

  • Navigatioun: Kuckt d'Haapt K8s Objete vum Nummraum.
  • Wann Dir Administrator Rechter hutt, weist de Panel Noden, Nummraim a Persistent Volumen. Statistiken iwwer Erënnerung a Prozessor Notzung, Ressource Allocatioun, Metriken, Status, Evenementer, etc.
  • Kuckt d'Applikatiounen, déi am Nummraum ofgesat ginn no hiren Typ (Deployment, StatefulSet, etc.), Verbindungen tëscht hinnen (ReplicaSet, Horizontal Pod Autoscaler), allgemeng a personaliséiert Statistiken an Informatioun.
  • Kuckt Servicer an Ingress, souwéi hir Verbindunge mat Pods an Endpoints.
  • Kuckt Dateiobjekter a Späicheren: Persistent Volumen a Persistent Volume Claim.
  • Kuckt an änneren ConfigMap a Secret.
  • View Logbicher.
  • Kommando Linn Zougang zu Container.

E wesentlechen Nodeel (net fir eis awer) ass datt et keng Ënnerstëtzung fir Multi-Cluster Operatioun gëtt. De Projet ass aktiv vun der Gemeinschaft entwéckelt an ënnerstëtzt aktuell Funktiounen mat der Verëffentlechung vun neie Versiounen a Spezifikatioune vun der Kubernetes API: déi lescht Versioun vum Panel ass v2.0.1 22. Mee 2020 - Getest fir Kompatibilitéit mat Kubernetes 1.18.

2. Lens

Iwwersiicht vun GUIs fir Kubernetes

De Projet ass als vollwäerteg integréiert Entwécklungsëmfeld (IDE) fir Kubernetes positionéiert. Ausserdeem ass et optimiséiert fir mat ville Cluster ze schaffen an enger grousser Zuel vu Pods déi an hinnen lafen (getest op 25 Tausend Pods).

Haaptfeatures / Fäegkeete vu Lens:

  • Eng standalone Applikatioun déi keng Installatioun vun eppes am Cluster erfuerdert (méi präzis, Prometheus ass erfuerderlech fir all Metriken ze kréien, awer Dir kënnt och eng existent Installatioun dofir benotzen). D'"Haapt" Installatioun gëtt op engem perséinleche Computer mat Linux, macOS oder Windows gemaach.
  • Multi-Cluster Management (honnerte vu Cluster ënnerstëtzt).
  • Visualiséierung vum Clusterzoustand an Echtzäit.
  • Ressource Notzung Grafiken an Trends mat Geschicht baséiert op agebaute Prometheus.
  • Zougang zu der Kommandozeil vu Container a Clusternoden.
  • Voll Ënnerstëtzung fir Kubernetes RBAC.

Aktuell Verëffentlechung - 3.5.0 vum 16. Juni 2020. Déi initial Versioun gouf zu Kontena erstallt, an haut ass all intellektuell Eegentum un eng speziell Organisatioun transferéiert ginn. Lakend Labs, genannt "eng Association of Cloud native Geeks and technologists", déi verantwortlech sinn fir "Open Source Software a Kontena Produkter ze konservéieren an verfügbar ze maachen."

Lens ass den zweet beléifste Projet op GitHub an der GUI Kategorie fir Kubernetes, hannert nëmmen dem Kubernets Dashboard selwer. All aner Open Source Léisungen, déi net an der CLI* Kategorie sinn, si wesentlech manner an der Popularitéit.

* Gesinn iwwer K9s am Bonus Deel vun der Iwwerpréiwung.

3. Kubernetic

Iwwersiicht vun GUIs fir Kubernetes

Dëst ass eng propriétaire Applikatioun déi op engem perséinleche Computer installéiert ass (Linux, macOS, Windows ginn ënnerstëtzt). Seng Autoren verspriechen e komplette Ersatz vum Kommandozeil-Utility, an domat ass et net néideg fir Kommandoen ze erënneren an och eng zéngfach Erhéijung vun der Operatiounsgeschwindegkeet.

Ee vun den interessanten Features vum Tool ass déi agebauter Ënnerstëtzung fir Helm Charts, awer ee vun den Nodeeler ass de Mangel un Applikatioun Performance Metriken.

Haaptfeatures vu Kubernetic:

  • Confortabel Affichage vum Clusterstatus. Een Écran fir all Zesummenhang Clusterobjekter an hir Ofhängegkeeten ze gesinn; rout / gréng prett Staat fir all Objeten; Cluster Status Viewing Modus mat Echtzäit Statusupdates.
  • Schnell Aktiounsknäpper fir d'Applikatioun ze läschen an ze skaléieren.
  • Ënnerstëtzung fir Multi-Cluster Operatioun.
  • Einfach Aarbecht mat Nummraim.
  • Ënnerstëtzung fir Helm Charts an Helm Repositories (inklusiv privaten). Installatioun a Gestioun vun Charts am Web Interface.

Déi aktuell Käschte vum Produkt sinn eng eemoleg Bezuelung vun 30 Euro fir seng Notzung vun enger Persoun fir all Zuel vun Nummraim a Cluster.

4. Kubevious

  • Websäit;
  • Presentatioun;
  • repository (~ 500 GitHub Stären);
  • Lizenz: Apache 2.0
  • An enger Nossschuel: "Kubevious mécht Kubernetes Cluster, Applikatiounskonfiguratioun a Visibilitéit an d'Applikatiounsstatus sécher an einfach ze verstoen."

Iwwersiicht vun GUIs fir Kubernetes

D'Iddi vum Projet ass en Tool ze kreéieren entworf fir Applikatiounskonfiguratiounen ze analyséieren an ze debuggen an engem Cluster ofgesat. D'Auteuren konzentréiert sech haaptsächlech op d'Ëmsetzung vun dëse Funktiounen, a léisst méi allgemeng Saache fir spéider.

Schlësselfeatures a Funktiounen vu Kubevious:

  • Visualiséiert de Stärekoup op eng Applikatiounszentresch Manéier: vernetzt Objeten an der Interface ginn an eng Hierarchie gruppéiert.
  • Visuell Ofhängegkeeten an Konfiguratiounen an déi kaskadéierend Konsequenze vun hiren Ännerungen ze weisen.
  • Weist Cluster Konfiguratioun Feeler: falsch Benotzung vun Etiketten, verpasst Ports, etc. (Iwwregens, wann Dir un dëser Feature interesséiert sidd, oppassen op Polarisiwwer déi mir scho geschriwwen.)
  • Nieft dem virege Punkt ass Detektioun vu potenziell geféierleche Container verfügbar, d.h. ze vill Privilegien ze hunn (Attributer hostPID, hostNetwork, hostIPC, Montéierung docker.sock etc).
  • En fortgeschratt Stärekoup Sich System (net nëmmen duerch Objet Nimm, mä och duerch hir Eegeschafte).
  • Tools fir Kapazitéitsplanung a Ressourceoptimiséierung.
  • Built-in "Zäitmaschinn" (d'Fähigkeit fir virdru geschitt Ännerungen an der Konfiguratioun vun Objeten ze gesinn).
  • Gestioun RBAC mat engem Resumé interconnected Dësch aus Rollen, RolleBindings, ServiceAccounts.
  • Schafft nëmme mat engem Cluster.

De Projet huet eng ganz kuerz Geschicht (déi éischt Verëffentlechung huet den 11. Februar 2020 stattfonnt) an et schéngt datt et eng Period vun entweder Stabiliséierung oder Verlängerung an der Entwécklung gouf. Wann fréier Versioune dacks verëffentlecht goufen, dann ass déi lescht Verëffentlechung (v0.5 Abrëll 15) hannert dem initialen Tempo vun der Entwécklung gefall. Dëst ass méiglecherweis wéinst der klenger Unzuel vun de Mataarbechter: an der Geschicht vum Repository sinn et nëmmen 2020 vun hinnen, an all déi tatsächlech Aarbecht gëtt vun enger Persoun duerchgefouert.

5. Kubewise

  • Projet Säit;
  • Lizenz: propriétaire (gëtt Open Source);
  • An enger Nossschuel: "En einfachen, Multi-Plattform Client fir Kubernetes."

Iwwersiicht vun GUIs fir Kubernetes

En neit Produkt vu VMware, ursprénglech als Deel vun engem internen Hackathon erstallt (am Juni 2019). Installéiert op engem perséinleche Computer, funktionnéiert op der Basis Electron (ënnerstëtzt vu Linux, macOS a Windows) a erfuerdert kubectl v1.14.0 oder méi spéit.

Schlëssel Feature vu Kubewise:

  • Interface Interaktioun mat de meescht benotzt Kubernetes Entitéiten: Noden, Nummraim, asw.
  • Ënnerstëtzung fir verschidde kubeconfig Dateien fir verschidde Cluster.
  • Terminal mat der Fäegkeet fir eng Ëmfeldvariabel ze setzen KUBECONFIG.
  • Generéiere personaliséiert kubeconfig Dateien fir e bestëmmten Nummraum.
  • Fortgeschratt Sécherheetsfeatures (RBAC, Passwierder, Servicekonten).

Bis elo huet de Projet nëmmen eng Verëffentlechung - Versioun 1.1.0 vum 26. November 2019. Ausserdeem hunn d'Auteuren geplangt et direkt als Open Source ze verëffentlechen, awer wéinst internen Probleemer (net mat technesche Problemer verbonnen) konnten se dat net maachen. Zënter Mee 2020 schaffen d'Auteuren un der nächster Verëffentlechung a mussen den Open Source Prozess zur selwechter Zäit initiéieren.

6. OpenShift Konsol

Iwwersiicht vun GUIs fir Kubernetes

Trotz der Tatsaach, datt dës Web-Interface Deel vun der OpenShift Verdeelung ass (do ass et installéiert mat spezielle Bedreiwer), Auteuren geliwwert hunn d'Fähigkeit et a regelméissegen (Vanille) Kubernetes Installatiounen z'installéieren / ze benotzen.

OpenShift Console huet sech fir eng laang Zäit entwéckelt, sou datt et vill Funktiounen integréiert huet. Loosst eis déi Haapt ernimmen:

  • Eng gemeinsam Approche fir d'Interface - zwee "Perspektiven" vun de Fäegkeeten, déi an der Konsole verfügbar sinn: fir Administrateuren a fir Entwéckler. Modus Entwéckler Perspektiv Gruppen Objeten an enger Form méi verständlech fir Entwéckler (vun Applikatioun) a konzentréiert d'Interface op d'Léisung vun esou typesch Aufgaben wéi d'Deployment vun Uwendungen, d'Verfollegung vum Bau- / Deploymentstatus, an och d'Editioun vum Code duerch Eclipse Che.
  • Verwalte Aarbechtslaascht, Netzwierk, Späicheren, Zougangsrechter.
  • Logesch Trennung fir Projet an Applikatioun Aarbechtslaascht. An enger vun de leschten Verëffentlechungen - v4.3 - wossten speziell Projet Dashboard, déi üblech Donnéeën ze weisen (Zuel an de Status vun den Deployementer, Pods, etc.; Ressourceverbrauch an aner Metriken) an engem Querschnitt vu Projeten.
  • Echtzäit aktualiséiert Affichage vum Clusterstatus an Ännerungen (Evenementer) déi dran opgetruede sinn; Logbicher kucken.
  • Kuckt Iwwerwaachungsdaten baséiert op Prometheus, Alertmanager a Grafana.
  • Gestioun Opérateuren representéiert an operatorhub.
  • Verwalte Builds déi iwwer Docker lafen (vun engem spezifizéierte Repository mat engem Dockerfile) S2 ech oder arbiträr extern Utilities.

NB: Mir hunn net anerer zum Verglach bäigefüügt Kubernetes Distributiounen (zum Beispill vill manner berühmt Kubesphere): trotz der Tatsaach, datt d'grafesch Interface an hinnen ganz fortgeschratt ginn, kënnt et normalerweis als Deel vun der integréiert Stack vun engem grousse System. Wéi och ëmmer, wann Dir mengt datt e puer Léisungen déi voll funktionell an der Vanille K8s Installatioun fehlen, lass eis an de Kommentaren wëssen.

Bonus

1. Portainer op Kubernetes an Beta

  • Websäit;
  • repository (~ 100 GitHub Stären);
  • Lizenz: Zlib(?) (selwecht wéi den Elterenprojet).

E Projet vum Portainer Team, deen déi populär Interface mam selwechten Numm entwéckelt huet fir mat Docker ze schaffen. Zënter datt de Projet an engem fréie Stadium vun der Entwécklung ass (déi éischt an eenzeg Beta Versioun koum eraus Abrëll 16), hu mir seng Funktiounen net bewäert. Wéi och ëmmer, et kann fir vill interessant sinn: wann dat kléngt wéi Dir, befollegt d'Entwécklung.

2. IcePanel

  • Websäit;
  • Lizenz: propriétaire;
  • Kuerz gesot: "Visual Kubernetes Editor."

Iwwersiicht vun GUIs fir Kubernetes

Dës jonk Desktop-Applikatioun zielt Kubernetes Ressourcen an Echtzäit ze visualiséieren an ze verwalten mat engem einfachen Drag & Drop Interface. Déi aktuell ënnerstëtzt Objekter sinn Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap a Secret. Si verspriechen Helm Support geschwënn ze addéieren. D'Haaptnodeeler sinn datt de Code zou ass (et gëtt erwaart Ouverture "an iergendenger Form") a Mangel u Linux-Ënnerstëtzung (bis elo sinn nëmme Versioune fir Windows a macOS verfügbar, obwuel dëst och héchstwahrscheinlech just eng Fro vun der Zäit ass).

3. k9s

  • Websäit;
  • Demonstratioun;
  • repository (~ 7700 GitHub Stären);
  • Lizenz: Apache 2.0;
  • An enger Nossschuel: "Eng Konsol-Interface fir Kubernetes déi Iech erlaabt Äre Cluster am Stil ze managen."

Iwwersiicht vun GUIs fir Kubernetes

D'Utility war nëmmen am Bonus Deel vun der Iwwerpréiwung abegraff aus dem Grond datt et eng Konsol GUI bitt. Wéi och ëmmer, d'Auteuren hunn wuertwiertlech dat Bescht aus dem Terminal gepresst, net nëmmen e prakteschen Interface ubitt, awer och 6 virdefinéiert Themen, an en entwéckelte System vun Tastatur Ofkiirzungen an Aliasen fir Kommandoen. Hir grëndlech Approche war net limitéiert op d'Erscheinung: d'Kapazitéite vu k9s sinn agreabel beandrockend: Ressourcen managen, den Zoustand vum Stärekoup affichéieren, Ressourcen an enger hierarchescher Vue mat Ofhängegkeeten weisen, Logbicher kucken, RBAC ënnerstëtzen, Fäegkeeten duerch Plugins ausbauen ... All dëst war dem Wënsch vun der breet K8s Gemeinschaft: Quantitéit De GitHub Stäreprojet ass bal sou gutt wéi den offiziellen Kubernetes Dashboard!

4. Applikatioun Kontroll Brieder

An um Enn vun der Iwwerpréiwung - eng separat Mini-Kategorie. Et enthält zwee Webinterfaces entworf net fir komplex Gestioun vu Kubernetes Cluster, awer fir ze managen wat an hinnen ofgebaut gëtt.

Wéi Dir wësst, ass ee vun de reifesten a verbreetsten Tools fir komplex Uwendungen a Kubernetes z'installéieren Helm. Während der Period vu senger Existenz hu vill Packagen (Helm Charts) gesammelt fir einfach Deployment vill populär Uwendungen. Dofir ass et ganz logesch datt entspriechend visuell Tools erschéngen fir de Liewenszyklus vun den Charts ze managen.

4.1. Monokular

  • repository (1300+ GitHub Stären);
  • Lizenz: Apache 2.0;
  • An enger Nossschuel: "Webapplikatioun fir Helm Charts iwwer verschidde Repositories ze sichen an z'entdecken. Déngt als Basis fir den Helm Hub Projet."

Iwwersiicht vun GUIs fir Kubernetes

Dës Entwécklung vun den Auteuren vun Helm ass an Kubernetes installéiert a leeft an engem Cluster, déi zougewisen Aufgab ausféiert. Allerdéngs entwéckelt de Projet de Moment guer net. Säin Haaptzil ass d'Existenz vum Helm Hub z'ënnerstëtzen. Fir aner Bedierfnesser recommandéieren d'Auteuren Kubeapps (kuckt hei ënnen) oder Red Hat Automation Broker (Deel vun OpenShift, awer och net méi entwéckelt).

4.2. Kubeapps

Iwwersiicht vun GUIs fir Kubernetes

E Produkt vu Bitnami, deen och an engem Kubernetes Cluster installéiert ass, awer ënnerscheet sech vu Monocular a sengem initialen Fokus op d'Aarbecht mat private Repositories.

Schlëssel Funktiounen a Funktionalitéit vu Kubeapps:

  • Kuckt an installéiert Helm Charts aus Repositories.
  • Iwwerpréift, aktualiséieren a läschen Helm-baséiert Uwendungen déi am Cluster installéiert sinn.
  • Ënnerstëtzung fir mat personaliséierten a private Chartrepositories ze schaffen (ënnerstëtzt ChartMuseum an JFrog Artifactory).
  • Kuckt an schafft mat externe Servicer - vum Service Katalog a Service Brokers.
  • Verëffentlechung installéiert Uwendungen mam Service Katalog Bindingsmechanismus.
  • Ënnerstëtzung fir Authentifikatioun a Rechter Trennung mat RBAC.

Finale Dësch

Drënner ass e Resumétabel an deem mir probéiert hunn d'Haaptfäegkeeten vun existente visuellen Interfaces ze resuméieren an ze aggregéieren fir de Verglach ze erliichteren:

Iwwersiicht vun GUIs fir Kubernetes
(Online Versioun vum Dësch verfügbar a Google Docs.)

Konklusioun

Grafesch Interfaces fir Kubernetes sinn eng zimlech spezifesch a jonk Nisch. Wéi och ëmmer, et entwéckelt sech ganz aktiv: Dir fannt scho béid zimlech reife Léisungen a ganz jonk, déi nach Plaz hunn fir ze wuessen. Si këmmere sech op eng Vielfalt vun Uwendungen, bidden Features a Looks fir bal all Goût ze passen. Mir hoffen datt dës Iwwerpréiwung Iech hëlleft dat Tool ze wielen dat am Beschten Ären aktuellen Bedierfnesser passt.

PS

Merci kvaps fir d'OpenShift Console Daten fir d'Vergläichstabell!

Liest och op eisem Blog:

Source: will.com

Setzt e Commentaire