Oorsig van GUI's vir Kubernetes

Oorsig van GUI's vir Kubernetes

Vir volwaardige werk met die stelsel is kennis van opdragreëlhulpmiddels belangrik: in die geval van Kubernetes is dit kubectl. Aan die ander kant kan goed ontwerpte, deurdagte grafiese koppelvlakke werkоmeeste van die gewone take en bied bykomende geleenthede vir die werking van stelsels.

Verlede jaar het ons 'n vertaling gepubliseer klein oorsig van web-UI vir Kubernetes, tyd om saam te val met die aankondiging van die webkoppelvlak Kubernetes WebView. Die skrywer van daardie artikel en die nutsprogram self, Henning Jacobs van Zalando, het pas die nuwe produk as "kubectl vir die web" geposisioneer. Hy wou 'n instrument met gebruikersvriendelike vermoëns skep vir interaksie in 'n tegniese ondersteuningsformaat (byvoorbeeld om die probleem vinnig met 'n webskakel te wys) en om op insidente te reageer, en terselfdertyd na probleme in baie groepe te soek. Sy nageslag ontwikkel tans (hoofsaaklik deur die pogings van die skrywer self).

Aangesien ons baie Kubernetes-klusters van verskillende groottes bedien, stel ons ook belang daarin om 'n visuele hulpmiddel aan ons kliënte te kan verskaf. By die keuse van 'n geskikte koppelvlak was die volgende kenmerke vir ons die sleutel:

  • ondersteuning vir differensiasie van gebruikersregte (RBAC);
  • visualisering van die naamruimtestaat en standaard Kubernetes-primitiewe (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • kry toegang tot die opdragreël binne die peul;
  • bekyk logs van peule;
  • sien die status van peule (describe status);
  • die verwydering van peule.

Ander funksies, soos om verbruikte hulpbronne te bekyk (in die konteks van peule / beheerders / naamruimtes), die skep / redigeer van K8s-primitiewe, is nie relevant binne ons werkvloei nie.

Ons sal die hersiening begin met die klassieke Kubernetes Dashboard, wat ons standaard is. Aangesien die wêreld nie stilstaan ​​nie (wat beteken dat Kubernetes meer en meer nuwe GUI's het), sal ons ook oor sy huidige alternatiewe praat, en alles in 'n vergelykende tabel aan die einde van die artikel opsom.

NB: In die resensie sal ons nie herhaal met daardie oplossings wat reeds oorweeg is in laaste artikel, egter, volledigheidshalwe, is die relevante opsies daaruit (K8Dash, Octant, Kubernetes Web View) in die finale tabel ingesluit.

1. Kubernetes Dashboard

  • Dokumentasie bladsy;
  • bewaarplek (8000+ GitHub-sterre);
  • Lisensie: Apache 2.0;
  • Kortom: “Universele webkoppelvlak vir Kubernetes-klusters. Dit stel gebruikers in staat om toepassings wat in die groepering loop, te bestuur en op te los, asook om die groep self te bestuur.”

Oorsig van GUI's vir Kubernetes

Dit is 'n algemene doelpaneel wat deur die Kubernetes-outeurs in die amptelike dokumentasie gedek word (maar nie-ontplooibaar verstek). Dit is ontwerp vir die behoeftes van alledaagse werking en ontfouting van toepassings in 'n groepering. By die huis gebruik ons ​​dit as 'n volwaardige liggewig visuele hulpmiddel wat ons in staat stel om ontwikkelaars van die nodige en voldoende toegang tot die groepering te voorsien. Sy vermoëns dek al hul behoeftes wat ontstaan ​​tydens die gebruik van die groepering (In die Hierdie artikel ons het 'n paar kenmerke van die paneel gedemonstreer). Soos u dalk kan raai, beteken dit dat dit voldoen aan al ons vereistes hierbo gelys.

Van die hoofkenmerke van Kubernetes Dashboard:

  • Navigasie: bekyk die hoofvoorwerpe van K8's in die konteks van naamruimtes.
  • As jy administrateurregte het, wys die paneel nodusse, naamruimtes en aanhoudende volumes. Vir nodusse is statistieke beskikbaar oor die gebruik van geheue, verwerker, hulpbrontoewysing, metrieke, status, gebeure, ens.
  • Bekyk toepassings wat in 'n naamruimte ontplooi is volgens hul tipe (Deployment, StatefulSet, ens.), verhoudings tussen hulle (ReplicaSet, Horizontal Pod Autoscaler), algemene en persoonlike statistieke en inligting.
  • Bekyk dienste en Ingresse, sowel as hul verhoudings met peule en eindpunte.
  • Bekyk lêervoorwerpe en bergings: Aanhoudende volume en aanhoudende volume-eis.
  • Bekyk en wysig ConfigMap en Secret.
  • Bekyk logs.
  • Opdragreëltoegang in houers.

'n Beduidende nadeel (maar nie vir ons nie) is dat daar geen ondersteuning vir multi-kluster werk is nie. Die projek word aktief deur die gemeenskap ontwikkel en handhaaf relevante kenmerke met die vrystelling van nuwe weergawes en spesifikasies van die Kubernetes API: die nuutste weergawe van die paneel is v2.0.1 22 Mei 2020 - Getoets vir versoenbaarheid met Kubernetes 1.18.

2.Lens

Oorsig van GUI's vir Kubernetes

Die projek is geposisioneer as 'n volledige geïntegreerde ontwikkelingsomgewing (IO) vir Kubernetes. Boonop is dit geoptimaliseer om met baie groepe te werk en 'n groot aantal peule wat daarin loop (getoets op 25 XNUMX peule).

Belangrikste kenmerke / vermoëns van Lens:

  • 'n Losstaande toepassing wat geen installasie binne die groep benodig nie (meer presies, Prometheus word benodig om alle metrieke te verkry, maar 'n bestaande installasie kan hiervoor gebruik word). Die "hoof"-installasie word op 'n persoonlike rekenaar uitgevoer wat loop. Linux, macOS of Windows.
  • Multi-klusterbestuur (honderde groepe ondersteun).
  • Visualisering van die toestand van die groepering in reële tyd.
  • Hulpbrongebruik grafieke en tendense met geskiedenis gebaseer op ingeboude Prometheus.
  • Toegang tot die opdragreël van houers en op cluster nodusse.
  • Volledige ondersteuning vir Kubernetes RBAC.

Huidige vrystelling - 3.5.0 gedateer 16 Junie 2020 Oorspronklik geskep deur Kontena, vandag is alle intellektuele eiendom oorgedra na 'n spesiale organisasie Lakeland Labs, genoem "'n unie van wolk-inheemse geeks en tegnoloë", wat verantwoordelik is vir die "bewaring en beskikbaarheid van Kontena se oopbronsagteware en produkte."

Lens is die tweede gewildste projek op GitHub uit die GUI vir Kubernetes-kategorie, wat slegs die Kubernets Dashboard self "verloor". Alle ander oopbron-oplossings wat nie uit die CLI*-kategorie is nie, is aansienlik minder in gewildheid.

* Sien oor K9's in die bonusgedeelte van die resensie.

3. Kubernetiese

Oorsig van GUI's vir Kubernetes

Dit is 'n eie toepassing wat op 'n persoonlike rekenaar geïnstalleer is (ondersteunde Linux, macOS, WindowsDie skeppers daarvan belowe 'n volledige vervanging vir die opdragreëlhulpprogram, wat die behoefte om opdragte te onthou uitskakel en selfs die bedryfspoed tienvoudig verhoog.

Een van die interessante kenmerke van die instrument is die ingeboude ondersteuning vir Helm-kaarte, en een van die nadele is die gebrek aan toepassingsprestasie-metrieke.

Belangrikste kenmerke van Kubernetic:

  • Gerieflike vertoning van die groepstatus. Een skerm om alle verwante trosvoorwerpe en hul afhanklikhede te sien; rooi/groen gereedheidstatus vir alle voorwerpe; groepstatusaansigmodus met intydse statusopdaterings.
  • Vinnige aksieknoppies om die toepassing uit te vee en te skaal.
  • Ondersteuning vir multi-kluster werking.
  • Eenvoudige werk met naamruimtes.
  • Ondersteuning vir Helm-kaarte en Helm-bewaarplekke (insluitend private). Installering en bestuur van kaarte in die webkoppelvlak.

Die huidige koste van die produk is 'n eenmalige betaling van 30 euro vir die gebruik daarvan deur een persoon vir enige aantal naamruimtes en groepe.

4. Kubevious

  • Site;
  • aanbieding;
  • bewaarplek (~500 GitHub-sterre);
  • Lisensie: Apache 2.0
  • Kortom: "Kubevious maak Kubernetes-klusters, toepassingkonfigurasie en statusbesigtiging veilig en maklik om te verstaan."

Oorsig van GUI's vir Kubernetes

Die idee van die projek is om 'n instrument te skep wat ontwerp is om toepassingkonfigurasies wat in 'n groep ontplooi is, te ontleed en te ontfout. Die skrywers het hoofsaaklik op die implementering van hierdie kenmerke gefokus, en meer algemene dinge vir later gelaat.

Sleutel kenmerke en funksies van Kubevious:

  • Clustervisualisering op 'n toepassinggesentreerde manier: verwante voorwerpe in die koppelvlak word gegroepeer, in 'n hiërargie.
  • Visuele vertoning van afhanklikhede in konfigurasies en deurlopende gevolge van hul veranderinge.
  • Vertoon van groepkonfigurasiefoute: misbruik van etikette, gemiste poorte, ens. (Terloops, as jy belangstel in hierdie kenmerk, let op Polariswaaroor ons reeds geskryf.)
  • Benewens die vorige punt, is opsporing van potensieel gevaarlike houers beskikbaar, m.a.w. met te veel voorregte (kenmerke hostPID, hostNetwork, hostIPC, berg docker.sock ens).
  • Gevorderde soekstelsel vir die groep (nie net deur die name van voorwerpe nie, maar ook deur hul eienskappe).
  • Gereedskap vir kapasiteitsbeplanning en hulpbronoptimalisering.
  • Ingeboude "tydmasjien" (die vermoë om vorige veranderinge in die konfigurasie van voorwerpe te sien).
  • RBAC bestuur met 'n spilpunt onderling verwante tabel van rolle, rolbindings, diensrekeninge.
  • Werk met slegs een cluster.

Die projek het 'n baie kort geskiedenis (die eerste vrystelling het op 11 Februarie 2020 plaasgevind) en dit blyk dat daar 'n tydperk van óf stabilisering óf verlangsaming in ontwikkeling was. As vorige weergawes gereeld vrygestel is, dan is die nuutste weergawe (v0.5 15 April 2020) het agter die aanvanklike tempo van ontwikkeling gebly. Dit is waarskynlik te wyte aan die klein aantal bydraers: daar is net 4 van hulle in die geskiedenis van die bewaarplek, en al die werklike werk word deur een persoon gedoen.

5. Kubewise

  • Projek Bladsy;
  • Lisensie: eie (sal oopbron word);
  • In kort: "'n Eenvoudige multi-platform kliënt vir Kubernetes."

Oorsig van GUI's vir Kubernetes

'n Nuwe produk van VMware, oorspronklik geskep as deel van 'n interne hackathon (in Junie 2019). Geïnstalleer op 'n persoonlike rekenaar, werk op die basis van Electron (ondersteun) Linux, macOS и Windows) en vereis kubectl nie laer as v1.14.0 nie.

Belangrikste kenmerke van Kubewise:

  • Koppelvlak-interaksie met die Kubernetes-entiteite wat die meeste gebruik word: nodusse, naamruimtes, ens.
  • Ondersteuning vir verskeie kubeconfig-lêers vir verskillende groepe.
  • Terminal met die vermoë om 'n omgewingsveranderlike in te stel KUBECONFIG.
  • Genereer pasgemaakte kubeconfig-lêers vir die gegewe naamspasie.
  • Gevorderde sekuriteitskenmerke (RBAC, wagwoorde, diensrekeninge).

Tot dusver het die projek net een weergawe - weergawe 1.1.0 gedateer 26 November 2019. Boonop het die skrywers beplan om dit onmiddellik as Oopbron vry te stel, maar weens interne probleme (wat nie verband hou met tegniese probleme nie) kon hulle dit nie doen nie. Vanaf Mei 2020 werk die skrywers aan die volgende vrystelling en behoort die kode oop proses terselfdertyd te begin.

6. OpenShift-konsole

Oorsig van GUI's vir Kubernetes

Ten spyte van die feit dat hierdie webkoppelvlak deel is van die OpenShift-verspreiding (dit word daar geïnstalleer met behulp van spesiale operateur), skrywers voorsiening maak vir die vermoë om dit te installeer / te gebruik in normale (vanielje) Kubernetes-installasies.

OpenShift Console is al lank in ontwikkeling, so dit het baie funksies ingesluit. Ons sal die belangrikste noem:

  • Gedeelde koppelvlakbenadering - twee "perspektiewe" van die moontlikhede wat in die konsole beskikbaar is: vir administrateurs en vir ontwikkelaars. Wyse ontwikkelaar perspektief groepeer voorwerpe in 'n vorm wat meer verstaanbaar is vir ontwikkelaars (volgens toepassings) en fokus die koppelvlak op die oplossing van tipiese take soos die ontplooiing van toepassings, die opsporing van bou/ontplooiing-status, en selfs die redigering van kode deur Eclipse Che.
  • Bestuur van werkladings, netwerk, berging, toegangsregte.
  • Logiese skeiding vir werkladings in projekte en toepassings. In een van die jongste vrystellings - v4.3 - verskyn spesiaal projek dashboard, wat die gewone data (die aantal en statusse van ontplooiings, peule, ens.; hulpbronverbruik en ander maatstawwe) in 'n projekstuk vertoon.
  • Opgedateer in reële tyd vertoning van die toestand van die groepering, veranderinge (gebeurtenisse) wat daarin plaasgevind het; logboeke bekyk.
  • Bekyk moniteringsdata gebaseer op Prometheus, Alertmanager en Grafana.
  • Bestuur van operateurs verteenwoordig in operateurhub.
  • Bestuur geboue wat deur Docker loop (vanaf 'n gespesifiseerde bewaarplek met 'n Dockerfile), S2I of arbitrêre eksterne nutsdienste.

NB: Ons het nie ander by die vergelyking gevoeg nie Kubernetes verspreidings (byvoorbeeld die veel minder bekende Kubesfeer): ten spyte van die feit dat die GUI baie gevorderd daarin kan wees, kom dit gewoonlik as deel van die geïntegreerde stapel van 'n groot stelsel. As jy egter dink dat daar nie genoeg oplossings is wat ten volle funksioneer in die vanilla K8s-installasie nie, laat weet ons in die kommentaar.

Bonus

1. Portainer op Kubernetes in Beta

  • Site;
  • bewaarplek (~100 GitHub-sterre);
  • Lisensie: Zlib(?) (dieselfde vir die ouerprojek).

'n Projek van die Portainer-span, wat die gewilde koppelvlak met dieselfde naam ontwikkel het om met Docker te werk. Aangesien die projek in 'n vroeë stadium van ontwikkeling is (die eerste en enigste beta-weergawe uitgekom 16 April 2020), het ons nie die kenmerke daarvan geëvalueer nie. Dit kan egter vir baie van belang wees: as dit oor jou gaan, volg die ontwikkeling.

2. IcePanel

  • Site;
  • Lisensie: eiendom;
  • In kort: "Visuele Kubernetes Editor".

Oorsig van GUI's vir Kubernetes

Hierdie jong rekenaartoepassing poog om Kubernetes-hulpbronne intyds te visualiseer en te bestuur met 'n eenvoudige sleep-en-los-koppelvlak. Huidige ondersteunde voorwerpe is Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap en Secret. Binnekort belowe hulle om ondersteuning vir Helm by te voeg. Die belangrikste nadele is die nabyheid van die kode (dit word verwag oopmaak "op een of ander manier") en gebrek aan ondersteuning Linux (slegs weergawes is tans beskikbaar) Windows и macOS, hoewel dit heel waarskynlik ook net 'n kwessie van tyd is).

