Gennemgang af grafiske brugerflader til Kubernetes

Gennemgang af grafiske brugerflader til Kubernetes

For full functionality with the system, it's essential to know command-line utilities: in the case of Kubernetes, that's kubectl. On the other hand, well-designed graphical interfaces can perform most common tasks and open up additional possibilities for system operation.omLast year, we published a translation of a small overview

of the web UI for Kubernetes, aligned with the announcement of the web interface. . The author of that article and the utility itself is Henning Jacobs from Zalando, who positioned the novelty as "kubectl for the web." He aimed to create a tool with convenient capabilities for interaction in a tech support format (for example, to quickly show a problem via a web link) and to respond to incidents, searching for issues across multiple clusters simultaneously. His creation continues to evolve even now (mainly through the author's own efforts). Kubernetes Web ViewWhile serving multiple Kubernetes clusters of various scales, we are also interested in providing our clients with a visual working tool. In selecting the appropriate interface, the following capabilities were key for us:

support for user rights segregation (RBAC);

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

We will start the review with the classic Kubernetes Dashboard, which we have accepted as the standard. Since the world doesn't stand still (which means new GUIs for Kubernetes keep appearing), we will also discuss its current alternatives, summarizing everything in a comparative table at the end of the article.

: In the review, we won't repeat the solutions already considered in

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

Documentation page

  • (8000+ stars on GitHub);;
  • Depo License: Apache 2.0;
  • Lisens: Apache 2.0;
  • Kort oppsummert: «Et universelt webgrensesnitt for Kubernetes-klynger. Det lar brukere administrere applikasjoner som kjører i klyngen og feilsøke dem, samt å administrere selve klyngen».

Gennemgang af grafiske brugerflader til Kubernetes

Dette er et allsidig panel, vurdert av forfatterne av Kubernetes i den offisielle dokumentasjonen (selv om det ikke er distribuert som standard). Det er designet for daglig drifts- og feilsøkingsbehov for applikasjoner i klyngen. Vi bruker det som et fullt funksjonelt, lettvekts visuell verktøy som gir utviklere nødvendig og tilstrekkelig tilgang til klyngen. Mulighetene dekker alle behovene som oppstår under bruk av klyngen. (i denne artikkelen vi har demonstrert noen av funksjonene i panelet). Som det lett kan gjettes, betyr dette at det tilfredsstiller alle våre krav nevnt ovenfor.

Blant hovedfunksjonene i Kubernetes Dashboard:

  • Navigasjon: visning av hovedobjekter i K8s etter navnerom.
  • Når du har administratorrettigheter, viser panelet noder, navnerom og Persistent Volumes. For nodene er det tilgjengelig statistikk for minne- og CPU-bruk, ressursallokering, metrikker, status, hendelser osv.
  • Visning av applikasjoner som er distribuert i navnerommet, etter type (Deployment, StatefulSet osv.), relasjoner mellom dem (ReplicaSet, Horizontal Pod Autoscaler), samlet og personlig statistikk og informasjon.
  • Visning av tjenester og Ingress-er, samt deres relasjoner med pod-er og endepunkter.
  • Visning av filobjekter og lagringsplasser: Persistent Volume og Persistent Volume Claim.
  • Visning og redigering av ConfigMap og Secret.
  • Visning av logger.
  • Tilgang til kommandolinjen i containere.

En betydelig ulempe (men ikke for oss) er at det ikke støtter multiklyngeoperasjoner. Prosjektet utvikles aktivt av fellesskapet og støtter aktuelle funksjoner med utgivelsen av nye versjoner og spesifikasjoner for Kubernetes API: den siste versjonen av panelet - v2.0.1 fra 22. mai 2020 - har blitt testet for kompatibilitet med Kubernetes 1.18.

2. Lens

Gennemgang af grafiske brugerflader til Kubernetes

Prosjektet posisjonerer seg som et fullverdig integrert utviklingsmiljø (IDE) for Kubernetes. Det er også optimalisert for arbeid med flere klynger og et stort antall pod-er som kjører i dem (testet på 25.000 pod-er).

Hovedfunksjoner/muligheter i Lens:

  • Et autonomt program som ikke krever noen installasjon inne i klyngen (eller rettere sagt, for å få alle metrikkene vil Prometheus være nødvendig, men du kan bruke en eksisterende installasjon for dette). Den «primære» installasjonen gjøres på en personlig datamaskin som kjører Linux, macOS eller Windows.
  • Multiklyngeadministrasjon (støtter hundrevis av klynger).
  • Visualisering av klyngets tilstand i sanntid.
  • Diagrammer for ressursbruk og trender med historikk basert på innebygd Prometheus.
  • Tilgang til kommandolinjen til containere og noder i klyngen.
  • Full støtte for Kubernetes RBAC.

Nåværende utgivelse — 3.5.0 fra 16. juni 2020. Den opprinnelige versjonen ble laget i selskapet Kontena, og i dag er all intellektuell eiendom overført til en spesialorganisasjon. Lakend Labs, kalt et «fellesskap av cloud native-entusiaster og teknikere», som har ansvaret for «bevaring og tilgjengelighet av Open Source-programvare og produkter fra Kontena».

Lens er det nest mest populære prosjektet på GitHub innen GUI for Kubernetes, som bare «taper» for Kubernetes Dashboard. Alle andre Open Source-løsninger utenfor CLI-kategorien er betydelig mindre populære.

* Se om K9s i bonusdelen av anmeldelsen.

3. Kubernetic

Gennemgang af grafiske brugerflader til Kubernetes

Dette er et proprietært program som installeres på en personlig datamaskin (støtter Linux, macOS, Windows). Forfatterne lover en fullstendig erstatning for kommandolinjeverktøyet, samt at det ikke er nødvendig å huske kommandoene, og til og med en ti ganger økning i hastigheten.

En av de interessante funksjonene ved verktøyet er innebygd støtte for Helm-diagrammer, mens en av ulempene er mangel på ytelsesmålinger for applikasjoner.

Hovedfunksjoner i Kubernetic:

  • Brukervennlig visning av klyngets tilstand. En skjerm for å se alle relaterte objekter i klyngen og deres avhengigheter; rød/grønn beredskapstilstand for alle objekter; modus for visning av klyngets tilstand med sanntidsoppdatering av status.
  • Hurtigknapper for å slette og skalere applikasjonen.
  • Støtte for multiklyngearbeid.
  • Enkel håndtering av navnerom.
  • Støtte for Helm-diagrammer og Helm-repositorier (inkludert private). Installering og administrasjon av diagrammer i nettgrensesnittet.

Den gjeldende prisen på produktet er et engangsbeløp på 30 euro for bruken av én person for et hvilket som helst antall navnerom og klynger.

4. Kubevious

  • Nettside;
  • Presentasjon;
  • Depo (~500 stjerner på GitHub);
  • Lisens: Apache 2.0
  • Kort sagt: «Kubevious gjør Kubernetes-klynger, applikasjonskonfigurasjon og visning av deres tilstand sikkert og lettfattelig».

Gennemgang af grafiske brugerflader til Kubernetes

Idéen bak prosjektet er å skape et verktøy for analyse og feilsøking av applikasjonskonfigurasjoner distribuert i klynger. Forfatterne har først og fremst fokusert på implementering av disse funksjonene, og har latt mer generelle ting komme senere.

Hovedfunksjoner og egenskaper ved Kubevious:

  • Visualisering av klynger på en applikasjonsorientert måte: relaterte objekter i grensesnittet grupperes og danner en hierarki.
  • Oversiktlig visning av avhengigheter i konfigurasjoner og kaskadeeffektene av endringene deres.
  • Visning av konfigurasjonsfeil i klynger: feil bruk av etiketter, manglende porter, osv. (Forresten, hvis du er interessert i denne funksjonen, legg merke til Polaris, som vi allerede har skrevet om.)
  • I tillegg til forrige punkt – finnes det også mulighet for å oppdage potensielt farlige containere, dvs. de med for store privilegier (attributter hostPID, hostNetwork, hostIPC, montering av docker.sock og lignende).
  • Avansert søkesystem for klynger (ikke bare etter objektnavn, men også etter egenskaper).
  • Verktøy for kapasitetsplanlegging og ressursoptimalisering.
  • Innebygd «tidsmaskin» (mulighet for å se tidligere endringer i objektkonfigurasjoner).
  • RBAC-administrasjon ved hjelp av en sammankoblet tabell av Roles, RoleBindings, ServiceAccounts.
  • Fungerer bare med én klynge.

Prosjektet har en ganske kort historie (første utgivelse var 11. februar 2020), og det ser også ut til å ha vært en periode med enten stabilisering eller avmatning i utviklingen. Mens tidligere versjoner ble utgitt hyppig, har den siste utgivelsen (v0.5 fra 15. april 2020) vært bak den opprinnelige utviklingstakten. Det er sannsynligvis knyttet til det lave antallet bidragsytere: det er bare 4 i historien til depotet, og hele det faktiske arbeidet utføres av én person.

5. Kubewise

  • Prosjektside;
  • Lisens: proprietær (vil bli Open Source);
  • Kort sagt: «En enkel plattformuavhengig klient for Kubernetes».

Gennemgang af grafiske brugerflader til Kubernetes

Et nytt produkt fra VMware, opprinnelig utviklet under et internt hackathon (i juni 2019). Installert på en personlig datamaskin, fungerer det på grunnlag av Electron (støtter Linux, macOS og Windows) og krever kubectl versjon v1.14.0 eller høyere.

Hovedfunksjoner i Kubewise:

  • Interaksjon i grensesnittet med de mest brukte Kubernetes-objektene: noder, navnerom osv.
  • Støtte for flere kubeconfig-filer for forskjellige klynger.
  • Terminal med mulighet for å sette miljøvariabler KUBECONFIG.
  • Generering av tilpassede kubeconfig-filer for spesifikke navnerom.
  • Utvidede sikkerhetsfunksjoner (RBAC, passord, servicekonti).

Prosjektet har så langt bare én utgivelse — versjon 1.1.0 fra 26. november 2019. Forfatterne hadde planlagt å utgi det som Open Source med en gang, men på grunn av interne problemer (som ikke var relatert til tekniske spørsmål) klarte de ikke å gjøre dette. Per mai 2020 jobber forfatterne med neste utgivelse, og samtidig skal de starte prosessen med å åpne kildekoden.

6. OpenShift Console

Gennemgang af grafiske brugerflader til Kubernetes

Selv om dette nettgrensesnittet er en del av OpenShift-distribusjonen (der det installeres med en spesialoperatør), har forfatterne forutsett muligheten for installasjon/bruk også i vanlige (vanilla) Kubernetes-installasjoner.

OpenShift Console har vært under utvikling lenge, og derfor har det fått mange funksjoner. La oss nevne noen av de viktigste:

  • Delt tilnærming til grensesnittet — to «perspektiver» med tilgjengelige muligheter i Console: for administratorer og utviklere. Modus Developer perspective grupperer objekter på en mer forståelig måte for utviklere (etter applikasjoner) og orienterer grensesnittet mot å løse typiske oppgaver som distribusjon av applikasjoner, overvåking av status for bygg/distribusjon og til og med redigering av kode gjennom Eclipse Che.
  • Håndtering av arbeidsbelastninger, nettverk, lagring, tilgangsrettigheter.
  • Logisk inndeling for arbeidsbelastninger i prosjekter og applikasjoner. I en av de siste utgivelsene — v4.3 — oppdatert med en spesial Project dashboard, som viser vanlige data (antal og status for distribusjoner, pod'er osv.; ressursforbruk og andre målinger) i prosjektvinkling.
  • Sanntidsvisning av klusterstatus og endringer (hendelser); visning av logger.
  • Visning av overvåkingsdata basert på Prometheus, Alertmanager og Grafana.
  • Håndtering av operatører som er presentert i OperatorHub.
  • Håndtering av bygninger som kjøres gjennom Docker (fra angitt repository med Dockerfile), S2I eller vilkårlige eksterne verktøy.

NB: Vi har valgt å ikke inkludere andre Kubernetes-distribusjoner (for eksempel en mye mindre kjent Kubesphere): selv om grafisk brukergrensesnitt kan være svært avansert, kommer det vanligvis som en del av en integrert stakk i et stort system. Men hvis du mener at det mangler visse løsninger som fungerer fullt ut i vanilla-installasjoner av K8s, gi oss beskjed i kommentarene.

Bonus

1. Portainer på Kubernetes i beta-versjon

  • Nettside;
  • Depo (~100 stjerner på GitHub);
  • Lisens: Zlib(?) (den samme som for moderselskapet).

Prosjektet fra Portainer-teamet, som har utviklet det populære grensesnittet for arbeid med Docker. Siden prosjektet er i tidlig utviklingsfase (første og eneste beta-versjon ble lansert 16. april 2020), har vi valgt å ikke vurdere funksjonene. Men kanskje det vil interessere mange: hvis du er en av dem, følg med på utviklingen.

2. IcePanel

  • Nettside;
  • Lisens: proprietær;
  • Kort sagt: «Visuell redigerer for Kubernetes».

Gennemgang af grafiske brugerflader til Kubernetes

Dette unge skrivebordsprogrammet er ment å visualisere ressurser i Kubernetes i sanntid og styre dem med et enkelt drag & drop-grensesnitt. For øyeblikket støttes objekter som Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap og Secret. De lover å legge til støtte for Helm snart. De største ulempene er lukket kildekode (det forventes å bli åpnet «på en eller annen måte») og mangel på Linux-støtte (det er for øyeblikket bare versjoner tilgjengelig for Windows og macOS, selv om dette sannsynligvis også bare er et spørsmål om tid).

3. k9s

  • Nettside;
  • Demonstrasjon;
  • Depo (~7700 stjerner på GitHub);
  • Lisens: Apache 2.0;
  • Kort sagt: «Konsollgrensesnitt for Kubernetes som lar deg håndtere klyngen stilfullt».

Gennemgang af grafiske brugerflader til Kubernetes

Verktøyet havnet kun i bonusdelen av omtalen fordi det tilbyr en konsollbasert GUI. Likevel har forfatterne virkelig presset maksimalt ut av terminalen, ved å tilby ikke bare et praktisk grensesnitt, men også 6 forhåndsdefinerte temaer, et avansert system for tastekombinasjoner og aliaser for kommandoer. Deres grundige tilnærming har ikke vært begrenset til utseendet: mulighetene til k9s er virkelig imponerende: ressurskontroll, visning av klusterstatus, utdata av ressurser i hierarkisk visning med avhengigheter, loggvisning, støtte for RBAC, utvidelsesmuligheter gjennom plugins... Alt dette har falt i smak hos det brede K8s-fellesskapet: antall stjerner på GitHub for prosjektet er nesten likt det offisielle Kubernetes Dashboard!

4. Applikasjonsadministrasjonspaneler

Og til slutt, en egen mini-kategori. Den inkluderer to nettgrensesnitt som ikke er ment for helhetlig administrasjon av Kubernetes-klynger, men for administrasjon av det som rulles ut i dem.

Som kjent er en av de mest etablerte og utbredte metodene for distribusjon av komplekse applikasjoner i Kubernetes Helm. Gjennom sin eksistens har det blitt samlet mange pakker (Helm charts) for enkel distribusjon av mange populære applikasjoner. Derfor er det helt logisk at det også dukker opp om passende visuelle verktøy som gjør det mulig å administrere livssyklusen til chartene.

4.1. Monocular

  • Depo (1300+ GitHub-stjerner);
  • Lisens: Apache 2.0;
  • Kort sagt: «Nettapplikasjon for å søke etter og oppdage Helm-charts i mange repositorier. Tjener som grunnlag for prosjektet Helm hub».

Gennemgang af grafiske brugerflader til Kubernetes

Denne utviklingen fra forfatterne av Helm installeres i Kubernetes og fungerer innenfor en enkelt klynge, som utfører den tiltenkte oppgaven. Men for øyeblikket utvikles prosjektet nesten ikke lenger. Dets primære formål er å støtte eksistens av Helm Hub. For andre behov anbefaler forfatterne Kubeapps (se lengre ned) eller Red Hat Automation Broker (del av OpenShift, men også dette utvikles ikke lenger).

4.2. Kubeapps

  • Nettside;
  • Presentasjon;
  • Depo (~2100 GitHub-stjerner);
  • Lisens: Apache 2.0
  • Kort sagt: «Ditt applikasjonspanel for Kubernetes».

Gennemgang af grafiske brugerflader til Kubernetes

Produktet fra Bitnami, som også installeres i Kubernetes-klyngen, men som skiller seg fra Monocular ved sitt opprinnelige fokus på arbeid med private repositorier.

Nøkkelfunksjoner og egenskaper ved Kubeapps:

  • Visning og installasjon av Helm charts fra repositorier.
  • Kontroll, oppdatering og fjerning av applikasjoner basert på Helm, installert i klyngen.
  • Støtte for arbeid med tilpassede og private chart-repositorier (støtter ChartMuseum og JFrog Artifactory).
  • Visning og arbeid med eksterne tjenester — fra Service Catalog og Service Brokers.
  • Publisering av installerte applikasjoner ved hjelp av mekanismen Service Catalog Bindings.
  • Støtte for autentisering og rettighetsdeling ved hjelp av RBAC.

Oppsummeringstabell

Nedenfor er en oversiktstabell hvor vi har prøvd å oppsummere og aggregere de viktigste funksjonene til eksisterende visuelle grensesnitt for å gjøre sammenligningen enklere:

Gennemgang af grafiske brugerflader til Kubernetes
(Den nettbaserte versjonen av tabellen er tilgjengelig i Google Docs.)

Konklusjon

Grafiske grensesnitt for Kubernetes er et ganske spesifikt og ungt område. Likevel utvikler det seg veldig aktivt: allerede finnes det både ganske modne løsninger og helt nye, som fortsatt har mye å lære. De er tilpasset ulike bruksområder og tilbyr funksjoner og utseende nesten for enhver smak. Vi håper denne oversikten vil hjelpe til med å finne det verktøyet som best dekker de nåværende behovene.

P.S.

Takk til kvaps for dataene om OpenShift Console til sammenligningstabellen!

Also read in our blog:

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster