Oversikt over GUIer for Kubernetes

Oversikt over GUIer for Kubernetes

For fullverdig arbeid med systemet er kunnskap om kommandolinjeverktøy viktig: i tilfellet med Kubernetes er dette kubectl. På den annen side kan godt utformede, gjennomtenkte grafiske grensesnitt yteоde fleste av de vanlige oppgavene og åpner for ytterligere muligheter for drift av systemer.

I fjor publiserte vi en oversettelse liten oversikt over web-UI for Kubernetes, tidsbestemt til å falle sammen med kunngjøringen av nettgrensesnittet Kubernetes WebView. Forfatteren av den artikkelen og selve verktøyet, Henning Jacobs fra Zalando, posisjonerte nettopp det nye produktet som "kubectl for nettet". Han ønsket å lage et verktøy med brukervennlige muligheter for interaksjon i et teknisk støtteformat (for eksempel raskt vise problemet med en nettlenke) og for å svare på hendelser, søke etter problemer i mange klynger samtidig. Hans avkom utvikler seg på det nåværende tidspunkt (hovedsakelig ved innsatsen fra forfatteren selv).

Ettersom vi betjener mange Kubernetes-klynger av forskjellige størrelser, er vi også interessert i muligheten til å tilby et visuelt arbeidsverktøy til kundene. Når vi valgte et passende grensesnitt, var følgende funksjoner nøkkelen for oss:

  • støtte for differensiering av brukerrettigheter (RBAC);
  • visualisering av navneromstilstanden og standard Kubernetes-primitiver (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • få tilgang til kommandolinjen inne i poden;
  • vise logger av pods;
  • se statusen til pods (describe status);
  • fjerning av pods.

Andre funksjoner, som å se forbrukte ressurser (i sammenheng med poder/kontrollere/navnerom), opprette/redigere K8s primitiver, er ikke relevante i arbeidsflyten vår.

Vi starter anmeldelsen med det klassiske Kubernetes Dashboard, som er vår standard. Siden verden ikke står stille (noe som betyr at Kubernetes har flere og flere nye GUIer), vil vi også snakke om de nåværende alternativene, og oppsummere alt i en sammenlignende tabell på slutten av artikkelen.

NB: I gjennomgangen vil vi ikke gjenta med de løsningene som allerede er vurdert i siste artikkel, men for fullstendighetens skyld er de relevante alternativene fra den (K8Dash, Octant, Kubernetes Web View) inkludert i slutttabellen.

1. Kubernetes Dashboard

  • Dokumentasjonsside;
  • oppbevaringssted (8000+ GitHub-stjerner);
  • Lisens: Apache 2.0;
  • Kort sagt: «Universelt webgrensesnitt for Kubernetes-klynger. Den lar brukere administrere og feilsøke applikasjoner som kjører i klyngen, samt administrere klyngen selv."

Oversikt over GUIer for Kubernetes

Dette er et panel for generell bruk som dekkes av Kubernetes-forfatterne i den offisielle dokumentasjonen (men ikke deployerbar misligholde). Den er designet for behovene til daglig drift og feilsøking av applikasjoner i en klynge. Hjemme bruker vi det som et fullverdig lett visuelt verktøy som lar oss gi utviklere nødvendig og tilstrekkelig tilgang til klyngen. Dens evner dekker alle deres behov som oppstår i prosessen med å bruke klyngen (I denne artikkelen vi demonstrerte noen funksjoner i panelet). Som du kanskje gjetter betyr dette at den tilfredsstiller alle kravene ovenfor.

Blant hovedfunksjonene til Kubernetes Dashboard:

  • Navigasjon: vis hovedobjektene til K8s i sammenheng med navnerom.
  • Hvis du har administratorrettigheter, viser panelet noder, navnerom og vedvarende volumer. For noder er statistikk tilgjengelig om bruk av minne, prosessor, ressursallokering, metrikk, status, hendelser, etc.
  • Se applikasjoner som er distribuert i et navneområde etter type (Deployment, StatefulSet, etc.), relasjoner mellom dem (ReplicaSet, Horizontal Pod Autoscaler), generell og personlig statistikk og informasjon.
  • Se tjenester og ingresser, samt deres relasjoner til pods og endepunkter.
  • Vis filobjekter og lagringer: Vedvarende volum og vedvarende volumkrav.
  • Vis og rediger ConfigMap og Secret.
  • Se logger.
  • Kommandolinjetilgang i containere.

En betydelig ulempe (men ikke for oss) er at det ikke er støtte for flerklyngearbeid. Prosjektet er aktivt utviklet av fellesskapet og opprettholder relevante funksjoner med utgivelsen av nye versjoner og spesifikasjoner av Kubernetes API: den siste versjonen av panelet er v2.0.1 22. mai 2020 – Testet for kompatibilitet med Kubernetes 1.18.

2. linse

Oversikt over GUIer for Kubernetes

Prosjektet er posisjonert som et komplett integrert utviklingsmiljø (IDE) for Kubernetes. Dessuten er den optimalisert for å fungere med mange klynger og et stort antall pods som kjører i dem (testet på 25 XNUMX pods).

Hovedfunksjoner/egenskaper til Lens:

  • Frittstående applikasjon som ikke krever installasjon av noe inne i klyngen (mer presist vil Prometheus være pålagt å få alle metrikkene, men en eksisterende installasjon kan også brukes til dette). "Hovedinstallasjonen" gjøres på en personlig datamaskin som kjører Linux, macOS eller Windows.
  • Multi-cluster management (hundrevis av klynger støttes).
  • Visualisering av klyngens tilstand i sanntid.
  • Ressursbruksgrafer og trender med historie basert på innebygd Prometheus.
  • Tilgang til kommandolinjen for containere og klyngenoder.
  • Full støtte for Kubernetes RBAC.

Nåværende utgivelse - 3.5.0 datert 16. juni 2020 Opprinnelig opprettet av Kontena, i dag er all immateriell eiendom blitt overført til en spesiell organisasjon Lakeland Labs, kalt "en forening av nettbaserte geeks og teknologer", som er ansvarlig for "bevaring og tilgjengelighet av Kontenas åpen kildekode-programvare og -produkter."

Lens er det nest mest populære prosjektet på GitHub fra GUI for Kubernetes-kategorien, og "mister" bare selve Kubernets Dashboard. Alle andre åpen kildekode-løsninger som ikke er fra CLI*-kategorien er betydelig dårligere i popularitet.

* Se om K9s i bonusdelen av anmeldelsen.

3. Kubernetic

Oversikt over GUIer for Kubernetes

Dette er en proprietær applikasjon som er installert på en personlig datamaskin (Linux, macOS, Windows støttes). Forfatterne lover en fullstendig erstatning av kommandolinjeverktøyet, og med det - ingen grunn til å huske kommandoer og til og med en tidobling av hastigheten.

En av de interessante funksjonene til verktøyet er den innebygde støtten for Helm-diagrammer, og en av ulempene er mangelen på applikasjonsytelsesmålinger.

Hovedtrekkene til Kubernetic:

  • Praktisk visning av klyngestatus. Én skjerm for å vise alle relaterte klyngeobjekter og deres avhengigheter; rød/grønn beredskapsstatus for alle objekter; klyngestatusvisningsmodus med sanntidsstatusoppdateringer.
  • Hurtighandlingsknapper for å slette og skalere applikasjonen.
  • Støtte for flerklyngedrift.
  • Enkelt arbeid med navneområder.
  • Støtte for Helm-diagrammer og Helm-depoter (inkludert private). Installere og administrere diagrammer i webgrensesnittet.

Den nåværende kostnaden for produktet er en engangsbetaling på 30 euro for bruk av én person for et hvilket som helst antall navneområder og klynger.

4. Kubevious

  • Området;
  • presentasjon;
  • oppbevaringssted (~500 GitHub-stjerner);
  • Lisens: Apache 2.0
  • Kort sagt: "Kubevious gjør Kubernetes-klynger, applikasjonskonfigurasjon og statusvisning trygge og enkle å forstå."

Oversikt over GUIer for Kubernetes

Ideen med prosjektet er å lage et verktøy designet for å analysere og feilsøke applikasjonskonfigurasjoner distribuert i en klynge. Forfatterne fokuserte først og fremst på implementeringen av disse funksjonene, og la mer generelle ting til senere.

Nøkkelfunksjoner og funksjoner til Kubevious:

  • Klyngevisualisering på en applikasjonssentrisk måte: relaterte objekter i grensesnittet er gruppert i et hierarki.
  • Visuell visning av avhengigheter i konfigurasjoner og gjennomgripende konsekvenser av endringene deres.
  • Visning av klyngekonfigurasjonsfeil: misbruk av etiketter, tapte porter, etc. (Forresten, hvis du er interessert i denne funksjonen, vær oppmerksom på Polarissom vi allerede skrevet.)
  • I tillegg til forrige punkt er deteksjon av potensielt farlige beholdere tilgjengelig, d.v.s. har for mange privilegier (attributter hostPID, hostNetwork, hostIPC, montere docker.sock etc).
  • Avansert søkesystem for klyngen (ikke bare ved navn på objekter, men også etter deres egenskaper).
  • Verktøy for kapasitetsplanlegging og ressursoptimalisering.
  • Innebygd "tidsmaskin" (muligheten til å se tidligere endringer i konfigurasjonen av objekter).
  • RBAC-administrasjon med en pivotrelatert tabell over roller, rollebindinger, servicekontoer.
  • Fungerer med bare én klynge.

Prosjektet har en veldig kort historie (den første utgivelsen fant sted 11. februar 2020) og det ser ut til at det har vært en periode med enten stabilisering eller nedgang i utviklingen. Hvis tidligere versjoner ble utgitt ofte, er den siste utgivelsen (v0.5 15. april 2020) har ligget bak det opprinnelige utviklingstakten. Dette skyldes sannsynligvis det lille antallet bidragsytere: det er bare 4 av dem i depotets historie, og alt det faktiske arbeidet utføres av én person.

5. Kubewise

  • Prosjektside;
  • Lisens: proprietær (blir åpen kildekode);
  • Kort sagt: "En enkel multiplattformklient for Kubernetes."

Oversikt over GUIer for Kubernetes

Et nytt produkt fra VMware, opprinnelig opprettet som en del av et internt hackathon (i juni 2019). Installert på en personlig datamaskin, fungerer på grunnlag av Electron (Linux, macOS og Windows støttes) og krever kubectl v1.14.0 eller nyere.

Hovedtrekk ved Kubewise:

  • Grensesnittinteraksjon med de mest brukte Kubernetes-enhetene: noder, navnerom, etc.
  • Støtte for flere kubeconfig-filer for forskjellige klynger.
  • Terminal med muligheten til å angi en miljøvariabel KUBECONFIG.
  • Generer tilpassede kubeconfig-filer for det gitte navneområdet.
  • Avanserte sikkerhetsfunksjoner (RBAC, passord, tjenestekontoer).

Så langt har prosjektet bare én utgivelse - versjon 1.1.0 datert 26. november 2019. Dessuten planla forfatterne å umiddelbart gi den ut som åpen kildekode, men på grunn av interne problemer (ikke relatert til tekniske problemer) kunne de ikke gjøre dette. Fra og med mai 2020 jobber forfatterne med neste utgivelse og bør samtidig starte kodeåpningsprosessen.

6. OpenShift-konsoll

Oversikt over GUIer for Kubernetes

Til tross for at dette nettgrensesnittet er en del av OpenShift-distribusjonen (det er installert der ved hjelp av spesiell operatør), forfattere sørget for muligheten til å installere / bruke den i vanlige (vanilje) Kubernetes-installasjoner.

OpenShift-konsollen har vært under utvikling i lang tid, så den har inkorporert mange funksjoner. Vi vil nevne de viktigste:

  • Delt grensesnitttilnærming - to "perspektiver" av mulighetene som er tilgjengelige i konsollen: for administratorer og for utviklere. Modus utviklerperspektiv grupperer objekter i en mer forståelig form for utviklere (etter applikasjoner) og fokuserer grensesnittet på å løse slike typiske oppgaver som å distribuere applikasjoner, spore bygge-/distribusjonsstatus og til og med redigere kode gjennom Eclipse Che.
  • Håndtering av arbeidsbelastninger, nettverk, lagring, tilgangsrettigheter.
  • Logisk separasjon for arbeidsbelastninger i prosjekter og applikasjoner. I en av de siste utgivelsene - v4.3 - dukket spesiell Prosjekt dashbord, som viser de vanlige dataene (antall og statuser for distribusjoner, pods osv.; ressursforbruk og andre beregninger) i en prosjektdel.
  • Oppdatert i sanntidsvisning av klyngens tilstand, endringer (hendelser) som har skjedd i den; visning av logger.
  • Se overvåkingsdata basert på Prometheus, Alertmanager og Grafana.
  • Ledelse av operatører representert i Operatørhub.
  • Administrer bygg som kjører gjennom Docker (fra et spesifisert depot med en Dockerfile), S2I eller vilkårlige eksterne verktøy.

NB: Vi la ikke til andre i sammenligningen Kubernetes-distribusjoner (for eksempel den mye mindre kjente Kubesphere): til tross for at GUI kan være veldig avansert i dem, kommer det vanligvis som en del av den integrerte stabelen til et stort system. Men hvis du tror at det ikke er nok løsninger som fungerer fullt ut i vanilla K8s-installasjonen, gi oss beskjed i kommentarfeltet.

bonus

1. Portainer på Kubernetes i Beta

Et prosjekt fra Portainer-teamet, som utviklet det populære grensesnittet med samme navn for å jobbe med Docker. Siden prosjektet er på et tidlig stadium av utviklingen (den første og eneste betaversjonen kom ut 16. april 2020), evaluerte vi ikke funksjonene. Det kan imidlertid være av interesse for mange: hvis dette handler om deg, følg utviklingen.

2. IcePanel

  • Området;
  • Lisens: proprietær;
  • Kort sagt: "Visuell Kubernetes Editor".

Oversikt over GUIer for Kubernetes

Denne unge skrivebordsapplikasjonen har som mål å visualisere og administrere Kubernetes-ressurser i sanntid med et enkelt dra-og-slipp-grensesnitt. Objekter som støttes for øyeblikket er Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap og Secret. Snart lover de å legge til støtte for Helm. De største ulempene er kodens nærhet (det forventes åpner "på en eller annen måte") og mangelen på Linux-støtte (foreløpig er bare versjoner for Windows og macOS tilgjengelig, selv om dette også mest sannsynlig bare er et spørsmål om tid).

3.k9s

  • Området;
  • Demonstrasjon;
  • oppbevaringssted (~7700 GitHub-stjerner);
  • Lisens: Apache 2.0;
  • Kort sagt: "Et konsollgrensesnitt for Kubernetes som lar deg administrere klyngen din med stil."

Oversikt over GUIer for Kubernetes

Verktøyet var bare i bonusdelen av anmeldelsen av den grunn at det tilbyr en konsoll-GUI. Imidlertid presset forfatterne bokstavelig talt maksimalt ut av terminalen, og tilbyr ikke bare et brukervennlig grensesnitt, men også 6 forhåndsdefinerte temaer, og et avansert system med hurtigtaster og kommandoaliaser. Deres grundige tilnærming var ikke begrenset til utseende: k9s-funksjoner er behagelig imponerende: ressursstyring, visning av klyngens tilstand, visning av ressurser i en hierarkisk representasjon med avhengigheter, visning av logger, RBAC-støtte, utvidelse av funksjoner gjennom plugins ... Alt dette appellerte til det brede K8s-fellesskapet: antallet GitHub-stjernene i prosjektet er nesten like gode som det offisielle Kubernetes Dashboard!

4. Applikasjonskontrollpaneler

Og på slutten av anmeldelsen - en egen minikategori. Den inkluderte to nettgrensesnitt designet ikke for den omfattende administrasjonen av Kubernetes-klynger, men for å administrere det som er distribuert i dem.

Som du vet, er et av de mest modne og utbredte verktøyene for å distribuere komplekse applikasjoner i Kubernetes Helm. I løpet av eksistensperioden har mange pakker (Helm-diagrammer) samlet seg for enkel distribusjon mange populære applikasjoner. Derfor er utseendet til passende visuelle verktøy som lar deg administrere livssyklusen til diagrammer ganske logisk.

4.1. Monokulær

  • oppbevaringssted (1300+ GitHub-stjerner);
  • Lisens: Apache 2.0;
  • Kort sagt: «En nettapplikasjon for å søke og oppdage Helm-diagrammer på tvers av flere depoter. Fungerer som grunnlag for Helm hub-prosjektet."

Oversikt over GUIer for Kubernetes

Denne utviklingen fra forfatterne av Helm er installert i Kubernetes og fungerer innenfor samme klynge og utfører oppgaven. Imidlertid er prosjektet nesten ikke utviklet for øyeblikket. Hovedformålet er å støtte eksistensen av Helm Hub. For andre behov anbefaler forfatterne Kubeapps (se nedenfor) eller Red Hat Automation Broker (en del av OpenShift, men som heller ikke lenger utvikles).

4.2. Kubeapps

Oversikt over GUIer for Kubernetes

Et produkt fra Bitnami, som også er installert i en Kubernetes-klynge, men som skiller seg fra Monocular i sitt første fokus på arbeid med private repositories.

Nøkkelfunksjoner og funksjoner i Kubeapps:

  • Se og installer Helm-diagrammer fra depoter.
  • Sjekk, oppdater og fjern Helm-baserte applikasjoner installert på klyngen.
  • Støtte for tilpassede og private kartlagre (støtter ChartMuseum og JFrog Artifactory).
  • Se og arbeide med eksterne tjenester - fra tjenestekatalogen og tjenestemeglere.
  • Publisering av installerte applikasjoner ved å bruke mekanismen Service Catalog Bindings.
  • Støtte for autentisering og separasjon av rettigheter ved hjelp av RBAC.

Oppsummeringstabell

Nedenfor er en oppsummeringstabell der vi har forsøkt å oppsummere og samle hovedtrekkene til eksisterende visuelle grensesnitt for å lette sammenligning:

Oversikt over GUIer for Kubernetes
(Nettversjon av tabellen tilgjengelig på Google Dokumenter.)

Konklusjon

GUIer for Kubernetes er en ganske spesifikk og ung nisje. Det utvikler seg imidlertid veldig aktivt: det er allerede mulig å finne både ganske modne løsninger og veldig unge, som fortsatt har plass til å vokse. De passer til en rekke bruksområder, og tilbyr funksjoner og utseende som passer nesten enhver smak. Vi håper at denne anmeldelsen vil hjelpe deg å velge det verktøyet som passer best for dine nåværende behov.

PS

Takk skal du ha kvaps for dataene på OpenShift-konsollen for sammenligningstabellen!

Les også på bloggen vår:

Kilde: www.habr.com

Legg til en kommentar