Oversigt over grafiske grænseflader til Kubernetes

Oversigt over grafiske grænseflader til Kubernetes

For effective use of the system, knowledge of command line utilities is essential: in the case of Kubernetes, this means kubectl. On the other hand, well-designed, thoughtful graphical interfaces can handle most routine tasks and unlock additional capabilities when operating systems.fleste afLast year, we published a translation

of a brief overview of the web UI for Kubernetes, coinciding with the announcement of the web interface . The author of that article and the utility itself — Henning Jacobs from Zalando — positioned the new tool as ‘kubectl for the web’. He aimed to create a tool with convenient features for interaction in a tech support format (for example, quickly demonstrating a problem via a web link) and for incident response, searching for issues across multiple clusters simultaneously. His creation is still evolving today (primarily driven by the author himself). Kubernetes Web ViewServing numerous Kubernetes clusters of various sizes, we are also interested in providing our clients with a visual working tool. In choosing the right interface, the following capabilities were key for us:

support for user rights management (RBAC);

  • visualization of the state of namespaces and standard Kubernetes primitives (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • accessing the command line inside the pod;
  • viewing pod logs;
  • monitoring pod statuses (
  • describe statusdeleting pods.);
  • Other features, such as viewing resource consumption (in terms of pods/controllers/namespaces), creating/editing K8s primitives, are not relevant to our workflow.

We will begin our overview with the classic Kubernetes Dashboard, recognized as the standard for us. As the world doesn’t stand still (and thus more GUI options are emerging for Kubernetes), we will also discuss its current alternatives, summarizing everything in a comparative table at the end of the article.

: In the review, we will not repeat the solutions already discussed in

NB, however — for completeness — relevant options from it (K8Dash, Octant, Kubernetes Web View) are included in the final table. den forrige artikel1. Kubernetes Dashboard

Documentation page

  • (8000+ stars on GitHub);;
  • Repositoryet License: Apache 2.0;
  • Licens: Apache 2.0;
  • Kort sagt: "Et universelt webinterface til Kubernetes-klynger. Det gør det muligt for brugerne at administrere applikationer, der kører i klyngen, og løse problemer, samt administrere selve klyngen."

Oversigt over grafiske grænseflader til Kubernetes

Det er et værktøj til generelle formål, som forfatterne til Kubernetes omtaler i den officielle dokumentation (selvom det ikke er distribuerbart som standard). Det er designet til daglig drift og fejlfinding af applikationer i klyngen. Vi bruger det som et fuldt ud funktionelt letvægtsvisualiseringsværktøj, der giver udviklerne den nødvendige og tilstrækkelige adgang til klyngen. Dets funktioner dækker alle deres behov, der opstår i brugen af klyngen (i denne artikel vi har vist nogle af funktionerne i panelet). Som det er let at gætte, betyder det, at det opfylder alle vores krav, der er nævnt ovenfor.

Blandt de vigtigste funktioner i Kubernetes Dashboard:

  • Navigation: visning af de grundlæggende K8s-objekter efter namespaces.
  • Når du har administratorrettigheder, viser panelet noder, namespaces og Persistent Volumes. For noder er der statistik for hukommelses- og CPU-forbrug, ressourceallokering, målinger, status, hændelser mv.
  • Visning af de applikationer, der er implementeret i namespaces, efter deres type (Deployment, StatefulSet osv.), relationer mellem dem (ReplicaSet, Horizontal Pod Autoscaler), samlet og personlig statistik og information.
  • Visning af services og Ingress'er samt deres relationer til pod'ene og endpoint'ene.
  • Visning af filobjekter og lagringsløsninger: Persistent Volume og Persistent Volume Claim.
  • Visning og redigering af ConfigMap og Secret.
  • Visning af logfiler.
  • Adgang til kommandolinjen i containere.

En væsentlig ulempe (dog ikke for os) — der er ingen støtte til multiklyngeopgaver. Projektet udvikles aktivt af fællesskabet og understøtter aktuelle funktioner i takt med nye versioner og specifikationer af Kubernetes API: den nyeste version af panelet — v2.0.1 fra 22. maj 2020 — blevet testet for kompatibilitet med Kubernetes 1.18.

2. Lens

Oversigt over grafiske grænseflader til Kubernetes

Projektet positionerer sig som et fuldt integreret udviklingsmiljø (IDE) til Kubernetes. Det er optimeret til at arbejde med mange klynger og et stort antal kørende pod'er (testet med 25.000 pod'er).

Hovedfunktioner/muligheder i Lens:

  • Et autonomt program, der ikke kræver installation af noget inde i klyngen (mere præcist, for at indhente alle metrics kræves Prometheus, men man kan også bruge en eksisterende installation til dette). Den "primære" installation foregår på en personlig computer, der kører Linux, macOS eller Windows.
  • Multiklyngeadministration (understøtter hundreder af klynger).
  • Visualisering af klyngens tilstand i realtid.
  • Grafikker for ressourceforbrug og tendenser med historik baseret på den indbyggede Prometheus.
  • Adgang til kommandolinjen for containere og klyngens noder.
  • Fuld støtte til Kubernetes RBAC.

Den aktuelle version — 3.5.0 fra den 16. juni 2020. Den oprindelige version blev skabt af Kontena, og i dag er al intellektuel ejendom overført til en særlig organisation Lakend Labs, kaldet "foreningen af cloud native-nørder og teknologer", som har ansvaret for "bevarelse og tilgængelighed af Open Source-software og produkter fra Kontena".

Lens — det næstmest populære projekt på GitHub inden for GUI-kategorien til Kubernetes, "taber" kun til selve Kubernetes Dashboard. Alle øvrige Open Source-løsninger uden for CLI* kategorien er betydeligt mindre populære.

* Se om K9s i bonusdelen af anmeldelsen.

3. Kubernetic

Oversigt over grafiske grænseflader til Kubernetes

Det er et proprietært program, der installeres på en personlig computer (understøtter Linux, macOS, Windows). Dets forfattere lover en komplet erstatning for kommandolinjeværktøjet og dermed også, at man ikke skal huske kommandoer, og endda en ti gange hurtigere arbejdsproces.

En af de interessante funktioner ved værktøjet er den indbyggede support til Helm-diagrammer, mens en af dets ulemper er manglen på applikationsperformance-metrics.

Hovedfunktioner i Kubernetic:

  • Brugervenlig fremvisning af klyngens tilstand. Én skærm til at se alle relaterede objekter i klyngen og deres afhængigheder; rød/grøn tilstandsindikator for alle objekter; klyngetilstandsvindue med realtidsstatusopdatering.
  • Hurtige handlingsknapper til at slette og skalere applikationen.
  • Understøttelse af multiklyngearbejde.
  • Simpel håndtering af navneområder.
  • Support for Helm charts and Helm repositories (including private ones). Installation and management of charts in the web interface.

The current cost of the product is a one-time payment of 30 euros for its use by one person for any number of namespaces and clusters.

4. Kubevious

  • Webstedet;
  • Præsentation;
  • Repositoryet (~500 stars on GitHub);
  • License: Apache 2.0
  • In short: 'Kubevious makes Kubernetes clusters, application configuration, and monitoring their status safe and easy to understand.'

Oversigt over grafiske grænseflader til Kubernetes

The project's idea is to create a tool designed for analyzing and debugging application configurations deployed in a cluster. The authors focused primarily on implementing these features, leaving more general things for later.

Key features and functions of Kubevious:

  • Visualization of the cluster in an application-centric manner: interrelated objects in the interface are grouped, forming a hierarchy.
  • Clear display of dependencies in configurations and cascading consequences of their changes.
  • Display of configuration errors in the cluster: improper label usage, missing ports, etc. (By the way, if you're interested in this feature, pay attention to Polaris, which we have already written about.)
  • Additionally — the ability to detect potentially dangerous containers, i.e., those with overly large privileges (attributes hostPID, hostNetwork, hostIPC, mounting docker.sock and so on).
  • Advanced search system across the cluster (not only by object names but also by their properties).
  • Tools for capacity planning and resource optimization.
  • Built-in 'time machine' (ability to see changes in object configurations that occurred earlier).
  • RBAC management through a consolidated interconnected table of Roles, RoleBindings, ServiceAccounts.
  • Works with only one cluster.

The project has a very short history (the first release took place on February 11, 2020) and seems to have reached a period of either stabilization or slowdown in development. While previous versions were released frequently, the last release (v0.5 from April 15, 2020) lagged behind the initial development pace. This is probably due to a small number of contributors: there are only 4 in the repository's history, and all the actual work is done by one person.

5. Kubewise

  • Project page;
  • License: proprietary (will become Open Source);
  • Kort sagt: "En enkel multiplatform klient til Kubernetes".

Oversigt over grafiske grænseflader til Kubernetes

Et nyt produkt fra VMware, oprindeligt skabt under et internt hackathon (i juni 2019). Det installeres på personlige computere og fungerer på Electron (understøtter Linux, macOS og Windows) og kræver kubectl version 1.14.0 eller højere.

Hovedfunktioner i Kubewise:

  • Interaktion i grænsefladen med de mest brugte Kubernetes enheder: noder, navnerum osv.
  • Understøttelse af flere kubeconfig-filer til forskellige klynger.
  • Terminal med mulighed for at sætte miljøvariablen KUBECONFIG.
  • Generering af brugerdefinerede kubeconfig-filer til angivne navnerum.
  • Forbedrede sikkerhedsfunktioner (RBAC, adgangskoder, servicekonti).

Indtil videre har projektet kun én udgivelse — version 1.1.0 fra 26. november 2019. Forfatterne havde dog til hensigt at udgive det som Open Source fra starten, men på grund af interne problemer (der ikke var relateret til tekniske spørgsmål) kunne de ikke gøre det. I maj 2020 arbejder forfatterne på den næste udgivelse og skulle samtidig påbegynde processen med at åbne koden.

6. OpenShift Console

Oversigt over grafiske grænseflader til Kubernetes

Selvom denne webgrænseflade er en del af OpenShift-distributionen (hvor den installeres ved hjælp af en speciel operatør), har forfatterne forudset muligheden for at installere/bruge den også i almindelige (vanilla) Kubernetes-installationer.

OpenShift Console har været under udvikling i lang tid, så den har samlet en række funktioner. Lad os nævne nogle af dem:

  • Delt tilgang til grænsefladen — to "perspektiver" tilgængelige i Console-funktionerne: for administratorer og for udviklere. Udviklerperspektivet Developer perspective grupperer objekter på en måde, der er lettere at forstå for udviklere (efter applikationer) og retter grænsefladen mod løsning af typiske opgaver såsom implementering af applikationer, overvågning af status på bygning/implementering og endda redigering af kode gennem Eclipse Che.
  • Håndtering af arbejdsbyrder, netværk, lager, og adgangsrettigheder.
  • Logisk opdeling af arbejdsbyrder i projekter og applikationer. I en af de seneste udgivelser — v4.3 — opdateret med en speciel Project dashboard, der viser vante data (antal og status på deployment’er, pod’er osv.; ressourceforbrug og andre målinger) i forhold til projekter.
  • Realtidsvisning af klyngens status og de ændringer (begivenheder), der er sket i den; visning af logs.
  • Visning af overvågningsdata baseret på Prometheus, Alertmanager og Grafana.
  • Administration af operatører præsenteret i OperatorHub.
  • Administration af opbygninger, der udføres via Docker (fra det angivne repository med Dockerfile), S2I eller tilfældige eksterne værktøjer.

NB: Vi har ikke inkluderet andre Kubernetes-distributioner (for eksempel meget mindre kendte Kubesphere): Selvom den grafiske grænseflade i dem kan være meget avanceret, leveres den normalt som en del af en integreret stak af et stort system. Hvis du derimod mener, at der mangler løsninger, der fungerer fuldt ud i vanilla-installationen af K8s, så lad os det vide i kommentarerne.

Bonus

1. Portainer på Kubernetes i beta-version

Projektet er fra Portainer-teamet, der har udviklet den populære grænseflade til arbejde med Docker. Da projektet er på et tidligt udviklingstrin (første og eneste beta-version blev lanceret 16. april 2020), har vi ikke vurderet dets funktioner. Men det kan være interessant for mange: hvis det gælder dig, så hold øje med udviklingen.

2. IcePanel

  • Webstedet;
  • Licens: propritær;
  • Kort sagt: "Visuel editor for Kubernetes."

Oversigt over grafiske grænseflader til Kubernetes

Denne unge desktop-applikation har til formål at visualisere Kubernetes-ressourcer i realtid og styre dem med et enkelt drag & drop-interface. I øjeblikket understøttes objekter som Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap og Secret. Snart lover de support for Helm. De største ulemper er lukket kildekode (forventes at blive åbnet "på en eller anden måde") og mangel på support til Linux (i øjeblikket er der kun versioner til Windows og macOS, selvom det også sandsynligvis kun er et spørgsmål om tid).3. k9s

(~7700 stjerner på GitHub);

  • Webstedet;
  • Demonstration;
  • Repositoryet Kort sagt: "Konsolgrænseflade for Kubernetes, der giver stilfuld administration af klyngen".
  • Licens: Apache 2.0;
  • Kort sagt: "Konsolgrænseflade til Kubernetes, der gør det muligt at administrere klyngen stilfuldt."

Oversigt over grafiske grænseflader til Kubernetes

Værktøjet blev kun nævnt i bonusdelen af anmeldelsen, fordi det tilbyder et konsol-GUI. Men forfatterne har bogstaveligt talt presset det maksimale ud af terminalen, idet de tilbyder ikke kun et brugervenligt interface, men også 6 foruddefinerede temaer, et udviklet system af tastaturgenveje og aliaser til kommandoer. Deres grundige tilgang har ikke begrænset sig til udseendet: mulighederne for k9s imponerer positivt: ressourcehåndtering, visning af clusterstatus, output af ressourcer i hierarkisk repræsentation med afhængigheder, visning af logs, understøttelse af RBAC, udvidelse af funktionaliteten gennem plugins… Alt dette er blevet godt modtaget af det store K8s-fællesskab: antallet af GitHub-stjerner for projektet er næsten lig med den officielle Kubernetes Dashboard!

4. Applikationsstyringspaneler

Og afslutningsvis en særskilt mini-kategori. Heri findes to webgr interfaces, der ikke er designet til omfattende administration af Kubernetes-clustre, men til at administrere det, der implementeres i dem.

Som bekendt er et af de mest modne og udbredte værktøjer til deployment af komplekse applikationer i Kubernetes Helm. I løbet af sin eksistens er der opbygget et væld af pakker (Helm charts) til enkel implementering af mange populære applikationer. Det er derfor helt logisk, at der også er fremkommet tilsvarende visuelle værktøjer, der muliggør administration af livscyklussen for charts.

4.1. Monocular

  • Repositoryet (1300+ GitHub-stjerner);
  • Licens: Apache 2.0;
  • Kort sagt: "Webapplikation til at søge efter og opdage Helm-charts i mange forskellige repositories. Tjener som fundament for Helm hub-projektet."

Oversigt over grafiske grænseflader til Kubernetes

Denne udvikling fra forfatterne af Helm installeres i Kubernetes og fungerer inden for et enkelt cluster, idet den udfører den tilstræbte opgave. Men i øjeblikket udvikles projektet stort set ikke længere. Dens primære formål er at støtte eksistensen af Helm Hub. For andre behov anbefaler forfatterne Kubeapps (se videre) eller Red Hat Automation Broker (en del af OpenShift, men som også er under udvikling).

4.2. Kubeapps

Oversigt over grafiske grænseflader til Kubernetes

Et produkt fra Bitnami, der også installeres i Kubernetes-clusteret, men som adskiller sig fra Monocular ved oprindeligt at fokusere på arbejdet med private repositories.

Nøglefunktioner og egenskaber ved Kubeapps:

  • Visning og installation af Helm charts fra repositories.
  • Kontrol, opdatering og sletning af applikationer baseret på Helm, der er installeret i clustret.
  • Understøttelse af arbejde med brugerdefinerede og private chart-repositorier (understøtter ChartMuseum og JFrog Artifactory).
  • Visning og arbejde med eksterne tjenester - fra Service Catalog og Service Brokers.
  • Publicering af installerede applikationer ved hjælp af mekanismen Service Catalog Bindings.
  • Understøttelse af autentifikation og adgangsdeling ved hjælp af RBAC.

Afsluttende tabel

Nedenfor er en opsummeringstabel, hvor vi har forsøgt at samle og aggregere de vigtigste muligheder for eksisterende visuelle grinterfaces for at lette sammenligningen:

Oversigt over grafiske grænseflader til Kubernetes
(Online-versionen af tabellen er tilgængelig i Google Docs.)

Konklusion

Grafiske grinterfaces til Kubernetes er en temmelig specifik og ung niche. Dog udvikler den sig ret aktivt: allerede nu findes der både ret modne løsninger og helt unge, der stadig har plads til vækst. De fokuserer på forskellige anvendelsesmuligheder og tilbyder funktioner og udseende, der passer til næsten enhver smag. Vi håber, at dette overblik vil hjælpe med at finde det værktøj, der bedst dækker de aktuelle behov.

P.S.

Tak til kvaps for data om OpenShift Console til sammenligningstabellen!

Læs også på vores blog:

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster