Pregled grafičnih vmesnikov za Kubernetes

Pregled grafičnih vmesnikov za Kubernetes

Za učinkovito uporabo sistema je pomembno obvladovanje ukazne vrstične orodje: v primeru Kubernetes je to kubectl. Po drugi strani pa dobro zasnovani, premišljeni grafični vmesniki lahko izvajajo večino običajnih nalog in odprejo dodatne možnosti za upravljanje sistemov.oV preteklem letu smo objavili prevod

manjše ocene web UI za Kubernetes, ob obletnici napovedi spletnega vmesnika . Avtor tega članka in samega orodja — Henning Jacobs iz podjetja Zalando — je pravzaprav pozicioniral novost kot „kubectl za splet“. Želel je ustvariti orodje z priročnimi možnostmi za interakcijo v formatu tehnične podpore (na primer, hitro pokazati težavo preko spletne povezave) in za odzivanje na incidente, iskanje težav v več grozdih hkrati. Njegovo delo se še vedno razvija (v glavnem z avtorjem samim). Kubernetes Web ViewS servisiranjem številnih Kubernetes grozdov različnih obsegov smo tudi mi zainteresirani za možnosti, da strankam ponudimo orodje za vizualno delo. Pri izbiri ustreznega vmesnika so bile za nas ključne naslednje možnosti:

