Oersjoch fan GUIs foar Kubernetes

Oersjoch fan GUIs foar Kubernetes

Foar folweardich wurk mei it systeem is kennis fan kommandorigel-nutsbedriuwen wichtich: yn it gefal fan Kubernetes is dit kubectl. Oan 'e oare kant kinne goed ûntworpen, trochtochte grafyske ynterfaces útfiereоde measte gewoane taken en iepenje ekstra kânsen foar de eksploitaasje fan systemen.

Ferline jier hawwe wy in oersetting publisearre lyts oersjoch fan web UI foar Kubernetes, timed om gear te fallen mei de oankundiging fan it web ynterface Kubernetes WebView. De skriuwer fan dat artikel en it nutsbedriuw sels, Henning Jacobs út Zalando, pleatste it nije produkt krekt as "kubectl foar it web". Hy woe in ark meitsje mei brûkerfreonlike mooglikheden foar ynteraksje yn in technyske stipeformaat (bygelyks it probleem fluch sjen litte mei in webkeppeling) en foar it reagearjen op ynsidinten, sykjen nei problemen yn in protte klusters tagelyk. Syn neiteam ûntwikkelet op it stuit (benammen troch de ynspanningen fan 'e skriuwer sels).

As wy tsjinje in protte Kubernetes klusters fan ferskate maten, wy binne ek ynteressearre yn in steat om te foarsjen in fisueel ark oan ús klanten. By it kiezen fan in gaadlike ynterface wiene de folgjende funksjes wichtich foar ús:

  • stipe foar differinsjaasje fan brûkersrjochten (RBAC);
  • fisualisaasje fan de nammeromte steat en standert Kubernetes primitives (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • tagong krije ta de kommandorigel yn 'e pod;
  • besjen fan logs fan pods;
  • besjoch de status fan pods (describe status);
  • fuortsmite pods.

Oare funksjes, lykas it besjen fan konsumeare boarnen (yn 'e kontekst fan pods / controllers / nammeromten), oanmeitsjen / bewurkjen fan K8s-primitiven, binne net relevant binnen ús workflow.

Wy sille de resinsje begjinne mei it klassike Kubernetes Dashboard, dat is ús standert. Sûnt de wrâld net stil stiet (wat betsjut dat Kubernetes mear en mear nije GUI's hat), sille wy ek prate oer har hjoeddeistige alternativen, alles gearfette yn in ferlykjende tabel oan 'e ein fan it artikel.

NB: Yn de resinsje, wy sille net werhelje mei dy oplossings dy't al beskôge yn lêste artikel, lykwols, foar de folsleinens binne de relevante opsjes derfan (K8Dash, Octant, Kubernetes Web View) opnommen yn 'e finale tabel.

1. Kubernetes Dashboard

  • Dokumintaasje side;
  • repository (8000+ GitHub-stjerren);
  • lisinsje: Apache 2.0;
  • Koartsein: "Universele webynterface foar Kubernetes-klusters. It lit brûkers applikaasjes beheare en problemen oplosse dy't yn it kluster rinne, en ek it kluster sels beheare.

Oersjoch fan GUIs foar Kubernetes

Dit is in paniel foar algemien doel behannele troch de Kubernetes-auteurs yn 'e offisjele dokumintaasje (mar net ynsetber standert). It is ûntworpen foar de behoeften fan deistige operaasje en debuggen fan applikaasjes yn in kluster. Thús brûke wy it as in folweardich lichtgewicht fisueel ark dat ús mooglik makket om ûntwikkelders de nedige en genôch tagong ta it kluster te jaan. De mooglikheden dekke al har behoeften dy't ûntsteane yn it proses fan it brûken fan it kluster (yn dit artikel wy demonstreare guon funksjes fan it paniel). Lykas jo miskien riede, betsjut dit dat it foldocht oan al ús hjirboppe neamde easken.

Under de haadfunksjes fan Kubernetes Dashboard:

  • Navigaasje: besjoch de haadobjekten fan K8s yn 'e kontekst fan nammeromten.
  • As jo ​​​​administratorrjochten hawwe, toant it paniel knopen, nammeromten en Persistente Volumes. Foar knooppunten binne statistiken beskikber oer it gebrûk fan ûnthâld, prosessor, tawizing fan boarnen, metriken, status, eveneminten, ensfh.
  • Besjoch applikaasjes ynset yn in nammeromte troch har type (Deployment, StatefulSet, ensfh.), Relaasjes tusken har (ReplicaSet, Horizontal Pod Autoscaler), algemiene en personaliseare statistiken en ynformaasje.
  • Besjoch tsjinsten en Ingresses, lykas har relaasjes mei pods en einpunten.
  • Besjoch bestânobjekten en opslach: Persistent Volume en Persistent Volume Claim.
  • Besjoch en bewurkje ConfigMap en Secret.
  • View logs.
  • Kommandorigel tagong yn konteners.

In wichtich nadeel (lykwols net foar ús) is dat d'r gjin stipe is foar wurk mei meardere klusters. It projekt wurdt aktyf ûntwikkele troch de mienskip en ûnderhâldt relevante funksjes mei de frijlitting fan nije ferzjes en spesifikaasjes fan de Kubernetes API: de lêste ferzje fan it paniel is v2.0.1 22 maaie 2020 - Teste op kompatibiliteit mei Kubernetes 1.18.

2. Lens

Oersjoch fan GUIs foar Kubernetes

It projekt is gepositioneerd as in folsleine yntegreare ûntwikkelingsomjouwing (IDE) foar Kubernetes. Boppedat is it optimalisearre om te wurkjen mei in protte klusters en in grut oantal pods dy't dêryn rinne (test op 25 pods).

Haadfunksjes / mooglikheden fan Lens:

  • Standalone applikaasje dy't gjin ynstallaasje fereasket fan alles binnen it kluster (krekterder, Prometheus sil ferplicht wurde om alle metriken te krijen, mar in besteande ynstallaasje kin hjirfoar ek brûkt wurde). De "haad" ynstallaasje wurdt makke op in persoanlike kompjûter mei Linux, macOS of Windows.
  • Multi-cluster behear (hûnderten klusters stipe).
  • Fisualisaasje fan 'e steat fan it kluster yn echte tiid.
  • Grafiken en trends foar boarnegebrûk mei skiednis basearre op ynboude Prometheus.
  • Tagong ta de kommandorigel fan konteners en op klusterknooppunten.
  • Folsleine stipe foar Kubernetes RBAC.

Aktuele útjefte - 3.5.0 datearre 16 juny 2020 Oarspronklik makke troch Kontena, hjoed is alle yntellektuele eigendom oerdroegen oan in spesjale organisaasje Lakeland Labs, neamd "in uny fan wolk-native geeks en technologen", dy't ferantwurdlik is foar it "behâld en beskikberens fan Kontena's Open Source software en produkten."

Lens is it twadde populêrste projekt op GitHub fan 'e GUI foar Kubernetes-kategory, "ferlies" allinich it Kubernets Dashboard sels. Alle oare Open Source-oplossingen dy't net fan 'e CLI * kategory binne binne signifikant minder yn populariteit.

* Sjoch oer K9s yn de bonus diel fan de resinsje.

3. Kubernetic

Oersjoch fan GUIs foar Kubernetes

Dit is in proprietêre applikaasje dy't is ynstalleare op in persoanlike kompjûter (Linux, macOS, Windows wurde stipe). De auteurs belove in folsleine ferfanging fan it kommandorigel-hulpprogramma, en dêrmei - gjin needsaak om kommando's te ûnthâlden en sels in tsienfâldich ferheging fan snelheid.

Ien fan 'e nijsgjirrige skaaimerken fan it ark is de ynboude stipe foar Helm-diagrammen, en ien fan' e neidielen is it gebrek oan metriken foar applikaasjeprestaasjes.

Haadfunksjes fan Kubernetic:

  • Handige werjefte fan 'e klusterstatus. Ien skerm om alle relatearre klusterobjekten en har ôfhinklikens te besjen; reade / griene reewilligensstatus foar alle objekten; cluster status werjefte modus mei real-time status updates.
  • Snelle aksjeknoppen foar it wiskjen en skaaljen fan 'e applikaasje.
  • Stipe foar multi-cluster operaasje.
  • Ienfâldich wurk mei nammeromten.
  • Stipe foar Helm-kaarten en Helm-repositories (ynklusyf privee). Ynstallearje en beheare charts yn 'e webynterface.

De hjoeddeistige kosten fan it produkt binne in ienmalige betelling fan 30 euro foar it gebrûk troch ien persoan foar elk oantal nammeromten en klusters.

4. Kubevious

  • webside;
  • Презентация;
  • repository (~ 500 GitHub-stjerren);
  • Lisinsje: Apache 2.0
  • Koartsein: "Kubevious makket Kubernetes-klusters, applikaasjekonfiguraasje en statuswerjefte feilich en maklik te begripen."

Oersjoch fan GUIs foar Kubernetes

It idee fan it projekt is om in ark te meitsjen ûntworpen om applikaasjekonfiguraasjes te analysearjen en te debuggen ynset yn in kluster. De auteurs rjochte har primêr op 'e ymplemintaasje fan dizze funksjes, en lieten mear algemiene dingen foar letter.

Wichtige funksjes en funksjes fan Kubevious:

  • Clusterfisualisaasje op in applikaasje-sintraal manier: besibbe objekten yn 'e ynterface wurde groepearre, linen yn in hiërargy.
  • Visuele werjefte fan ôfhinklikens yn konfiguraasjes en kaskadende gefolgen fan har feroaringen.
  • Display fan klusterkonfiguraasjeflaters: misbrûk fan labels, miste havens, ensfh. (Trouwens, as jo ynteressearre binne yn dizze funksje, let dan op Polarisoer dêr't wy al skreaun.)
  • Neist it foarige punt is opspoaren fan mooglik gefaarlike konteners beskikber, d.w.s. tefolle privileezjes hawwe (attributen hostPID, hostNetwork, hostIPC, mount docker.sock ensfh).
  • Avansearre syksysteem foar it kluster (net allinich troch de nammen fan objekten, mar ek troch har eigenskippen).
  • Tools foar kapasiteit planning en boarne optimalisaasje.
  • Ynboude "tiidmasine" (de mooglikheid om eardere feroarings te sjen yn 'e konfiguraasje fan objekten).
  • RBAC behear mei in pivot interrelated tabel fan rollen, RoleBindings, ServiceAccounts.
  • Wurket mei mar ien kluster.

It projekt hat in heul koarte skiednis (de earste release fûn plak op 11 febrewaris 2020) en it liket derop dat d'r in perioade west hat fan stabilisaasje as fertraging yn ûntwikkeling. As eardere ferzjes faak waarden útbrocht, dan de lêste release (v0.5 15 april 2020) is efterbleaun by it earste tempo fan ûntwikkeling. Dit is wierskynlik te tankjen oan it lytse oantal bydragen: d'r binne mar 4 fan har yn 'e skiednis fan' e repository, en al it eigentlike wurk wurdt dien troch ien persoan.

5. Kubewise

  • Projekt side;
  • Lisinsje: proprietêr (sil iepen boarne wurde);
  • Koartsein: "In ienfâldige multi-platfoarm client foar Kubernetes."

Oersjoch fan GUIs foar Kubernetes

In nij produkt fan VMware, oarspronklik makke as ûnderdiel fan in ynterne hackathon (yn juny 2019). Ynstallearre op in persoanlike kompjûter, wurket op basis fan Elektron (Linux, macOS en Windows stipe) en fereasket kubectl v1.14.0 of letter.

Haadfunksjes fan Kubewise:

  • Ynteraksje-ynteraksje mei de meast brûkte Kubernetes-entiteiten: knopen, nammeromten, ensfh.
  • Stipe foar meardere kubeconfig-bestannen foar ferskate klusters.
  • Terminal mei de mooglikheid om in omjouwingsfariabele yn te stellen KUBECONFIG.
  • Generearje oanpaste kubeconfig-bestannen foar de opjûne nammeromte.
  • Avansearre feiligensfunksjes (RBAC, wachtwurden, tsjinstakkounts).

Oant no hat it projekt mar ien release - ferzje 1.1.0 fan 26 novimber 2019. Boppedat wiene de auteurs fan plan om it daliks frij te litten as Open Source, mar troch ynterne problemen (net relatearre oan technyske problemen) koene se dit net dwaan. Mei yngong fan maaie 2020 wurkje de auteurs oan 'e folgjende release en moatte tagelyk it koade iepen proses begjinne.

6. OpenShift Console

Oersjoch fan GUIs foar Kubernetes

Nettsjinsteande it feit dat dizze webynterface diel is fan 'e OpenShift-distribúsje (it is dêr ynstalleare mei spesjale operator), skriuwers foarsjoen de mooglikheid om it te ynstallearjen / te brûken yn normale (vanilla) Kubernetes-ynstallaasjes.

OpenShift Console is in lange tiid yn ûntwikkeling, dus it hat in protte funksjes opnommen. Wy sille de wichtichste neame:

  • Dielde ynterface-oanpak - twa "perspektyf" fan 'e mooglikheden beskikber yn' e konsole: foar behearders en foar ûntwikkelders. Wize developer perspektyf groepen objekten yn in foarm dy't mear begryplik is foar ûntwikkelders (troch applikaasjes) en rjochtet de ynterface op it oplossen fan sokke typyske taken as it ynsetten fan applikaasjes, it folgjen fan build-/deploy status, en sels it bewurkjen fan koade fia Eclipse Che.
  • Behear fan workloads, netwurk, opslach, tagongsrjochten.
  • Logyske skieding foar workloads yn projekten en applikaasjes. Yn ien fan 'e lêste releases - v4.3 - ferskynde spesjaal projekt dashboard, dy't de gewoane gegevens toant (it oantal en statusen fan ynset, pods, ensfh.; Resource-konsumpsje en oare metriken) yn in projektstik.
  • Bywurke yn realtime werjefte fan 'e tastân fan' e kluster, feroarings (eveneminten) dy't dêryn hawwe bard; besjen logs.
  • Besjoch monitoaringsgegevens basearre op Prometheus, Alertmanager en Grafana.
  • Behear fan operators fertsjintwurdige yn operatorhub.
  • Beheare builds dy't rinne troch Docker (fan in spesifisearre repository mei in Dockerfile), S2I of willekeurige eksterne nutsbedriuwen.

NB: Wy hawwe gjin oaren tafoege oan 'e ferliking Kubernetes distribúsjes (bygelyks de folle minder bekende Kubesphere): nettsjinsteande it feit dat de GUI kin wêze hiel avansearre yn harren, komt it meastentiids as ûnderdiel fan de yntegrearre stack fan in grut systeem. As jo ​​​​lykwols tinke dat d'r net genôch oplossingen binne dy't folslein funksjonearje yn 'e vanille K8s-ynstallaasje, lit it ús witte yn' e opmerkingen.

Bonus

1. Portainer op Kubernetes yn Beta

  • webside;
  • repository (~ 100 GitHub-stjerren);
  • Lisinsje: Zlib(?) (itselde foar it âlderprojekt).

In projekt fan it Portainer-team, dat de populêre ynterface mei deselde namme ûntwikkele foar wurkjen mei Docker. Sûnt it projekt is yn in ier stadium fan ûntwikkeling (de earste en ienige beta ferzje kaam út 16 april 2020), hawwe wy de funksjes net evaluearre. It kin lykwols foar in protte fan belang wêze: as dit oer jo giet, folgje dan de ûntwikkeling.

2. IcePanel

  • webside;
  • lisinsje: proprietary;
  • Koartsein: "Visual Kubernetes Editor".

Oersjoch fan GUIs foar Kubernetes

Dizze jonge buroblêdapplikaasje is fan doel Kubernetes-boarnen yn realtime te visualisearjen en te behearjen mei in ienfâldige drag & drop-ynterface. Op it stuit stipe objekten binne Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap en Secret. Meikoarten tasizze se stipe foar Helm ta te foegjen. De wichtichste neidielen binne de tichtens fan 'e koade (it wurdt ferwachte iepening "op ien of oare manier") en it gebrek oan Linux-stipe (oant no binne allinich ferzjes foar Windows en macOS beskikber, hoewol dit ek nei alle gedachten gewoan in kwestje fan tiid is).

3.k9s

  • webside;
  • Demonstraasje;
  • repository (~ 7700 GitHub-stjerren);
  • lisinsje: Apache 2.0;
  • Koartsein: "In konsole-ynterface foar Kubernetes wêrmei jo jo kluster yn styl kinne beheare."

Oersjoch fan GUIs foar Kubernetes

It nut wie allinich yn it bonusdiel fan 'e resinsje om't it in konsole-GUI biedt. De auteurs hawwe lykwols letterlik it maksimum út 'e terminal knipt, en biede net allinich in brûkerfreonlike ynterface, mar ek 6 foarôf definieare tema's, en in avansearre systeem fan fluchtoetsen en kommando-aliassen. Har yngeande oanpak wie net beheind ta uterlik: k9s-funksjes binne noflik yndrukwekkend: boarnebehear, werjaan fan de steat fan it kluster, werjaan fan boarnen yn in hiërargyske fertsjintwurdiging mei ôfhinklikens, besjen fan logs, RBAC-stipe, útwreidzjen fan mooglikheden fia plugins ... nei de brede K8s-mienskip: it oantal De GitHub-stjerren fan it projekt binne hast like goed as it offisjele Kubernetes Dashboard!

4. Applikaasje kontrôle panielen

En oan 'e ein fan' e resinsje - in aparte mini-kategory. It omfette twa webynterfaces dy't net ûntworpen binne foar it wiidweidige behear fan Kubernetes-klusters, mar foar it behearen fan wat yn har is ynset.

Lykas jo witte, is ien fan 'e meast folwoeksen en wiidferspraat ark foar it ynsetten fan komplekse applikaasjes yn Kubernetes Helm. Yn 'e perioade fan har bestean binne in protte pakketten (Helm-kaarten) sammele foar maklike ynset in protte populêre applikaasjes. Dêrom is it uterlik fan passende fisuele ark wêrtroch jo de libbenssyklus fan charts kinne beheare, is frij logysk.

4.1. Monokulêr

  • repository (1300+ GitHub-stjerren);
  • lisinsje: Apache 2.0;
  • Koartsein: "In webapplikaasje foar it sykjen en ûntdekken fan Helm-diagrammen oer meardere repositories. Tsjinnet as basis foar it Helm-hubprojekt."

Oersjoch fan GUIs foar Kubernetes

Dizze ûntwikkeling fan 'e auteurs fan Helm is ynstalleare yn Kubernetes en wurket binnen itselde kluster, it útfieren fan de taak. Op it stuit is it projekt lykwols hast net ûntwikkele. It haaddoel dêrfan is om it bestean fan 'e Helm Hub te stypjen. Foar oare behoeften advisearje de auteurs Kubeapps (sjoch hjirûnder) of Red Hat Automation Broker (diel fan OpenShift, mar ek net mear ûntwikkele).

4.2. Kubeapps

Oersjoch fan GUIs foar Kubernetes

In produkt fan Bitnami, dat ek ynstalleare is yn in Kubernetes-kluster, mar ferskilt fan Monocular yn syn earste fokus op wurkjen mei privee repositories.

Wichtige funksjes en funksjes fan Kubeapps:

  • Besjoch en ynstallearje Helm-diagrammen fan repositories.
  • Kontrolearje, bywurkje en ferwiderje Helm-basearre applikaasjes ynstalleare op it kluster.
  • Stipe foar oanpaste en privee kaartrepositories (stipe ChartMuseum en JFrog Artifactory).
  • Besjoch en wurkje mei eksterne tsjinsten - fan 'e Service Catalog en Service Brokers.
  • It publisearjen fan ynstalleare applikaasjes mei it meganisme fan tsjinstkatalogusbindingen.
  • Stipe foar autentikaasje en skieding fan rjochten mei RBAC.

Gearfettingstabel

Hjirûnder is in gearfettingstabel wêryn't wy besocht hawwe de haadfunksjes fan besteande fisuele ynterfaces gearfetsje en te aggregearjen om fergeliking te fasilitearjen:

Oersjoch fan GUIs foar Kubernetes
(Online ferzje fan 'e tabel beskikber op Google Docs.)

konklúzje

GUI's foar Kubernetes binne in nochal spesifike en jonge niche. It ûntwikkelet lykwols heul aktyf: it is al mooglik om sawol frij folwoeksen oplossingen te finen, as heul jonge, dy't noch romte hawwe om te groeien. Se foldogge oan in ferskaat oan applikaasjes, en biedt funksjes en looks foar hast elke smaak. Wy hoopje dat dizze resinsje jo sil helpe om it ark te kiezen dat it bêste past by jo hjoeddeistige behoeften.

PS

Dankewol kvaps foar de gegevens op de OpenShift Console foar de ferliking tabel!

Lês ek op ús blog:

Boarne: www.habr.com

Add a comment