Pregled GUI-jev za Kubernetes

Pregled GUI-jev za Kubernetes

Za polno delo s sistemom je pomembno poznavanje pripomočkov ukazne vrstice: v primeru Kubernetesa je to kubectl. Po drugi strani pa lahko delujejo dobro zasnovani, premišljeni grafični vmesnikiоvečino običajnih opravil in odpirajo dodatne možnosti za delovanje sistemov.

Lani smo izdali prevod majhen pregled spletnega uporabniškega vmesnika za Kubernetes, ki sovpada z objavo spletnega vmesnika Kubernetes WebView. Avtor tega članka in samega pripomočka, Henning Jacobs iz Zalanda, je nov izdelek pravkar postavil kot "kubectl za splet". Želel je ustvariti orodje z uporabniku prijaznimi zmogljivostmi za interakcijo v obliki tehnične podpore (na primer hiter prikaz težave s spletno povezavo) in za odzivanje na incidente, iskanje težav v več grozdih hkrati. Njegovo potomstvo se trenutno razvija (predvsem s prizadevanji samega avtorja).

Ker služimo številnim grozdom Kubernetes različnih velikosti, nas zanima tudi možnost, da našim strankam zagotovimo vizualno orodje. Pri izbiri ustreznega vmesnika so bile za nas ključne naslednje lastnosti:

  • podpora za razlikovanje uporabniških pravic (RBAC);
  • vizualizacija stanja imenskega prostora in standardnih primitivov Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • pridobitev dostopa do ukazne vrstice znotraj sklopa;
  • pregledovanje dnevnikov strokov;
  • oglejte si stanje sklopov (describe status);
  • odstranjevanje strokov.

Druge funkcije, kot je ogledovanje porabljenih virov (v kontekstu sklopov/krmilnikov/imenskih prostorov), ustvarjanje/urejanje primitivov K8, niso pomembne v našem delovnem toku.

Pregled bomo začeli s klasično nadzorno ploščo Kubernetes, ki je naš standard. Ker svet ne miruje (kar pomeni, da ima Kubernetes vse več novih GUI-jev), bomo govorili tudi o njegovih trenutnih alternativah, vse skupaj strnili v primerjalno tabelo na koncu članka.

NB: V pregledu se ne bomo ponavljali s tistimi rešitvami, ki so bile že obravnavane v zadnji članek, vendar so zaradi popolnosti ustrezne možnosti iz nje (K8Dash, Octant, Kubernetes Web View) vključene v končno tabelo.

1. Nadzorna plošča Kubernetes

  • Stran z dokumentacijo;
  • repozitorij (8000+ zvezdic GitHub);
  • Licenca: Apache 2.0;
  • Na kratko: »Univerzalni spletni vmesnik za gruče Kubernetes. Uporabnikom omogoča upravljanje in odpravljanje težav z aplikacijami, ki se izvajajo v gruči, kot tudi upravljanje same gruče.”

Pregled GUI-jev za Kubernetes

To je plošča za splošne namene, ki jo avtorji Kubernetes pokrivajo v uradni dokumentaciji (ampak nenastavljiv privzeto). Namenjen je potrebam vsakodnevnega delovanja in razhroščevanja aplikacij v gruči. Doma ga uporabljamo kot popolno lahko vizualno orodje, ki razvijalcem omogoča potreben in zadosten dostop do gruče. Njegove zmogljivosti pokrivajo vse njihove potrebe, ki se pojavijo v procesu uporabe grozda (v ta članek prikazali smo nekatere funkcije plošče). Kot morda ugibate, to pomeni, da izpolnjuje vse naše zgoraj navedene zahteve.

Med glavnimi značilnostmi Kubernetes Dashboard:

  • Navigacija: oglejte si glavne objekte K8s v kontekstu imenskih prostorov.
  • Če imate skrbniške pravice, plošča prikazuje vozlišča, imenske prostore in trajne nosilce. Za vozlišča so na voljo statistični podatki o uporabi pomnilnika, procesorja, dodelitvi virov, meritvah, statusu, dogodkih itd.
  • Oglejte si aplikacije, nameščene v imenskem prostoru, glede na njihov tip (Deployment, StatefulSet itd.), razmerja med njimi (ReplicaSet, Horizontal Pod Autoscaler), splošne in prilagojene statistike in informacije.
  • Oglejte si storitve in vstope ter njihove odnose s sklopi in končnimi točkami.
  • Oglejte si datotečne objekte in pomnilnike: Trajni nosilec in Zahtevek za trajni nosilec.
  • Oglejte si in uredite ConfigMap in Secret.
  • Ogled dnevnikov.
  • Dostop do ukazne vrstice v vsebnikih.

Pomembna pomanjkljivost (vendar ne za nas) je, da ni podpore za delo z več gručami. Projekt aktivno razvija skupnost in ohranja ustrezne funkcije z izdajo novih različic in specifikacij API-ja Kubernetes: najnovejša različica plošče je v2.0.1 22. maj 2020 – Preizkušeno združljivost s Kubernetes 1.18.

2. Lens

Pregled GUI-jev za Kubernetes

Projekt je postavljen kot popolno integrirano razvojno okolje (IDE) za Kubernetes. Poleg tega je optimiziran za delo s številnimi grozdi in velikim številom podov, ki tečejo v njih (preizkušeno na 25 podih).

Glavne lastnosti/zmogljivosti objektiva:

  • Samostojna aplikacija, ki ne zahteva namestitve ničesar znotraj gruče (natančneje, za pridobitev vseh metrik bo potreben Prometheus, lahko pa se za to uporabi tudi obstoječa namestitev). »Glavna« namestitev se izvede na osebnem računalniku z operacijskim sistemom Linux, macOS ali Windows.
  • Upravljanje več gruč (podprtih na stotine gruč).
  • Vizualizacija stanja grozda v realnem času.
  • Grafi uporabe virov in trendi z zgodovino na podlagi vgrajenega Prometheusa.
  • Dostop do ukazne vrstice vsebnikov in vozlišč gruče.
  • Popolna podpora za Kubernetes RBAC.

Trenutna izdaja - 3.5.0 z dne 16. junija 2020 Prvotno ustvarila Kontena, danes pa je bila vsa intelektualna lastnina prenesena na posebno organizacijo Lakend Labs, ki se imenuje "zveza domačih geekov in tehnologov v oblaku", ki je odgovorna za "ohranjanje in razpoložljivost Kontenine odprtokodne programske opreme in izdelkov."

Lens je drugi najbolj priljubljen projekt na GitHubu iz kategorije GUI za Kubernetes, "izgubil" je le samo nadzorno ploščo Kubernets. Vse ostale odprtokodne rešitve, ki niso iz kategorije CLI*, so po priljubljenosti bistveno slabše.

* Glej o K9s v bonus delu ocene.

3. Kubernetic

Pregled GUI-jev za Kubernetes

To je lastniška aplikacija, ki se namesti na osebni računalnik (podprti so Linux, macOS, Windows). Njegovi avtorji obljubljajo popolno zamenjavo pripomočka ukazne vrstice in s tem - ni treba zapomniti ukazov in celo desetkratno povečanje hitrosti.

Ena od zanimivih lastnosti orodja je vgrajena podpora za grafikone Helm, ena od pomanjkljivosti pa je pomanjkanje meritev delovanja aplikacij.

Glavne značilnosti Kubernetica:

  • Priročen prikaz stanja gruče. En zaslon za ogled vseh povezanih objektov gruče in njihovih odvisnosti; rdeče/zeleno stanje pripravljenosti za vse objekte; način pogleda stanja gruče s posodobitvami stanja v realnem času.
  • Gumbi za hitro ukrepanje za brisanje in spreminjanje velikosti aplikacije.
  • Podpora za delovanje z več gručami.
  • Preprosto delo z imenskimi prostori.
  • Podpora za grafikone Helm in repozitorije Helm (vključno z zasebnimi). Namestitev in upravljanje grafikonov v spletnem vmesniku.

Trenutni strošek produkta je enkratno plačilo 30 evrov za njegovo uporabo s strani ene osebe za poljubno število imenskih prostorov in gruč.

4. Kubevious

  • Stran;
  • Predstavitev;
  • repozitorij (~500 GitHub zvezdic);
  • Licenca: Apache 2.0
  • Na kratko: "Kubevious naredi gruče Kubernetes, konfiguracijo aplikacij in ogled stanja varne in enostavne za razumevanje."

Pregled GUI-jev za Kubernetes

Ideja projekta je ustvariti orodje za analizo in odpravljanje napak v konfiguracijah aplikacij, nameščenih v gruči. Avtorji so se osredotočili predvsem na implementacijo teh lastnosti, bolj splošne stvari pa pustili za kasneje.

Ključne značilnosti in funkcije Kubevious:

  • Vizualizacija gruče na način, osredotočen na aplikacijo: povezani objekti v vmesniku so združeni v hierarhijo.
  • Vizualni prikaz odvisnosti v konfiguracijah in kaskadnih posledic njihovih sprememb.
  • Prikaz napak konfiguracije gruče: napačna uporaba oznak, zgrešena vrata itd. (Mimogrede, če vas zanima ta funkcija, bodite pozorni na Polariso katerih smo že napisal.)
  • Poleg prejšnje točke je na voljo detekcija potencialno nevarnih zabojnikov, t.j. imeti preveč privilegijev (atributov hostPID, hostNetwork, hostIPC, mount docker.sock itd.).
  • Napredni iskalni sistem za gručo (ne samo po imenih predmetov, ampak tudi po njihovih lastnostih).
  • Orodja za načrtovanje zmogljivosti in optimizacijo virov.
  • Vgrajen "časovni stroj" (možnost ogleda prejšnjih sprememb v konfiguraciji predmetov).
  • Upravljanje RBAC z vrtilno medsebojno povezano tabelo Roles, RoleBindings, ServiceAccounts.
  • Deluje samo z eno gručo.

Projekt ima zelo kratko zgodovino (prva izdaja je bila 11. februarja 2020) in zdi se, da je prišlo do obdobja stabilizacije ali upočasnitve razvoja. Če so bile prejšnje različice izdane pogosto, potem najnovejša izdaja (v0.5 15. april 2020) je zaostala za začetnim tempom razvoja. To je verjetno posledica majhnega števila sodelavcev: v zgodovini repozitorija so le štirje, vse dejansko delo pa opravi ena oseba.

5. Kubewise

  • Stran projekta;
  • Licenca: lastniška (postala bo odprtokodna);
  • Na kratko: "Preprost večplatformski odjemalec za Kubernetes."

Pregled GUI-jev za Kubernetes

Nov izdelek podjetja VMware, prvotno ustvarjen kot del internega hackathona (junija 2019). Nameščen na osebnem računalniku, deluje na osnovi Electron (Podprto za Linux, macOS in Windows) in zahteva kubectl v1.14.0 ali novejšo.

Glavne značilnosti Kubewise:

  • Interakcija vmesnika z najpogosteje uporabljenimi entitetami Kubernetes: vozlišči, imenski prostori itd.
  • Podpora za več datotek kubeconfig za različne gruče.
  • Terminal z možnostjo nastavitve spremenljivke okolja KUBECONFIG.
  • Ustvarite datoteke kubeconfig po meri za dani imenski prostor.
  • Napredne varnostne funkcije (RBAC, gesla, storitveni računi).

Zaenkrat ima projekt samo eno izdajo - različico 1.1.0 z dne 26. novembra 2019. Poleg tega so avtorji načrtovali, da bi ga takoj izdali kot odprtokodno, vendar zaradi notranjih težav (ki niso povezane s tehničnimi težavami) tega niso mogli storiti. Od maja 2020 avtorji delajo na naslednji izdaji in bi morali hkrati začeti postopek odpiranja kode.

6. Konzola OpenShift

Pregled GUI-jev za Kubernetes

Kljub dejstvu, da je ta spletni vmesnik del distribucije OpenShift (tam je nameščen z uporabo posebni operater), avtorji predvideno možnost namestitve/uporabe v običajnih (vanilijskih) namestitvah Kubernetes.

Konzola OpenShift je bila v razvoju že dolgo, zato je vključevala številne funkcije. Omenili bomo glavne:

  • Pristop skupnega vmesnika - dve "perspektivi" možnosti, ki so na voljo v konzoli: za skrbnike in za razvijalce. Način perspektiva razvijalca združuje predmete v obliki, ki je bolj razumljiva za razvijalce (po aplikacijah), in osredotoča vmesnik na reševanje tipičnih nalog, kot je uvajanje aplikacij, sledenje statusu gradnje/uvajanja in celo urejanje kode prek Eclipse Che.
  • Upravljanje delovnih obremenitev, omrežja, shranjevanja, pravic dostopa.
  • Logično ločevanje delovnih obremenitev na projekte in aplikacije. V eni izmed najnovejših izdaj - v4.3 - pojavil специальный nadzorna plošča projekta, ki prikazuje običajne podatke (število in statuse razmestitev, sklopov itd.; porabo virov in druge meritve) v rezini projekta.
  • Posodobljen v realnem času prikaz stanja gruče, sprememb (dogodkov), ki so se zgodili v njej; ogled dnevnikov.
  • Oglejte si podatke spremljanja na podlagi Prometheus, Alertmanager in Grafana.
  • Vodstvo operaterjev, zastopanih v operatorhub.
  • Upravljajte gradnje, ki se izvajajo prek Dockerja (iz določenega repozitorija z datoteko Docker), S2I ali samovoljni zunanji pripomočki.

NB: Drugih nismo dodajali v primerjavo Kubernetes distribucije (na primer veliko manj znani Kubesphere): kljub dejstvu, da je lahko GUI v njih zelo napreden, običajno pride kot del integriranega sklada velikega sistema. Če pa menite, da ni dovolj rešitev, ki bi v celoti delovale v namestitvi vanilla K8s, nam to sporočite v komentarjih.

bonus

1. Portainer na Kubernetesu v različici Beta

  • Stran;
  • repozitorij (~100 GitHub zvezdic);
  • Licenca: Zlib(?) (enako za nadrejeni projekt).

Projekt ekipe Portainer, ki je razvila priljubljeni istoimenski vmesnik za delo z Dockerjem. Ker je projekt v zgodnji fazi razvoja (prva in edina različica beta izšel 16. april 2020), njegovih lastnosti nismo ocenjevali. Vendar pa bo morda zanimivo za mnoge: če gre za vas, sledite razvoju.

2. Ledena plošča

  • Stran;
  • Licenca: lastniška;
  • Na kratko: "Urejevalnik Visual Kubernetes".

Pregled GUI-jev za Kubernetes

Ta mlada namizna aplikacija je namenjena vizualizaciji in upravljanju virov Kubernetes v realnem času s preprostim vmesnikom povleci in spusti. Trenutno podprti objekti so Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap in Secret. Kmalu obljubljajo dodano podporo za Helm. Glavne pomanjkljivosti so zaprtost kode (pričakovano je odpiranje "na nek način") in pomanjkanje podpore za Linux (zaenkrat sta na voljo le različici za Windows in macOS, čeprav je tudi to najverjetneje le vprašanje časa).

3.k9s

  • Stran;
  • Demonstracija;
  • repozitorij (~7700 GitHub zvezdic);
  • Licenca: Apache 2.0;
  • Na kratko: "Vmesnik konzole za Kubernetes, ki vam omogoča upravljanje gruče v stilu."

Pregled GUI-jev za Kubernetes

Pripomoček je bil le v bonus delu pregleda iz razloga, ker ponuja konzolni GUI. Avtorji pa so iz terminala dobesedno iztisnili maksimum, saj poleg uporabniku prijaznega vmesnika ponujajo tudi 6 vnaprej določenih tem ter napreden sistem bližnjic na tipkovnici in vzdevkov ukazov. Njihov temeljit pristop ni bil omejen le na videz: funkcije k9s so prijetno impresivne: upravljanje virov, prikaz stanja gruče, prikaz virov v hierarhični predstavitvi z odvisnostmi, ogled dnevnikov, podpora RBAC, razširitev zmogljivosti prek vtičnikov ... Vse to je pritegnilo. široki skupnosti K8s: število GitHub zvezde projekta so skoraj tako dobre kot uradna nadzorna plošča Kubernetes!

4. Nadzorne plošče aplikacij

In na koncu pregleda - ločena mini kategorija. Vključevala je dva spletna vmesnika, zasnovana ne za celovito upravljanje gruč Kubernetes, temveč za upravljanje tega, kar je v njih razporejeno.

Kot veste, je Helm eno najbolj zrelih in razširjenih orodij za uvajanje kompleksnih aplikacij v Kubernetes. V času njegovega obstoja se je nabralo veliko paketov (Helm charts) za enostavno uvajanje veliko priljubljenih aplikacij. Zato je pojav ustreznih vizualnih orodij, ki vam omogočajo upravljanje življenjskega cikla grafikonov, povsem logičen.

4.1. Monokular

  • repozitorij (1300+ zvezdic GitHub);
  • Licenca: Apache 2.0;
  • Na kratko: »Spletna aplikacija za iskanje in odkrivanje grafikonov Helm v več repozitorijih. Služi kot osnova za projekt vozlišča Helm."

Pregled GUI-jev za Kubernetes

Ta razvoj avtorjev Helma je nameščen v Kubernetes in deluje znotraj iste gruče ter opravlja nalogo. Vendar pa trenutno projekt skoraj ni razvit. Njegov glavni namen je podpirati obstoj Helm Huba. Za druge potrebe avtorji priporočajo Kubeapps (glejte spodaj) ali Red Hat Automation Broker (del OpenShift, vendar se tudi ne razvija več).

4.2. Kubeapps

  • Stran;
  • Predstavitev;
  • repozitorij (~2100 GitHub zvezdic);
  • Licenca: Apache 2.0
  • Na kratko: "Nadzorna plošča vaše aplikacije za Kubernetes."

Pregled GUI-jev za Kubernetes

Izdelek podjetja Bitnami, ki je prav tako nameščen v gručo Kubernetes, vendar se od Monocular razlikuje po začetni osredotočenosti na delo z zasebnimi repozitoriji.

Ključne funkcije in značilnosti Kubeapps:

  • Ogled in namestitev grafikonov Helm iz repozitorijev.
  • Preverite, posodobite in odstranite aplikacije, ki temeljijo na Helmu in so nameščene v gruči.
  • Podpora za prilagojene in zasebne repozitorije grafikonov (podpira ChartMuseum in JFrog Artifactory).
  • Ogled in delo z zunanjimi storitvami - iz kataloga storitev in posrednikov storitev.
  • Objavljanje nameščenih aplikacij z uporabo mehanizma vezave kataloga storitev.
  • Podpora za avtentikacijo in ločevanje pravic z uporabo RBAC.

Povzetek tabele

Spodaj je tabela s povzetkom, v kateri smo poskušali povzeti in združiti glavne značilnosti obstoječih vizualnih vmesnikov za lažjo primerjavo:

Pregled GUI-jev za Kubernetes
(Spletna različica tabele na voljo v Google Dokumentih.)

Zaključek

GUI za Kubernetes so precej specifična in mlada niša. Vendar se razvija zelo aktivno: že je mogoče najti tako precej zrele rešitve kot zelo mlade, ki imajo še prostor za rast. Zagotavljajo različne aplikacije, ponujajo funkcije in videz za skoraj vsak okus. Upamo, da vam bo ta pregled pomagal izbrati orodje, ki najbolj ustreza vašim trenutnim potrebam.

PS

Hvala vam kvaps za podatke na konzoli OpenShift za primerjalno tabelo!

Preberite tudi na našem blogu:

Vir: www.habr.com

Dodaj komentar