podpora za deljeno upravljanje uporabniških pravic (RBAC);

  • vizualizacija stanja imenika in standardnih Kubernetovih primitvov (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • dostop do ukazne vrstice znotraj poda;
  • ogled logov podov;
  • ogled stanja podov (
  • describe statusbrisanje podov.);
  • Druge funkcije, kot je ogled porabljenih virov (po podih/kontrolerjih/imenikih), ustvarjanje/urejanje K8s primitvov, v okviru našega delovnega procesa niso relevantne.

Oceno bomo začeli s klasičnega Kubernetes Dashboard, ki je zavzemal standard pri nas. Ker svet ne miruje (kar pomeni, da se pojavljajo vedno nove GUI možnosti za Kubernetes), bomo govorili tudi o njegovih aktualnih alternativah, vse skupaj pa strnili v primerjalno tabelo na koncu članka.

: V oceni se ne bomo ponavljali s tistimi rešitvami, ki so že bile obravnavane v

NB, vendar — za popolnost slike — so relevantne možnosti iz nje (K8Dash, Octant, Kubernetes Web View) vključene v končno tabelo. prejšnjem članku1. Kubernetes Dashboard

Stran dokumentacije

  • (8000+ zvezd GitHub);;
  • Repozitorij Licenca: Apache 2.0;
  • Лицензия: Apache 2.0;
  • Na kratko: „Splošni spletni vmesnik za Kubernetes gruče. Uporabnikom omogoča upravljanje aplikacij, ki delujejo v gruči, odpravljanje težav in upravljanje same gruče.“

Pregled grafičnih vmesnikov za Kubernetes

To je večnamenska nadzorna plošča, ki jo avtorji Kubernetes obravnavajo v uradni dokumentaciji. (čeprav ni privzeto razporejena na. Namenjena je potrebam vsakodnevnega delovanja in odpravljanja napak aplikacij v gruči. Pri nas jo uporabljamo kot polnopravno lahko vizualno orodje, ki omogoča razvijalcem dostop, ki je potreben in zadosten za delo z gruči. Njene zmožnosti pokrivajo vse njihove potrebe, ki se pojavijo med uporabo gruče. (v this article demonstrirali smo nekatere funkcije nadzorne plošče). Kot lahko uganite, to pomeni, da izpolnjuje vse naše zgoraj navedene zahteve.

Med glavnimi zmožnostmi Kubernetes Nadzorne plošče so:

  • Navigacija: ogled glavnih objektov K8s z ozirom na imenska področja.
  • Ob prisotnosti administratorskih pravic nadzorna plošča prikazuje vozlišča, imenska področja in trajne volumne. Na vozlih je na voljo statistika o uporabi pomnilnika, procesorja, dodeljevanju virov, metrike, status, dogodki itd.
  • Ogled aplikacij, razvito v imenskem področju, po njihovem tipu (Deployment, StatefulSet itd.), povezavah med njimi (ReplicaSet, Horizontal Pod Autoscaler), splošni in personalizirani statistiki ter informacijah.
  • Ogled storitev in Ingress-ov ter njihovih povezav s pod-i in endpoint-i.
  • Ogled datotečnih objektov in skladišč: trajni volumen in zahteva za trajni volumen.
  • Ogled in urejanje ConfigMap in Secret.
  • Ogled dnevnikov.
  • Dostop do ukazne vrstice znotraj kontejnerjev.

Pomembna pomanjkljivost (vendar ne zanj)— pomanjkanje podpore za delovanje v več gruščah. Projekt se aktivno razvija v skupnosti in podpira aktualne funkcije ob izidu novih verzij in specifikacij Kubernetes API: zadnja različica nadzorne plošče je v2.0.1 z dne 22. maja 2020 — testirana je na združljivost s Kubernetes 1.18.

2. Lens

Pregled grafičnih vmesnikov za Kubernetes

Projekt se predstavi kot popolno integrirano razvojno okolje (IDE) za Kubernetes. Poleg tega je optimizirano za delo z več gruščami in velikim številom pod-ov, ki so v njih zagnani (testirano na 25.000 pod-ih).

Glavne značilnosti/zmožnosti Lens:

  • Avtonomna aplikacija, ki ne zahteva namestitve česa v okviru gruče (natančneje, za pridobitev vseh metrik bo potreben Prometheus, vendar lahko uporabite že obstoječo namestitev). „Osnovna“ namestitev se izvede na osebnem računalniku, ki deluje pod Linuxom, macOS-om ali Windows.
  • Večgručna upravljanje (podpira na stotine grušč).
  • Vizualizacija stanja gruče v realnem času.
  • Grafi uporabe virov in trende s zgodovino na podlagi vgrajenega Prometheusa.
  • Dostop do ukazne vrstice kontejnerjev in vozlišč v gruči.
  • Polna podpora Kubernetes RBAC.

Aktualna različica — 3.5.0 od 16. junija 2020. Prvotna različica je bila ustvarjena v podjetju Kontena, danes pa je vsa intelektualna lastnina prenesena v posebno organizacijo Lakend Labs, imenovano „zveza cloud native navdušencev in tehnologov“, ki skrbi za „ohranjanje in dostopnost Open Source programske opreme in izdelkov Kontena“.

Lens je drugi najbolj priljubljen projekt na GitHubu v kategoriji GUI za Kubernetes, ki „zaostaja“ le za samim Kubernets Dashboard-om. Vse druge Open Source rešitve izven kategorije CLI* znatno zaostajajo po priljubljenosti.

* Glej o K9s v bonusnem delu pregleda.

3. Kubernetic

Pregled grafičnih vmesnikov za Kubernetes

To je lastniška aplikacija, ki se namesti na osebni računalnik (podpirajo se Linux, macOS, Windows). Njeni avtorji obljubljajo popolno zamenjavo ukazne vrstice ter skupaj z njo — odsotnost potrebe po spominu na ukaze in celo desetkratno povečanje hitrosti dela.

Ena izmed zanimivih lastnosti orodja je vgrajena podpora za Helm grafične karte, en od njegovih pomanjkljivosti pa je pomanjkanje metrik delovanja aplikacij.

Glavne funkcije Kubernetic-a:

  • Enostavno prikazovanje stanja gruče. Ekran za ogled vseh povezanih objektov gruče in njihovih odvisnosti; rdeči/zeleni status pripravljenosti za vse objekte; način ogledovanja stanja gruče z posodobitvijo stanja v realnem času.
  • Gumbi za hitro delovanje za brisanje in skaliranje aplikacij.
  • Podpora za večgručni način dela.
  • Enostavno delo s prostori imen.
  • Podpora Helm chartov in Helm repozitorijev (vključno s privatnimi). Namestitev in upravljanje chartov v spletnem vmesniku.

Trenutna cena izdelka je enkratno plačilo v višini 30 evrov za uporabo s strani ene osebe za katero koli število prostorov imen in grozdov.

4. Kubevious

  • Web stranica;
  • Predstavitev;
  • Repozitorij (~500 zvezdic na GitHubu);
  • Licenca: Apache 2.0
  • Na kratko: „Kubevious nekomplicira delovanje Kubernetes grozdov, konfiguracij aplikacij in spremljanje njihovega stanja.“

Pregled grafičnih vmesnikov za Kubernetes

Osnovna ideja projekta je ustvariti orodje za analizo in odpravljanje težav s konfiguracijami aplikacij, nameščenih v grozdu. Avtorji so se osredotočili predvsem na implementacijo teh funkcij, splošnejše zadeve pa so pustili za pozneje.

Glavne funkcije in značilnosti Kubevious:

  • Vizualizacija grozda na način, osredotočen na aplikacije: medsebojno povezani objekti v vmesniku so grupirani in razporejeni v hierarhijo.
  • Jasna predstavitev odvisnosti v konfiguracijah in kaskadnih posledic njihovih sprememb.
  • Prikaz napak v konfiguraciji grozda: nepravilna uporaba oznak, manjkajoči porti itd. (Mimogrede, če vas to zanimajo, bodite pozorni na Polaris, o katerem smo že preberete.)
  • Poleg prejšnje točke je na voljo tudi odkrivanje potencialno nevarnih kontejnerjev, tj. tistih z prevelikimi privilegiji (atributi hostPID, hostNetwork, hostIPC, montaža docker.sock in podobno).
  • Napreden iskalni sistem po grozdu (ne le po imenih objektov, ampak tudi po njihovih lastnostih).
  • Orodja za načrtovanje zmogljivosti in optimizacijo virov.
  • Vgrajena „časovna mašina“ (možnost ogledati prejšnje spremembe konfiguracije objektov).
  • Upravljanje RBAC s pomočjo povzetka povezane tabele iz Roles, RoleBindings, ServiceAccounts.
  • Deluje le z enim grozdom.

Projekt ima zelo kratko zgodovino (prva izdaja je bila 11. februarja 2020) in zdi se, da se je začel obdobje stabilizacije ali upočasnitve razvojnih aktivnosti. Če so prejšnje različice izhajale pogosto, pa je zadnja izdaja (v0.5 z dne 15. aprila 2020) zastala za začetnim tempom razvoja. Verjetno je to posledica majhnega števila prispeviteljev: v zgodovini repozitorija jih je le 4, celotno dejansko delo pa opravlja ena oseba.

5. Kubewise

  • Stran projekta;
  • Licenca: proprietarna (bodo postali Open Source);
  • Na kratko: „Enostaven večplatformski odjemalec za Kubernetes“.

Pregled grafičnih vmesnikov za Kubernetes

Nov izdelek podjetja VMware, sprva ustvarjen v okviru internega hackathona (junija 2019). Namesti se na osebni računalnik in deluje na osnovi Electron (podprti so Linux, macOS in Windows) ter zahteva kubectl najmanj različice v1.14.0.

Glavne funkcionalnosti Kubewise:

  • Interakcija v vmesniku z najpogosteje uporabljenimi entitetami Kubernetes: vozli, imenskimi prostori itd.
  • Podpora več datotek kubeconfig za različne gruče.
  • Terminal z možnostjo nastavitve spremenljivke okolja KUBECONFIG.
  • Generiranje po meri prilagojenih datotek kubeconfig za določen imenski prostor.
  • Razširjene možnosti varnosti (RBAC, gesla, računi storitev).

Za zdaj ima projekt le eno izdajo — različico 1.1.0 z dne 26. novembra 2019. Avtorji so prvotno načrtovali, da jo bodo takoj izdali kot Open Source, vendar zaradi notranjih težav (ki niso povezane s tehničnimi vprašanji) to niso mogli storiti. Do maja 2020 avtorji delajo na naslednji izdaji in hkrati naj bi sprožili postopek odpiranja kode.

6. OpenShift Console

Pregled grafičnih vmesnikov za Kubernetes

Čeprav je ta spletni vmesnik del distribucije OpenShift (tam se namesti z uporabo posebnega operatorja), so avtorji predvideli možnost njegove namestitve/uporabe tudi v običajnih (vanilla) namestitvah Kubernetes.

OpenShift Console se že dolgo razvija, zato je vključila številne funkcije. Omenimo glavne med njimi:

  • Razdeljen pristop k vmesniku — dve „perspektivi“ razpoložljivih možnosti v Console: za skrbnike in za razvijalce. Način Developer perspective grupira objekte v razvijalcem bolj razumljivem formatu (po aplikacijah) in usmerja vmesnik k reševanju tipičnih nalog, kot so namestitev aplikacij, spremljanje statusa gradnje/namestitve in celo urejanje kode preko Eclipse Che.
  • Upravljanje delovnih obremenitev, omrežja, shrambe, pravic dostopa.
  • Logično razdeljevanje delovnih obremenitev na projekte in aplikacije. V enem od zadnjih izdaj — v4.3 — pojavil poseben Project dashboard, ki prikazuje običajne podatke (število in statusi namestitev, podov itd.; poraba virov in druge metrike) v razčlembi projektov.
  • Real-time display of cluster status, changes (events) that occurred in it; view logs.
  • View monitoring data based on Prometheus, Alertmanager, and Grafana.
  • Manage operators presented in OperatorHub.
  • Manage builds executed through Docker (from the specified repository with Dockerfile), S2I or arbitrary external utilities.

NB: We did not include other Kubernetes distributions (for example, the lesser-known Kubesphere): although their graphical interfaces can be quite advanced, they usually come as part of an integrated stack of a large system. However, if you believe there are solutions that fully function in a vanilla K8s installation that are lacking - let us know in the comments.

Bonusp

1. Portainer on Kubernetes in beta version

A project from the Portainer team that developed the famous interface for working with Docker. Since the project is in an early development stage (the first and only beta version je izšla April 16, 2020), we did not evaluate its features. However, it may interest many: if this applies to you - keep an eye on its development.

2. IcePanel

  • Web stranica;
  • Licenca: lastniška;
  • In brief: "A visual Kubernetes editor."

Pregled grafičnih vmesnikov za Kubernetes

This young desktop application aims to visualize Kubernetes resources in real time and manage them with an intuitive drag & drop interface. Currently supported objects include Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap, and Secret. Support for Helm is expected to be added soon. The main drawbacks are the closed source (its opening 'in some form') and lack of Linux support (currently, only versions for Windows and macOS are available, although this is likely just a matter of time).

3. k9s

Pregled grafičnih vmesnikov za Kubernetes

Orodje je bilo vključeno le v bonusni del pregleda, ker ponuja konzolni GUI. Kljub temu so avtorji dobesedno iztisnili maksimum iz terminala z udobnim vmesnikom, 6 vnaprej določenimi temami, naprednim sistemom bližnjic na tipkovnici in aliasi za ukaze. Njihov temeljit pristop ni omejen le na videz: zmožnosti k9s so zelo impresivne: upravljanje virov, prikaz stanja gruče, izhod virov v hierarhični predstavi z odvisnostmi, ogled logov, podpora RBAC, razširitev možnosti preko dodatkov... Vse to je naletelo na široko odobravanje K8s skupnosti: število GitHub zvezd projekta skoraj ne zaostaja za uradnim Kubernetes Dashboard!

4. Nadzorne plošče aplikacij

Na koncu pregleda – ločena mini kategorija. Vanjo sta uvrščena dva spletna vmesnika, namenjena ne za celovito upravljanje Kubernetes grozdov, temveč za upravljanje tistega, kar se v njih izvaja.

Kot je znano, je eno najbolj zrelih in razširjenih orodij za implementacijo kompleksnih aplikacij v Kubernetes Helm. V času svojega obstoja je nastalo veliko paketov (Helm charts) za enostavno postavitev mnogo priljubljenih aplikacij. Zato je povsem logično, da so se pojavila tudi ustrezna vizualna orodja, ki omogočajo upravljanje življenjskega cikla chartov.

4.1. Monocular

  • Repozitorij (1300+ GitHub zvezd);
  • Лицензия: Apache 2.0;
  • Na kratko: «Spletna aplikacija za iskanje in odkrivanje Helm chartov v številnih repozitorijih. Je osnova za projekt Helm hub».

Pregled grafičnih vmesnikov za Kubernetes

Ta razvoj avtorjev Helma se namesti v Kubernetes in deluje znotraj enega grozda, pri čemer izvaja nalogo. Vendar se projekt trenutno skoraj ne razvija. Njegova osnovna naloga je podpora obstoju Helm Huba. Za druge potrebe avtorji priporočajo Kubeapps (glej naprej) ali Red Hat Automation Broker (del OpenShift, a tudi ta se ne razvija več).

4.2. Kubeapps

Pregled grafičnih vmesnikov za Kubernetes

Izdelek podjetja Bitnami, ki se prav tako namesti v grozd Kubernetes, a se razlikuje od Monocular s prvotnim osredotočenjem na delo s privatnimi repozitoriji.

Ključne funkcije in značilnosti Kubeapps:

  • Ogled in namestitev Helm chartov iz repozitorijev.
  • Preverjanje, posodabljanje in odstranjevanje aplikacij na podlagi Helma, nameščenih v grozdu.
  • Podpora dela s prilagojenimi in zasebnimi repozitoriji grafikonov (podpira ChartMuseum in JFrog Artifactory).
  • Pregled in delo z zunanjimi storitvami — iz Kataloga storitev in Posrednikov storitev.
  • Objavljanje nameščenih aplikacij s pomočjo mehanizma Povezave kataloga storitev.
  • Podpora avtentikaciji in delitvi pravic s pomočjo RBAC.

Končna tabela

Spodaj je povzetek tabele, v kateri smo poskušali združiti in aglomerirati glavne značilnosti obstoječih vizualnih vmesnikov za olajšanje primerjave:

Pregled grafičnih vmesnikov za Kubernetes
(Spletna različica tabele je na voljo v Google Docs.)

Zaključek

Grafični vmesniki za Kubernetes so precej specifična in mlada niša. Kljub temu se razvijajo precej aktivno: že lahko najdemo tako dovolj zrele rešitve kot tudi povsem mlade, ki še imajo prostor za rast. Osredotočajo se na različne možnosti uporabe, ponujajo funkcije in videz praktično za vsak okus. Upamo, da vam bo ta pregled pomagal izbrati orodje, ki najbolje pokriva vaše trenutne potrebe.

P.S.

Hvala kvaps za podatke o OpenShift Console za primerjalno tabelo!

Preberite tudi na našem blogu:

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster