Overzicht van GUI's voor Kubernetes

Overzicht van GUI's voor Kubernetes

Voor volwaardig werken met het systeem is kennis van opdrachtregelhulpprogramma's belangrijk: in het geval van Kubernetes is dit kubectl. Aan de andere kant kunnen goed ontworpen, doordachte grafische interfaces presterenоde meeste van de gebruikelijke taken en opent extra mogelijkheden voor de werking van systemen.

Vorig jaar hebben we een vertaling gepubliceerd klein overzicht van de web-UI voor Kubernetes, getimed om samen te vallen met de aankondiging van de webinterface Kubernetes WebView. De auteur van dat artikel en het hulpprogramma zelf, Henning Jacobs van Zalando, heeft het nieuwe product zojuist gepositioneerd als "kubectl voor het web". Hij wilde een tool maken met gebruiksvriendelijke mogelijkheden voor interactie in een technisch ondersteuningsformaat (bijvoorbeeld snel het probleem laten zien met een weblink) en voor het reageren op incidenten, het zoeken naar problemen in veel clusters tegelijk. Zijn nakomelingen ontwikkelen zich op dit moment (voornamelijk door de inspanningen van de auteur zelf).

Aangezien we veel Kubernetes-clusters van verschillende groottes bedienen, willen we onze klanten ook een visuele tool kunnen bieden. Bij het kiezen van een geschikte interface stonden de volgende kenmerken voor ons centraal:

  • ondersteuning voor differentiatie van gebruikersrechten (RBAC);
  • visualisatie van de status van de naamruimte en standaard Kubernetes-primitieven (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • toegang krijgen tot de opdrachtregel in de pod;
  • logboeken van pods bekijken;
  • bekijk de status van pods (describe status);
  • peulen verwijderen.

Andere functies, zoals het bekijken van verbruikte bronnen (in de context van pods / controllers / naamruimten), het maken / bewerken van K8s-primitieven, zijn niet relevant binnen onze workflow.

We beginnen de review met het klassieke Kubernetes Dashboard, wat onze standaard is. Aangezien de wereld niet stilstaat (wat betekent dat Kubernetes steeds meer nieuwe GUI's heeft), zullen we het ook hebben over de huidige alternatieven, waarbij we alles samenvatten in een vergelijkende tabel aan het einde van het artikel.

NB: In de review zullen we niet herhalen met die oplossingen die al zijn overwogen laatste artikel, echter voor de volledigheid zijn de relevante opties daaruit (K8Dash, Octant, Kubernetes Web View) opgenomen in de definitieve tabel.

1. Kubernetes-dashboard

  • Documentatie pagina;
  • opslagplaats (8000+ GitHub-sterren);
  • Licentie: Apache 2.0;
  • In het kort: “Universele webinterface voor Kubernetes-clusters. Het stelt gebruikers in staat om applicaties die in het cluster draaien te beheren en problemen op te lossen, en het cluster zelf te beheren.”

Overzicht van GUI's voor Kubernetes

Dit is een paneel voor algemeen gebruik dat door de Kubernetes-auteurs wordt beschreven in de officiële documentatie (Maar niet inzetbaar standaard). Het is ontworpen voor de behoeften van de dagelijkse werking en het debuggen van applicaties in een cluster. Thuis gebruiken we het als een volwaardige lichtgewicht visuele tool waarmee we ontwikkelaars de nodige en voldoende toegang tot het cluster kunnen bieden. De mogelijkheden dekken al hun behoeften die zich voordoen tijdens het gebruik van het cluster (In het dit artikel we hebben enkele functies van het paneel gedemonstreerd). Zoals je misschien wel kunt raden, betekent dit dat het voldoet aan al onze bovenstaande vereisten.

Een van de belangrijkste kenmerken van Kubernetes Dashboard:

  • Navigatie: bekijk de belangrijkste objecten van K8s in de context van naamruimten.
  • Als u beheerdersrechten hebt, toont het paneel knooppunten, naamruimten en persistente volumes. Voor knooppunten zijn statistieken beschikbaar over het gebruik van geheugen, processor, toewijzing van middelen, statistieken, status, gebeurtenissen, enz.
  • Bekijk applicaties die in een naamruimte zijn geïmplementeerd op type (Deployment, StatefulSet, etc.), onderlinge relaties (ReplicaSet, Horizontal Pod Autoscaler), algemene en gepersonaliseerde statistieken en informatie.
  • Bekijk services en Ingresses, evenals hun relaties met pods en eindpunten.
  • Bestandsobjecten en opslag bekijken: Persistent Volume en Persistent Volume Claim.
  • Bekijk en bewerk ConfigMap en Secret.
  • Logboeken bekijken.
  • Commandoregeltoegang in containers.

Een belangrijk nadeel (echter niet voor ons) is dat er geen draagvlak is voor multiclusterwerk. Het project wordt actief ontwikkeld door de community en behoudt relevante functies met de release van nieuwe versies en specificaties van de Kubernetes API: de nieuwste versie van het paneel is v2.0.1 22 mei 2020 - Getest op compatibiliteit met Kubernetes 1.18.

2. lens

Overzicht van GUI's voor Kubernetes

Het project is gepositioneerd als een volledig geïntegreerde ontwikkelomgeving (IDE) voor Kubernetes. Bovendien is het geoptimaliseerd om te werken met veel clusters en een groot aantal pods die erin draaien (getest op 25 pods).

Belangrijkste kenmerken/mogelijkheden van Lens:

  • Standalone applicatie die geen installatie van iets binnen het cluster vereist (meer precies, Prometheus zal nodig zijn om alle statistieken te krijgen, maar hiervoor kan ook een bestaande installatie worden gebruikt). De "hoofd"-installatie wordt uitgevoerd op een personal computer met Linux, macOS of Windows.
  • Beheer van meerdere clusters (ondersteund honderden clusters).
  • Visualisatie van de status van het cluster in realtime.
  • Grafieken van hulpbronnengebruik en trends met geschiedenis op basis van ingebouwde Prometheus.
  • Toegang tot de opdrachtregel van containers en op clusterknooppunten.
  • Volledige ondersteuning voor Kubernetes RBAC.

Huidige uitgave - 3.5.0 gedateerd 16 juni 2020 Oorspronkelijk gemaakt door Kontena, is vandaag alle intellectuele eigendom overgedragen aan een speciale organisatie Lakeland-laboratoria, genaamd "een unie van cloud-native geeks en technologen", die verantwoordelijk is voor het "behoud en de beschikbaarheid van Kontena's Open Source-software en -producten."

Lens is het op één na populairste project op GitHub in de GUI voor Kubernetes-categorie, waarbij alleen het Kubernets-dashboard zelf 'verloren' gaat. Alle andere Open Source-oplossingen die niet uit de CLI*-categorie komen, zijn beduidend minder populair.

* Zie over K9's in het bonusgedeelte van de recensie.

3. Kubernetisch

Overzicht van GUI's voor Kubernetes

Dit is een eigen applicatie die op een personal computer wordt geïnstalleerd (Linux, macOS, Windows worden ondersteund). De auteurs beloven een volledige vervanging van het opdrachtregelhulpprogramma, en daarmee - geen noodzaak om commando's te onthouden en zelfs een vertienvoudiging van de snelheid.

Een van de interessante kenmerken van de tool is de ingebouwde ondersteuning voor Helm-grafieken, en een van de nadelen is het gebrek aan applicatieprestatiestatistieken.

Belangrijkste kenmerken van Kubernetic:

  • Handige weergave van de clusterstatus. Eén scherm om alle gerelateerde clusterobjecten en hun afhankelijkheden te bekijken; rood/groen gereedheidsstatus voor alle objecten; clusterstatusweergavemodus met real-time statusupdates.
  • Snelle actieknoppen voor het verwijderen en schalen van de applicatie.
  • Ondersteuning voor gebruik met meerdere clusters.
  • Eenvoudig werken met naamruimten.
  • Ondersteuning voor Helm-grafieken en Helm-opslagplaatsen (inclusief privé). Grafieken installeren en beheren in de webinterface.

De huidige kostprijs van het product is een eenmalige betaling van 30 euro voor gebruik door één persoon voor een onbeperkt aantal naamruimten en clusters.

4. Kwaadaardig

  • Plaats;
  • presentatie;
  • opslagplaats (~ 500 GitHub-sterren);
  • Licentie: Apache 2.0
  • Kortom: "Kubevious maakt Kubernetes-clusters, applicatieconfiguratie en statusweergave veilig en gemakkelijk te begrijpen."

Overzicht van GUI's voor Kubernetes

Het idee van het project is om een ​​tool te maken die is ontworpen om applicatieconfiguraties die in een cluster zijn geïmplementeerd, te analyseren en te debuggen. De auteurs concentreerden zich voornamelijk op de implementatie van deze functies, en lieten meer algemene zaken voor later.

Belangrijkste kenmerken en functies van Kubevious:

  • Clustervisualisatie op een toepassingsgerichte manier: gerelateerde objecten in de interface zijn gegroepeerd en opgesteld in een hiërarchie.
  • Visuele weergave van afhankelijkheden in configuraties en trapsgewijze gevolgen van hun wijzigingen.
  • Weergave van clusterconfiguratiefouten: misbruik van labels, gemiste poorten, etc. (Trouwens, als je geïnteresseerd bent in deze functie, let dan op Polariswaarover wij schreef al.)
  • Naast het vorige punt is detectie van potentieel gevaarlijke containers beschikbaar, d.w.z. met te veel privileges (attributen hostPID, hostNetwork, hostIPC, monteren docker.sock enz).
  • Geavanceerd zoeksysteem voor het cluster (niet alleen op namen van objecten, maar ook op eigenschappen).
  • Tools voor capaciteitsplanning en resource-optimalisatie.
  • Ingebouwde "tijdmachine" (de mogelijkheid om eerdere wijzigingen in de configuratie van objecten te zien).
  • RBAC-beheer met een onderling verbonden draaitabel van Rollen, RoleBindings, ServiceAccounts.
  • Werkt met slechts één cluster.

Het project heeft een zeer korte geschiedenis (de eerste release vond plaats op 11 februari 2020) en het lijkt erop dat er een periode van stabilisatie of vertraging in de ontwikkeling is geweest. Als eerdere versies vaak zijn uitgebracht, dan is de nieuwste release (v0.5 15 april 2020) is achtergebleven bij het aanvankelijke ontwikkelingstempo. Dit komt waarschijnlijk door het kleine aantal bijdragers: er zijn er slechts 4 in de geschiedenis van de repository en al het eigenlijke werk wordt gedaan door één persoon.

5. Kubewijs

  • Project pagina;
  • Licentie: propriëtair (wordt Open Source);
  • Kortom: "Een simpele multi-platform client voor Kubernetes."

Overzicht van GUI's voor Kubernetes

Een nieuw product van VMware, oorspronkelijk gemaakt als onderdeel van een interne hackathon (in juni 2019). Geïnstalleerd op een personal computer, werkt op basis van Elektron (Linux, macOS en Windows ondersteund) en vereist kubectl v1.14.0 of hoger.

Belangrijkste kenmerken van Kubewise:

  • Interface-interactie met de meest gebruikte Kubernetes-entiteiten: knooppunten, naamruimten, enz.
  • Ondersteuning voor meerdere kubeconfig-bestanden voor verschillende clusters.
  • Terminal met de mogelijkheid om een ​​omgevingsvariabele in te stellen KUBECONFIG.
  • Genereer aangepaste kubeconfig-bestanden voor de opgegeven naamruimte.
  • Geavanceerde beveiligingsfuncties (RBAC, wachtwoorden, serviceaccounts).

Tot nu toe heeft het project slechts één release - versie 1.1.0 gedateerd 26 november 2019. Bovendien waren de auteurs van plan om het onmiddellijk als Open Source vrij te geven, maar door interne problemen (niet gerelateerd aan technische problemen) konden ze dit niet doen. Vanaf mei 2020 werken de auteurs aan de volgende release en zouden ze tegelijkertijd het proces voor het openen van de code moeten starten.

6. OpenShift-console

Overzicht van GUI's voor Kubernetes

Ondanks het feit dat deze webinterface deel uitmaakt van de OpenShift-distributie (hij wordt daar geïnstalleerd met behulp van speciale operator), auteurs hebben voorzien van de mogelijkheid om het te installeren / gebruiken in normale (vanilla) Kubernetes-installaties.

OpenShift Console is al lang in ontwikkeling, dus er zijn veel functies in verwerkt. We noemen de belangrijkste:

  • Gedeelde interfacebenadering - twee "perspectieven" van de mogelijkheden die beschikbaar zijn in de console: voor beheerders en voor ontwikkelaars. modus ontwikkelaar perspectief groepeert objecten in een meer begrijpelijke vorm voor ontwikkelaars (per applicatie) en richt de interface op het oplossen van typische taken zoals het implementeren van applicaties, het volgen van de build-/implementatiestatus en zelfs het bewerken van code via Eclipse Che.
  • Beheer van workloads, netwerk, opslag, toegangsrechten.
  • Logische scheiding voor workloads in projecten en applicaties. In een van de laatste releases - v4.3 - verschenen speciaal Projectdashboard, die de gebruikelijke gegevens weergeeft (het aantal en de status van implementaties, pods, enz.; resourceverbruik en andere statistieken) in een projectsegment.
  • Bijgewerkt in realtime weergave van de status van het cluster, veranderingen (gebeurtenissen) die erin hebben plaatsgevonden; logboeken bekijken.
  • Bekijk monitoringgegevens op basis van Prometheus, Alertmanager en Grafana.
  • Beheer van operators vertegenwoordigd in OperatorHub.
  • Beheer builds die via Docker lopen (vanuit een gespecificeerde repository met een Dockerfile), S2I of willekeurige externe hulpprogramma's.

NB: We hebben geen anderen aan de vergelijking toegevoegd Kubernetes-distributies (bijvoorbeeld de veel minder bekende Kubesfeer): ondanks het feit dat de GUI hierin zeer geavanceerd kan zijn, wordt deze meestal geleverd als onderdeel van de geïntegreerde stapel van een groot systeem. Als u echter denkt dat er niet genoeg oplossingen zijn die volledig functioneren in de vanilla K8s-installatie, laat het ons dan weten in de opmerkingen.

Bonus

1. Portainer op Kubernetes in bèta

  • Plaats;
  • opslagplaats (~ 100 GitHub-sterren);
  • Licentie: Zlib(?) (hetzelfde voor het ouderproject).

Een project van het Portainer-team, dat de populaire interface met dezelfde naam ontwikkelde voor het werken met Docker. Aangezien het project zich in een vroege ontwikkelingsfase bevindt (de eerste en enige bètaversie kwam uit 16 april 2020), hebben we de functies ervan niet geëvalueerd. Het kan echter voor velen interessant zijn: als dit over jou gaat, volg dan de ontwikkeling.

2. IJsPanel

  • Plaats;
  • Licentie: eigendom;
  • In het kort: "Visual Kubernetes Editor".

Overzicht van GUI's voor Kubernetes

Deze jonge desktop-applicatie is bedoeld om Kubernetes-resources in realtime te visualiseren en te beheren met een eenvoudige drag & drop-interface. Momenteel ondersteunde objecten zijn Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap en Secret. Binnenkort beloven ze ondersteuning voor Helm toe te voegen. De belangrijkste nadelen zijn de nabijheid van de code (het wordt verwacht openen "op de een of andere manier") en het ontbreken van Linux-ondersteuning (tot nu toe zijn alleen versies voor Windows en macOS beschikbaar, hoewel dit waarschijnlijk ook slechts een kwestie van tijd is).

3.k9s

  • Plaats;
  • demonstratie;
  • opslagplaats (~ 7700 GitHub-sterren);
  • Licentie: Apache 2.0;
  • Kortom: "Een console-interface voor Kubernetes waarmee u uw cluster in stijl kunt beheren."

Overzicht van GUI's voor Kubernetes

Het hulpprogramma stond alleen in het bonusgedeelte van de recensie omdat het een console-GUI biedt. De auteurs haalden echter letterlijk het maximale uit de terminal en boden niet alleen een gebruiksvriendelijke interface, maar ook 6 vooraf gedefinieerde thema's en een geavanceerd systeem van sneltoetsen en opdrachtaliassen. Hun grondige aanpak beperkte zich niet tot uiterlijk: k9s-functies zijn aangenaam indrukwekkend: resourcebeheer, weergave van de status van het cluster, weergave van resources in een hiërarchische weergave met afhankelijkheden, logboeken bekijken, RBAC-ondersteuning, mogelijkheden uitbreiden via plug-ins ... Dit alles sprak aan aan de brede K8s-gemeenschap: het aantal De GitHub-sterren van het project zijn bijna net zo goed als het officiële Kubernetes-dashboard!

4. Bedieningspanelen van applicaties

En aan het einde van de review - een aparte minicategorie. Het omvatte twee webinterfaces die niet waren ontworpen voor het uitgebreide beheer van Kubernetes-clusters, maar voor het beheer van wat erin wordt geïmplementeerd.

Zoals u weet, is Helm een ​​van de meest volwassen en wijdverbreide tools voor het implementeren van complexe applicaties in Kubernetes. In de loop van zijn bestaan ​​zijn er veel pakketten (Helm-grafieken) verzameld voor eenvoudige implementatie veel populaire toepassingen. Daarom is het verschijnen van geschikte visuele hulpmiddelen waarmee u de levenscyclus van grafieken kunt beheren, vrij logisch.

4.1. Monoculair

  • opslagplaats (1300+ GitHub-sterren);
  • Licentie: Apache 2.0;
  • In het kort: “Een webapplicatie voor het zoeken en ontdekken van Helm-charts in meerdere repositories. Dient als basis voor het Helm hub-project."

Overzicht van GUI's voor Kubernetes

Deze ontwikkeling van de auteurs van Helm wordt geïnstalleerd in Kubernetes en werkt binnen hetzelfde cluster om de taak uit te voeren. Op dit moment is het project echter bijna niet ontwikkeld. Het belangrijkste doel is om het bestaan ​​van de Helm Hub te ondersteunen. Voor andere behoeften raden de auteurs Kubeapps aan (zie hieronder) of Red Hat Automation Broker (onderdeel van OpenShift, maar wordt ook niet meer ontwikkeld).

4.2. Kubeapps

Overzicht van GUI's voor Kubernetes

Een product van Bitnami, dat ook in een Kubernetes-cluster is geïnstalleerd, maar verschilt van Monocular in de initiële focus op het werken met privé-repositories.

Belangrijkste functies en kenmerken van Kubeapps:

  • Bekijk en installeer Helm-grafieken vanuit opslagplaatsen.
  • Controleer, update en verwijder op Helm gebaseerde toepassingen die op het cluster zijn geïnstalleerd.
  • Ondersteuning voor aangepaste en particuliere kaartrepository's (ondersteunt ChartMuseum en JFrog Artifactory).
  • Bekijken en werken met externe diensten - van de Service Catalogus en Service Brokers.
  • Geïnstalleerde applicaties publiceren met behulp van het Service Catalog Bindings-mechanisme.
  • Ondersteuning voor authenticatie en scheiding van rechten met behulp van RBAC.

Samenvattingstabel

Hieronder vindt u een samenvattende tabel waarin we hebben geprobeerd de belangrijkste kenmerken van bestaande visuele interfaces samen te vatten en samen te voegen om vergelijking te vergemakkelijken:

Overzicht van GUI's voor Kubernetes
(Online versie van de tabel beschikbaar op Google Documenten.)

Conclusie

GUI's voor Kubernetes zijn een vrij specifieke en jonge niche. Het ontwikkelt zich echter zeer actief: het is al mogelijk om zowel vrij volwassen oplossingen te vinden als zeer jonge, die nog ruimte hebben om te groeien. Ze zijn geschikt voor een verscheidenheid aan toepassingen en bieden functies en looks die bij bijna elke smaak passen. We hopen dat deze beoordeling u zal helpen bij het kiezen van de tool die het beste bij uw huidige behoeften past.

PS

Dank je kwaps voor de gegevens op de OpenShift Console voor de vergelijkingstabel!

Lees ook op onze blog:

Bron: www.habr.com

Voeg een reactie