3.k9s

  • Site;
  • Demonstrasie;
  • bewaarplek (~7700 GitHub-sterre);
  • Lisensie: Apache 2.0;
  • In kort: "'n Konsole-koppelvlak vir Kubernetes wat jou toelaat om jou groepering in styl te bestuur."

Oorsig van GUI's vir Kubernetes

Die hulpprogram was slegs in die bonusgedeelte van die resensie, omdat dit 'n konsole-GUI bied. Die skrywers het egter letterlik die maksimum uit die terminale gedruk, en bied nie net 'n gebruikersvriendelike koppelvlak nie, maar ook 6 voorafbepaalde temas, en 'n gevorderde stelsel van sleutelbordkortpaaie en opdragaliasse. Hul deeglike benadering was nie beperk tot voorkoms nie: k9s-kenmerke is aangenaam indrukwekkend: hulpbronbestuur, vertoon die toestand van die groepering, vertoon hulpbronne in 'n hiërargiese voorstelling met afhanklikhede, bekyk logs, RBAC-ondersteuning, uitbreiding van vermoëns deur inproppe ... Dit alles het 'n beroep gedoen aan die wye K8s-gemeenskap: die aantal Die GitHub-sterre van die projek is amper so goed soos die amptelike Kubernetes Dashboard!

4. Toepassingsbeheerpanele

En aan die einde van die resensie - 'n aparte mini-kategorie. Dit het twee webkoppelvlakke ingesluit wat nie ontwerp is vir die omvattende bestuur van Kubernetes-klusters nie, maar vir die bestuur van wat daarin ontplooi word.

Soos u weet, is Helm een ​​van die mees volwasse en wydverspreide instrumente vir die implementering van komplekse toepassings in Kubernetes. Oor die tydperk van sy bestaan ​​het baie pakkette (Helm-kaarte) opgehoop vir maklike ontplooiing baie gewilde toepassings. Daarom is die voorkoms van toepaslike visuele gereedskap wat u toelaat om die lewensiklus van kaarte te bestuur, redelik logies.

4.1. Monokulêr

  • bewaarplek (1300+ GitHub-sterre);
  • Lisensie: Apache 2.0;
  • Kortom: “'n Webtoepassing om Helm-kaarte oor verskeie bewaarplekke te soek en te ontdek. Dien as die basis vir die Helm-spilpuntprojek."

Oorsig van GUI's vir Kubernetes

Hierdie ontwikkeling van die skrywers van Helm is in Kubernetes geïnstalleer en werk binne dieselfde groepering en voer die taak uit. Op die oomblik is die projek egter amper nie ontwikkel nie. Die hoofdoel daarvan is om die bestaan ​​van die Helm Hub te ondersteun. Vir ander behoeftes beveel die skrywers Kubeapps aan (sien hieronder) of Red Hat Automation Broker (deel van OpenShift, maar word ook nie meer ontwikkel nie).

