Oversigt over GUI'er til Kubernetes

Oversigt over GUI'er til Kubernetes

For fuldgyldigt arbejde med systemet er viden om kommandolinjeværktøjer vigtig: i tilfælde af Kubernetes er dette kubectl. På den anden side kan veldesignede, gennemtænkte grafiske grænseflader fungereоde fleste af de sædvanlige opgaver og åbner op for yderligere muligheder for drift af systemer.

Sidste år udgav vi en oversættelse lille oversigt over web UI for Kubernetes, tidsindstillet til at falde sammen med annonceringen af ​​webgrænsefladen Kubernetes WebView. Forfatteren til den artikel og selve værktøjet, Henning Jacobs fra Zalando, har netop positioneret det nye produkt som "kubectl til nettet". Han ønskede at skabe et værktøj med brugervenlige muligheder for interaktion i et teknisk supportformat (for eksempel hurtigt at vise problemet med et weblink) og til at reagere på hændelser, søge efter problemer i mange klynger på samme tid. Hans afkom udvikler sig på nuværende tidspunkt (hovedsageligt af forfatteren selv).

Da vi betjener mange Kubernetes-klynger i forskellige størrelser, er vi også interesserede i at kunne levere et visuelt værktøj til vores kunder. Når vi valgte en passende grænseflade, var følgende funktioner nøglen for os:

  • støtte til differentiering af brugerrettigheder (RBAC);
  • visualisering af navneområdets tilstand og standard Kubernetes-primitiver (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • få adgang til kommandolinjen inde i poden;
  • visning af logs af bælg;
  • se status for pods (describe status);
  • fjernelse af bælg.

Andre funktioner, såsom visning af forbrugte ressourcer (i forbindelse med pods/controllere/navneområder), oprettelse/redigering af K8s primitiver, er ikke relevante i vores arbejdsgang.

Vi starter anmeldelsen med det klassiske Kubernetes Dashboard, som er vores standard. Da verden ikke står stille (hvilket betyder, at Kubernetes har flere og flere nye GUI'er), vil vi også tale om dens nuværende alternativer og opsummere alt i en sammenlignende tabel i slutningen af ​​artiklen.

NB: I gennemgangen vil vi ikke gentage med de løsninger, der allerede er overvejet i sidste artikel, men for fuldstændighedens skyld er de relevante muligheder fra den (K8Dash, Octant, Kubernetes Web View) inkluderet i den endelige tabel.

1. Kubernetes Dashboard

  • Dokumentationsside;
  • depot (8000+ GitHub-stjerner);
  • Licens: Apache 2.0;
  • Kort sagt: “Universal webgrænseflade til Kubernetes-klynger. Det giver brugerne mulighed for at administrere og fejlfinde applikationer, der kører i klyngen, samt administrere klyngen selv."

Oversigt over GUI'er til Kubernetes

Dette er et panel til generelle formål, der er dækket af Kubernetes-forfatterne i den officielle dokumentation (men ikke deployerbar Standard). Det er designet til behovene for daglig drift og fejlfinding af applikationer i en klynge. Derhjemme bruger vi det som et fuldgyldigt letvægtsvisuelt værktøj, der giver os mulighed for at give udviklere den nødvendige og tilstrækkelige adgang til klyngen. Dens muligheder dækker alle deres behov, der opstår i processen med at bruge klyngen (I denne artikel vi demonstrerede nogle funktioner i panelet). Som du måske kan gætte, betyder det, at den opfylder alle vores krav, der er anført ovenfor.

Blandt hovedfunktionerne i Kubernetes Dashboard:

  • Navigation: se hovedobjekterne i K8s i forbindelse med navnerum.
  • Hvis du har administratorrettigheder, viser panelet noder, navnerum og vedvarende volumener. For noder er statistik tilgængelig om brug af hukommelse, processor, ressourceallokering, metrikker, status, hændelser osv.
  • Se applikationer implementeret i et navneområde efter deres type (Deployment, StatefulSet osv.), relationer mellem dem (ReplicaSet, Horizontal Pod Autoscaler), generel og personlig statistik og information.
  • Se tjenester og indgange samt deres relationer til pods og endepunkter.
  • Se filobjekter og -lager: Vedvarende volumen og vedvarende volumenkrav.
  • Se og rediger ConfigMap og Secret.
  • Se logfiler.
  • Kommandolinjeadgang i containere.

En væsentlig ulempe (dog ikke for os) er, at der ikke er understøttelse af multi-cluster arbejde. Projektet er aktivt udviklet af fællesskabet og vedligeholder relevante funktioner med udgivelsen af ​​nye versioner og specifikationer af Kubernetes API: den seneste version af panelet er v2.0.1 22. maj 2020 - Testet for kompatibilitet med Kubernetes 1.18.

2. objektiv

Oversigt over GUI'er til Kubernetes

Projektet er placeret som et komplet integreret udviklingsmiljø (IDE) for Kubernetes. Desuden er den optimeret til at arbejde med mange klynger og et stort antal pods, der kører i dem (testet på 25 pods).

Hovedfunktioner/egenskaber ved Lens:

  • Standalone applikation, der ikke kræver installation af noget inde i klyngen (mere præcist vil Prometheus være påkrævet for at få alle metrik, men en eksisterende installation kan også bruges til dette). "Hovedinstallationen" udføres på en personlig computer, der kører Linux, macOS eller Windows.
  • Multi-cluster management (understøttet hundredvis af klynger).
  • Visualisering af klyngens tilstand i realtid.
  • Ressourceforbrugsgrafer og trends med historie baseret på indbygget Prometheus.
  • Adgang til kommandolinjen for containere og på klynge noder.
  • Fuld support til Kubernetes RBAC.

Nuværende udgivelse - 3.5.0 dateret 16. juni 2020 Oprindeligt skabt af Kontena, i dag er al intellektuel ejendomsret blevet overført til en særlig organisation Lakeland Labs, kaldet "en forening af cloud-native nørder og teknologer", som er ansvarlig for "bevaring og tilgængelighed af Kontenas Open Source software og produkter."

Lens er det næstmest populære projekt på GitHub fra GUI for Kubernetes-kategorien, og "taber" kun selve Kubernets Dashboard. Alle andre Open Source-løsninger, der ikke er fra CLI*-kategorien, er betydeligt ringere i popularitet.

* Se om K9s i bonusdelen af ​​anmeldelsen.

3. Kubernetic

Oversigt over GUI'er til Kubernetes

Dette er et proprietært program, der er installeret på en personlig computer (Linux, macOS, Windows understøttes). Dens forfattere lover en komplet udskiftning af kommandolinjeværktøjet, og med det - ingen grund til at huske kommandoer og endda en tidobling af hastigheden.

En af de interessante funktioner ved værktøjet er den indbyggede understøttelse af Helm-diagrammer, og en af ​​ulemperne er manglen på applikationsydelsesmålinger.

Hovedtræk ved Kubernetic:

  • Praktisk visning af klyngestatus. Én skærm til at se alle relaterede klyngeobjekter og deres afhængigheder; rød/grøn beredskabsstatus for alle objekter; klyngestatusvisningstilstand med statusopdateringer i realtid.
  • Hurtige handlingsknapper til at slette og skalere applikationen.
  • Understøttelse af multi-cluster drift.
  • Enkelt arbejde med navnerum.
  • Understøttelse af Helm-diagrammer og Helm-depoter (inklusive private). Installation og styring af diagrammer i webgrænsefladen.

Den aktuelle pris for produktet er en engangsbetaling på 30 euro for dets brug af én person for et vilkårligt antal navnerum og klynger.

4. Kubevious

  • Site;
  • præsentation;
  • depot (~500 GitHub stjerner);
  • Licens: Apache 2.0
  • Kort sagt: "Kubevious gør Kubernetes-klynger, applikationskonfiguration og statusvisning sikre og nemme at forstå."

Oversigt over GUI'er til Kubernetes

Ideen med projektet er at skabe et værktøj designet til at analysere og fejlsøge applikationskonfigurationer implementeret i en klynge. Forfatterne fokuserede primært på implementeringen af ​​disse funktioner, og efterlod mere generelle ting til senere.

Nøglefunktioner og funktioner i Kubevious:

  • Klyngevisualisering på en applikationscentreret måde: relaterede objekter i grænsefladen er grupperet i et hierarki.
  • Visuel visning af afhængigheder i konfigurationer og overlappende konsekvenser af deres ændringer.
  • Visning af klyngekonfigurationsfejl: misbrug af etiketter, mistede porte osv. (Forresten, hvis du er interesseret i denne funktion, skal du være opmærksom på Polarisom hvilket vi allerede skrevet.)
  • Ud over det foregående punkt er detektion af potentielt farlige beholdere tilgængelig, dvs. at have for mange privilegier (attributter hostPID, hostNetwork, hostIPC, montere docker.sock etc).
  • Avanceret søgesystem for klyngen (ikke kun efter navnene på objekter, men også efter deres egenskaber).
  • Værktøjer til kapacitetsplanlægning og ressourceoptimering.
  • Indbygget "tidsmaskine" (evnen til at se tidligere ændringer i konfigurationen af ​​objekter).
  • RBAC-administration med en pivot-sammenhængende tabel over roller, rollebindinger, servicekonti.
  • Fungerer kun med én klynge.

Projektet har en meget kort historie (den første udgivelse fandt sted den 11. februar 2020), og det ser ud til, at der har været en periode med enten stabilisering eller opbremsning i udviklingen. Hvis tidligere versioner blev udgivet ofte, så den seneste udgivelse (v0.5 15. april 2020) har haltet efter det indledende udviklingstempo. Dette skyldes sandsynligvis det lille antal bidragydere: Der er kun 4 af dem i depotets historie, og alt det faktiske arbejde udføres af én person.

5. Kubewise

  • Projektside;
  • Licens: proprietær (vil blive Open Source);
  • Kort sagt: "En simpel multi-platform klient til Kubernetes."

Oversigt over GUI'er til Kubernetes

Et nyt produkt fra VMware, oprindeligt skabt som en del af et internt hackathon (i juni 2019). Installeret på en personlig computer, fungerer på basis af Electron (Linux, macOS og Windows understøttes) og kræver kubectl v1.14.0 eller nyere.

Hovedtræk ved Kubewise:

  • Interface-interaktion med de mest almindeligt anvendte Kubernetes-enheder: noder, navnerum osv.
  • Understøttelse af flere kubeconfig-filer til forskellige klynger.
  • Terminal med mulighed for at indstille en miljøvariabel KUBECONFIG.
  • Generer brugerdefinerede kubeconfig-filer til det givne navneområde.
  • Avancerede sikkerhedsfunktioner (RBAC, adgangskoder, servicekonti).

Indtil videre har projektet kun én udgivelse - version 1.1.0 dateret 26. november 2019. Desuden planlagde forfatterne straks at frigive det som Open Source, men på grund af interne problemer (ikke relateret til tekniske problemer) kunne de ikke gøre dette. Fra maj 2020 arbejder forfatterne på den næste udgivelse og bør på samme tid indlede processen med at åbne kode.

6. OpenShift-konsol

Oversigt over GUI'er til Kubernetes

På trods af at denne webgrænseflade er en del af OpenShift-distributionen (den er installeret der ved hjælp af speciel operatør), forfattere forudsat evnen til at installere / bruge det i normale (vanilla) Kubernetes-installationer.

OpenShift Console har været under udvikling i lang tid, så den har inkorporeret mange funktioner. Vi vil nævne de vigtigste:

  • Delt interface tilgang - to "perspektiver" af de muligheder, der er tilgængelige i konsollen: for administratorer og for udviklere. Mode udviklerperspektiv grupperer objekter i en form, der er mere forståelig for udviklere (efter applikationer) og fokuserer grænsefladen på at løse sådanne typiske opgaver som implementering af applikationer, sporing af build/deploy-status og endda redigering af kode gennem Eclipse Che.
  • Håndtering af arbejdsbelastninger, netværk, lagring, adgangsrettigheder.
  • Logisk adskillelse af arbejdsbelastninger i projekter og applikationer. I en af ​​de seneste udgivelser - v4.3 - optrådte speciel Projekt dashboard, som viser de sædvanlige data (antal og status for implementeringer, pods osv.; ressourceforbrug og andre målinger) i et projektudsnit.
  • Opdateret i realtidsvisning af klyngens tilstand, ændringer (hændelser), der er opstået i den; visning af logs.
  • Se overvågningsdata baseret på Prometheus, Alertmanager og Grafana.
  • Ledelse af operatører repræsenteret i operatørhub.
  • Administrer builds, der kører gennem Docker (fra et specificeret lager med en Dockerfile), S2I eller vilkårlige eksterne hjælpeprogrammer.

NB: Vi føjede ikke andre til sammenligningen Kubernetes distributioner (for eksempel den meget mindre kendte Kubesphere): på trods af at GUI'en kan være meget avanceret i dem, kommer den normalt som en del af den integrerede stak af et stort system. Men hvis du mener, at der ikke er nok løsninger, der fungerer fuldt ud i vanilla K8s-installationen, så lad os det vide i kommentarerne.

Bonus

1. Portainer på Kubernetes i Beta

  • Site;
  • depot (~100 GitHub stjerner);
  • Licens: Zlib(?) (samme for forældreprojektet).

Et projekt fra Portainer-teamet, som udviklede den populære grænseflade af samme navn til at arbejde med Docker. Da projektet er på et tidligt udviklingsstadium (den første og eneste betaversion kom ud 16. april 2020), evaluerede vi ikke dens funktioner. Det kan dog have interesse for mange: Handler det her om dig, så følg udviklingen.

2. IcePanel

  • Site;
  • Licens: proprietær;
  • Kort sagt: "Visuel Kubernetes Editor".

Oversigt over GUI'er til Kubernetes

Denne unge desktop-applikation har til formål at visualisere og administrere Kubernetes-ressourcer i realtid med en simpel træk og slip-grænseflade. Aktuelt understøttede objekter er Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap og Secret. Snart lover de at tilføje støtte til Helm. De største ulemper er kodens nærhed (det forventes åbner "på en eller anden måde") og manglen på Linux-understøttelse (indtil videre er kun versioner til Windows og macOS tilgængelige, selvom dette højst sandsynligt også kun er et spørgsmål om tid).

3.k9s

  • Site;
  • demonstration;
  • depot (~7700 GitHub stjerner);
  • Licens: Apache 2.0;
  • Kort sagt: "En konsolgrænseflade til Kubernetes, der giver dig mulighed for at administrere din klynge med stil."

Oversigt over GUI'er til Kubernetes

Hjælpeprogrammet var kun i bonusdelen af ​​anmeldelsen af ​​den grund, at det tilbyder en konsol-GUI. Forfatterne fik dog bogstaveligt talt presset det maksimale ud af terminalen og tilbød ikke kun en brugervenlig grænseflade, men også 6 foruddefinerede temaer og et avanceret system af tastaturgenveje og kommandoaliaser. Deres grundige tilgang var ikke begrænset til udseende: k9s funktioner er behageligt imponerende: ressourcestyring, visning af klyngens tilstand, visning af ressourcer i en hierarkisk repræsentation med afhængigheder, visning af logfiler, RBAC-understøttelse, udvidelse af muligheder gennem plugins ... Alt dette appellerede til det brede K8s-fællesskab: Antallet af GitHub-stjernerne i projektet er næsten lige så gode som det officielle Kubernetes Dashboard!

4. Applikationskontrolpaneler

Og i slutningen af ​​anmeldelsen - en separat mini-kategori. Det inkluderede to webgrænseflader, der ikke er designet til den omfattende styring af Kubernetes-klynger, men til at styre, hvad der er implementeret i dem.

Som du ved, er et af de mest modne og udbredte værktøjer til at implementere komplekse applikationer i Kubernetes Helm. I løbet af dens eksistens har mange pakker (Helm-diagrammer) akkumuleret for nem implementering mange populære applikationer. Derfor er udseendet af passende visuelle værktøjer, der giver dig mulighed for at styre diagrammets livscyklus, ret logisk.

4.1. Monokulær

  • depot (1300+ GitHub-stjerner);
  • Licens: Apache 2.0;
  • Kort sagt: "En webapplikation til at søge og opdage Helm-diagrammer på tværs af flere lagre. Fungerer som grundlag for Helm hub-projektet."

Oversigt over GUI'er til Kubernetes

Denne udvikling fra forfatterne af Helm er installeret i Kubernetes og arbejder inden for den samme klynge og udfører opgaven. Men på nuværende tidspunkt er projektet næsten ikke udviklet. Dens hovedformål er at støtte eksistensen af ​​Helm Hub. Til andre behov anbefaler forfatterne Kubeapps (se nedenfor) eller Red Hat Automation Broker (en del af OpenShift, men udvikles heller ikke længere).

4.2. Kubeapps

  • Site;
  • præsentation;
  • depot (~2100 GitHub stjerner);
  • Licens: Apache 2.0
  • Kort sagt: "Dit applikationsdashboard til Kubernetes."

Oversigt over GUI'er til Kubernetes

Et produkt fra Bitnami, som også er installeret i en Kubernetes-klynge, men som adskiller sig fra Monocular i sit indledende fokus på at arbejde med private repositories.

Nøglefunktioner og funktioner i Kubeapps:

  • Se og installer Helm-diagrammer fra depoter.
  • Kontroller, opdater og fjern Helm-baserede applikationer installeret på klyngen.
  • Understøttelse af brugerdefinerede og private diagramlager (understøtter ChartMuseum og JFrog Artifactory).
  • Se og arbejde med eksterne services - fra Servicekataloget og Servicemæglere.
  • Udgivelse af installerede applikationer ved hjælp af Service Catalog Bindings-mekanismen.
  • Understøttelse af autentificering og adskillelse af rettigheder ved hjælp af RBAC.

Finalebord

Nedenfor er en oversigtstabel, hvori vi har forsøgt at opsummere og aggregere de vigtigste funktioner i eksisterende visuelle grænseflader for at lette sammenligningen:

Oversigt over GUI'er til Kubernetes
(Online version af tabellen tilgængelig på Google Docs.)

Konklusion

GUI'er til Kubernetes er en ret specifik og ung niche. Det udvikler sig dog meget aktivt: Det er allerede muligt at finde både ret modne løsninger og meget unge, som stadig har plads til at vokse. De henvender sig til en række applikationer og tilbyder funktioner og udseende, der passer til næsten enhver smag. Vi håber, at denne anmeldelse vil hjælpe dig med at vælge det værktøj, der passer bedst til dine nuværende behov.

PS

tak skal du have kvaps for dataene på OpenShift-konsollen til sammenligningstabellen!

Læs også på vores blog:

Kilde: www.habr.com

Tilføj en kommentar