4.2. Kubeapps

  • Site;
  • aanbieding;
  • bewaarplek (~2100 GitHub-sterre);
  • Lisensie: Apache 2.0
  • In kort: "Jou toepassingskontroleskerm vir Kubernetes."

Oorsig van GUI's vir Kubernetes

'n Produk van Bitnami, wat ook in 'n Kubernetes-groepering geïnstalleer is, maar verskil van Monocular in sy aanvanklike fokus op die werk met private bewaarplekke.

Sleutelfunksies en kenmerke van Kubeapps:

  • Bekyk en installeer Helm-kaarte vanaf bewaarplekke.
  • Kontroleer, werk op en verwyder Helm-gebaseerde toepassings wat op die groep geïnstalleer is.
  • Ondersteuning vir pasgemaakte en private kaartbewaarplekke (ondersteun ChartMuseum en JFrog Artifactory).
  • Bekyk en werk met eksterne dienste - vanaf die Dienskatalogus en Diensmakelaars.
  • Publiseer geïnstalleerde toepassings met behulp van die Dienskatalogus-bindingsmeganisme.
  • Ondersteuning vir verifikasie en skeiding van regte met behulp van RBAC.

Opsommingstabel

Hieronder is 'n opsommingstabel waarin ons probeer het om die hoofkenmerke van bestaande visuele koppelvlakke op te som en saam te voeg om vergelyking te vergemaklik:

Oorsig van GUI's vir Kubernetes
(Aanlyn weergawe van die tabel beskikbaar op Google Docs.)

Gevolgtrekking

GUI's vir Kubernetes is 'n taamlik spesifieke en jong nis. Dit ontwikkel egter baie aktief: dit is reeds moontlik om beide redelik volwasse oplossings te vind, en baie jonges, wat nog ruimte het om te groei. Hulle maak voorsiening vir 'n verskeidenheid toepassings en bied kenmerke en voorkoms om byna elke smaak te pas. Ons hoop dat hierdie resensie u sal help om die instrument te kies wat die beste by u huidige behoeftes pas.

PS

Dankie kvaps vir die data op die OpenShift-konsole vir die vergelykingstabel!

Lees ook op ons blog:

Bron: will.com

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster