Përmbledhje e GUI-ve për Kubernetes

Përmbledhje e GUI-ve për Kubernetes

Për punë të plotë me sistemin, njohja e shërbimeve të linjës së komandës është e rëndësishme: në rastin e Kubernetes, kjo është kubectl. Nga ana tjetër, ndërfaqet grafike të mirë-projektuara dhe të menduara mund të funksionojnëоshumica e detyrave të zakonshme dhe hapin mundësi shtesë për funksionimin e sistemeve.

Vitin e kaluar botuam një përkthim përmbledhje e vogël e ndërfaqes së uebit për Kubernetes, në kohën e duhur që të përkojë me shpalljen e ndërfaqes në internet Kubernetes WebView. Autori i atij artikulli dhe vetë shërbimi, Henning Jacobs nga Zalando, sapo e pozicionuan produktin e ri si "kubectl për ueb". Ai donte të krijonte një mjet me aftësi miqësore për përdoruesit për ndërveprim në një format mbështetjeje teknike (për shembull, shfaqja e shpejtë e problemit me një lidhje ueb) dhe për t'iu përgjigjur incidenteve, duke kërkuar probleme në shumë grupe në të njëjtën kohë. Pasardhësit e tij po zhvillohen në kohën e tanishme (kryesisht me përpjekjet e vetë autorit).

Ndërsa shërbejmë shumë grupe Kubernetes të madhësive të ndryshme, ne jemi gjithashtu të interesuar në aftësinë për të ofruar një mjet pune vizual për klientët. Kur zgjedhim një ndërfaqe të përshtatshme, karakteristikat e mëposhtme ishin kryesore për ne:

  • mbështetje për diferencimin e të drejtave të përdoruesve (RBAC);
  • vizualizimi i gjendjes së hapësirës së emrave dhe primitivëve standardë të Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • marrja e aksesit në vijën e komandës brenda pod;
  • shikimi i regjistrave të bishtajave;
  • shikoni statusin e pods (describe status);
  • duke hequr bishtajat.

Funksione të tjera, të tilla si shikimi i burimeve të konsumuara (në kontekstin e pods / kontrolluesve / hapësirave të emrave), krijimi / redaktimi i primitivëve të K8s, nuk janë të rëndësishme brenda rrjedhës sonë të punës.

Ne do ta fillojmë rishikimin me panelin klasik të Kubernetes, i cili është standardi ynë. Meqenëse bota nuk qëndron ende (që do të thotë se Kubernetes ka gjithnjë e më shumë GUI të reja), ne do të flasim gjithashtu për alternativat e tij aktuale, duke përmbledhur gjithçka në një tabelë krahasuese në fund të artikullit.

NB: Në rishikim, ne nuk do të përsërisim me ato zgjidhje që tashmë janë shqyrtuar artikulli i fundit, megjithatë, për hir të plotësimit, opsionet përkatëse prej tij (K8Dash, Octant, Kubernetes Web View) përfshihen në tabelën përfundimtare.

1. Paneli i Kubernetes

  • Faqja e dokumentacionit;
  • depo (8000+ yje GitHub);
  • Licenca: Apache 2.0;
  • Shkurtimisht: "Ndërfaqja universale në internet për grupimet Kubernetes. Ai i lejon përdoruesit të menaxhojnë dhe zgjidhin problemet e aplikacioneve që funksionojnë në grup, si dhe të menaxhojnë vetë grupin."

Përmbledhje e GUI-ve për Kubernetes

Ky është një panel me qëllim të përgjithshëm i mbuluar nga autorët e Kubernetes në dokumentacionin zyrtar (por i padisponueshëm e paracaktuar). Është projektuar për nevojat e funksionimit të përditshëm dhe korrigjimit të aplikacioneve në një grup. Në shtëpi, ne e përdorim atë si një mjet vizual me peshë të plotë të lehtë që na lejon t'u ofrojmë zhvilluesve qasjen e nevojshme dhe të mjaftueshme në grup. Aftësitë e tij mbulojnë të gjitha nevojat e tyre që lindin në procesin e përdorimit të grupit (në Ky artikull ne demonstruam disa veçori të panelit). Siç mund ta merrni me mend, kjo do të thotë se plotëson të gjitha kërkesat tona të listuara më sipër.

Ndër veçoritë kryesore të panelit të Kubernetes:

  • Navigimi: shikoni objektet kryesore të K8 në kontekstin e hapësirave të emrave.
  • Nëse keni të drejta administratori, paneli tregon nyjet, hapësirat e emrave dhe vëllimet e vazhdueshme. Për nyjet, statistikat janë të disponueshme për përdorimin e kujtesës, procesorit, shpërndarjes së burimeve, metrikës, statusit, ngjarjeve, etj.
  • Shikoni aplikacionet e vendosura në një hapësirë ​​emri sipas llojit të tyre (Deployment, StatefulSet, etj.), marrëdhëniet midis tyre (ReplicaSet, Horizontal Pod Autoscaler), statistika dhe informacione të përgjithshme dhe të personalizuara.
  • Shikoni shërbimet dhe hyrjet, si dhe marrëdhëniet e tyre me pods dhe pikat fundore.
  • Shikoni objektet dhe depozitat e skedarëve: Vëllimi i vazhdueshëm dhe Pretendimi i vëllimit të vazhdueshëm.
  • Shikoni dhe modifikoni ConfigMap dhe Secret.
  • Shiko regjistrat.
  • Qasja në linjën e komandës në kontejnerë.

Një pengesë e rëndësishme (megjithatë, jo për ne) është se nuk ka mbështetje për punën me shumë grupime. Projekti zhvillohet në mënyrë aktive nga komuniteti dhe ruan veçoritë përkatëse me lëshimin e versioneve dhe specifikimeve të reja të API Kubernetes: versioni më i fundit i panelit është v2.0.1 22 maj 2020 - Testuar për përputhshmëri me Kubernetes 1.18.

2. lente

  • Faqe;
  • prezantim;
  • depo (~ 4800 yje GitHub);
  • Licenca: MIT;
  • Me pak fjalë: "Kubernetes IDE".

Përmbledhje e GUI-ve për Kubernetes

Projekti është pozicionuar si një mjedis i plotë zhvillimi i integruar (IDE) për Kubernetes. Për më tepër, është optimizuar për të punuar me shumë grupime dhe një numër të madh pods që funksionojnë në to (testuar në 25 pods).

Karakteristikat / aftësitë kryesore të lenteve:

  • Aplikacion i pavarur që nuk kërkon instalim të asgjëje brenda grupit (më saktë, Prometheus do të kërkohet të marrë të gjitha metrikat, por për këtë mund të përdoret edhe një instalim ekzistues). Instalimi "kryesor" kryhet në një kompjuter personal me Linux, macOS ose Windows.
  • Menaxhimi me shumë grupime (të mbështetura qindra grupe).
  • Vizualizimi i gjendjes së grupit në kohë reale.
  • Grafikët e përdorimit të burimeve dhe tendencat me histori të bazuar në Prometheus të integruar.
  • Qasja në linjën e komandës së kontejnerëve dhe në nyjet e grupimeve.
  • Mbështetje e plotë për Kubernetes RBAC.

Publikimi aktual - 3.5.0 datë 16 qershor 2020 Fillimisht krijuar nga Kontena, sot e gjithë prona intelektuale është transferuar në një organizatë të veçantë Lakeland Labs, i quajtur "një bashkim i magjistarëve dhe teknologëve vendas të cloud", i cili është përgjegjës për "ruajtjen dhe disponueshmërinë e softuerit dhe produkteve me burim të hapur të Kontena".

Lens është projekti i dytë më i popullarizuar në GitHub nga kategoria GUI për Kubernetes, duke "humbur" vetëm vetë panelin e Kubernets. Të gjitha zgjidhjet e tjera me burim të hapur që nuk janë nga kategoria CLI* janë dukshëm më të ulëta në popullaritet.

* Shihni për K9 në pjesën bonus të rishikimit.

3. Kubernetik

Përmbledhje e GUI-ve për Kubernetes

Ky është një aplikacion i pronarit që është i instaluar në një kompjuter personal (Linux, macOS, Windows janë të mbështetur). Autorët e tij premtojnë një zëvendësim të plotë të mjetit të linjës së komandës, dhe me të - nuk ka nevojë të mbani mend komandat dhe madje edhe një rritje dhjetëfish të shpejtësisë.

Një nga veçoritë interesante të mjetit është mbështetja e integruar për diagramet Helm, dhe një nga të metat është mungesa e matjeve të performancës së aplikacionit.

Karakteristikat kryesore të Kubernetic:

  • Shfaqje e përshtatshme e statusit të grupit. Një ekran për të parë të gjitha objektet e grupit të lidhur dhe varësitë e tyre; statusi i gatishmërisë së kuqe/gjelbër për të gjitha objektet; modaliteti i pamjes së statusit të grupit me përditësime të statusit në kohë reale.
  • Butonat e veprimit të shpejtë për fshirjen dhe shkallëzimin e aplikacionit.
  • Mbështetje për funksionimin me shumë grupime.
  • Punë e thjeshtë me hapësirat e emrave.
  • Mbështetje për diagramet Helm dhe depot e Helm (përfshirë ato private). Instalimi dhe menaxhimi i grafikëve në ndërfaqen e internetit.

Kostoja aktuale e produktit është një pagesë një herë prej 30 euro për përdorimin e tij nga një person për çdo numër hapësirash emrash dhe grupimesh.

4. Kubevious

  • Faqe;
  • prezantim;
  • depo (~ 500 yje GitHub);
  • Licenca: Apache 2.0
  • Shkurtimisht: "Kubevious i bën grupet Kubernetes, konfigurimin e aplikacionit dhe shikimin e statusit të sigurt dhe të lehtë për t'u kuptuar."

Përmbledhje e GUI-ve për Kubernetes

Ideja e projektit është të krijojë një mjet të krijuar për të analizuar dhe korrigjuar konfigurimet e aplikacioneve të vendosura në një grup. Autorët u fokusuan kryesisht në zbatimin e këtyre veçorive, duke lënë gjëra më të përgjithshme për më vonë.

Karakteristikat dhe funksionet kryesore të Kubevious:

  • Vizualizimi i grupeve në një mënyrë të përqendruar te aplikacioni: objektet e lidhura në ndërfaqe grupohen, duke u rreshtuar në një hierarki.
  • Shfaqja vizuale e varësive në konfigurime dhe pasojat kaskaduese të ndryshimeve të tyre.
  • Shfaqja e gabimeve të konfigurimit të grupimeve: keqpërdorimi i etiketave, portat e humbura, etj. (Nga rruga, nëse jeni të interesuar për këtë veçori, kushtojini vëmendje Ylli Polarpër të cilat ne tashmë ka shkruar.)
  • Përveç pikës së mëparshme, është i disponueshëm zbulimi i kontejnerëve potencialisht të rrezikshëm, d.m.th. duke pasur shumë privilegje (atribute hostPID, hostNetwork, hostIPC, montoj docker.sock etj).
  • Sistemi i avancuar i kërkimit për grupin (jo vetëm nga emrat e objekteve, por edhe nga vetitë e tyre).
  • Mjete për planifikimin e kapaciteteve dhe optimizimin e burimeve.
  • "Makina e kohës" e integruar (aftësia për të parë ndryshimet e mëparshme në konfigurimin e objekteve).
  • Menaxhimi i RBAC me një tabelë të ndërlidhur me pivot të roleve, lidhjeve të roleve, llogarive të shërbimit.
  • Punon vetëm me një grup.

Projekti ka një histori shumë të shkurtër (shfaqja e parë u zhvillua më 11 shkurt 2020) dhe duket se ka pasur një periudhë ose stabilizimi ose ngadalësimi të zhvillimit. Nëse versionet e mëparshme lëshoheshin shpesh, atëherë versioni i fundit (v0.5 15 prill 2020) ka mbetur prapa ritmit fillestar të zhvillimit. Kjo është ndoshta për shkak të numrit të vogël të kontribuesve: ka vetëm 4 prej tyre në historinë e depove, dhe e gjithë puna aktuale kryhet nga një person.

5. Kubewise

  • Faqja e projektit;
  • Licenca: e pronarit (do të bëhet me burim të hapur);
  • Shkurtimisht: "Një klient i thjeshtë me shumë platforma për Kubernetes."

Përmbledhje e GUI-ve për Kubernetes

Një produkt i ri nga VMware, i krijuar fillimisht si pjesë e një hackathon të brendshëm (në qershor 2019). Instaluar në një kompjuter personal, punon në bazë të elektron (Linux, macOS dhe Windows i mbështetur) dhe kërkon kubectl v1.14.0 ose version më të ri.

Karakteristikat kryesore të Kubewise:

  • Ndërveprimi i ndërfaqes me entitetet më të përdorura të Kubernetes: nyjet, hapësirat e emrave, etj.
  • Mbështetje për skedarë të shumtë kubeconfig për grupime të ndryshme.
  • Terminali me aftësinë për të vendosur një variabël mjedisi KUBECONFIG.
  • Gjeneroni skedarë të personalizuar kubeconfig për hapësirën e caktuar të emrave.
  • Karakteristikat e avancuara të sigurisë (RBAC, fjalëkalimet, llogaritë e shërbimit).

Deri më tani, projekti ka vetëm një version - version 1.1.0 datë 26 nëntor 2019. Për më tepër, autorët planifikuan ta lëshonin menjëherë si burim të hapur, por për shkak të problemeve të brendshme (që nuk lidhen me çështje teknike) ata nuk mund ta bënin këtë. Që nga maji 2020, autorët po punojnë për versionin e radhës dhe duhet të iniciojnë procesin e hapjes së kodit në të njëjtën kohë.

6. OpenShift Console

Përmbledhje e GUI-ve për Kubernetes

Përkundër faktit se kjo ndërfaqe në internet është pjesë e shpërndarjes OpenShift (ajo është instaluar atje duke përdorur operator special), autorët parashikohet aftësia për ta instaluar / përdorur atë në instalimet normale (vanilje) të Kubernetes.

OpenShift Console ka qenë në zhvillim për një kohë të gjatë, kështu që ka përfshirë shumë veçori. Do të përmendim më kryesoret:

  • Qasja e ndërfaqes së përbashkët - dy "perspektiva" të mundësive të disponueshme në Console: për administratorët dhe për zhvilluesit. Modaliteti perspektiva e zhvilluesit grupon objektet në një formë më të kuptueshme për zhvilluesit (sipas aplikacioneve) dhe fokuson ndërfaqen në zgjidhjen e detyrave tipike si vendosja e aplikacioneve, gjurmimi i statusit të ndërtimit / vendosjes dhe madje edhe redaktimi i kodit përmes Eclipse Che.
  • Menaxhimi i ngarkesave të punës, rrjetit, ruajtjes, të drejtave të aksesit.
  • Ndarja logjike për ngarkesat e punës në projekte dhe aplikacione. Në një nga publikimet më të fundit - v4.3 - shfaq të veçantë paneli i projektit, i cili shfaq të dhënat e zakonshme (numrin dhe statuset e vendosjeve, pods, etj.; konsumi i burimeve dhe metrika të tjera) në një pjesë të projektit.
  • Afishimi i përditësuar në kohë reale i gjendjes së grupit, ndryshimeve (ngjarjeve) që kanë ndodhur në të; duke parë regjistrat.
  • Shikoni të dhënat e monitorimit bazuar në Prometheus, Alertmanager dhe Grafana.
  • Menaxhimi i operatorëve të përfaqësuar në operator qendër.
  • Menaxhoni ndërtimet që kalojnë përmes Docker (nga një depo e specifikuar me një skedar Docker), S2I ose shërbime të jashtme arbitrare.

NB: Krahasimit nuk i kemi shtuar të tjera Shpërndarjet Kubernetes (për shembull, shumë më pak të njohura Kubesfera): përkundër faktit se GUI mund të jetë shumë i avancuar në to, ai zakonisht vjen si pjesë e grupit të integruar të një sistemi të madh. Sidoqoftë, nëse mendoni se nuk ka zgjidhje të mjaftueshme që funksionojnë plotësisht në instalimin e vaniljes K8s, na tregoni në komente.

Shpërblim

1. Portier në Kubernetes në Beta

  • Faqe;
  • depo (~ 100 yje GitHub);
  • Licenca: Zlib(?) (e njëjta gjë për projektin mëmë).

Një projekt nga ekipi Portainer, i cili zhvilloi ndërfaqen popullore me të njëjtin emër për të punuar me Docker. Meqenëse projekti është në një fazë të hershme të zhvillimit (versioni i parë dhe i vetëm beta doli 16 prill 2020), nuk i vlerësuam veçoritë e tij. Sidoqoftë, mund të jetë me interes për shumë njerëz: nëse kjo ka të bëjë me ju, ndiqni zhvillimin.

2. IcePanel

  • Faqe;
  • Licenca: pronësore;
  • Me pak fjalë: "Visual Kubernetes Editor".

Përmbledhje e GUI-ve për Kubernetes

Ky aplikacion i ri i desktopit synon të vizualizojë dhe menaxhojë burimet e Kubernetes në kohë reale me një ndërfaqe të thjeshtë drag & drop. Objektet e mbështetura aktualisht janë Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap dhe Secret. Së shpejti ata premtojnë të shtojnë mbështetjen për Helmin. Disavantazhet kryesore janë afërsia e kodit (pritet hapja "në një farë mënyre") dhe mungesa e mbështetjes për Linux (deri më tani janë të disponueshme vetëm versionet për Windows dhe macOS, megjithëse kjo ka shumë të ngjarë gjithashtu vetëm një çështje kohe).

3.k9s

  • Faqe;
  • Demonstrim;
  • depo (~ 7700 yje GitHub);
  • Licenca: Apache 2.0;
  • Shkurtimisht: "Një ndërfaqe konsole për Kubernetes që ju lejon të menaxhoni grupin tuaj në stil."

Përmbledhje e GUI-ve për Kubernetes

Shërbimi ishte vetëm në pjesën e bonusit të rishikimit për arsye se ofron një GUI të tastierës. Sidoqoftë, autorët fjalë për fjalë shtrydhën maksimumin nga terminali, duke ofruar jo vetëm një ndërfaqe miqësore për përdoruesit, por edhe 6 tema të paracaktuara dhe një sistem të avancuar të shkurtoreve të tastierës dhe pseudonimeve të komandave. Qasja e tyre e plotë nuk kufizohej vetëm në pamjen: veçoritë e k9s janë mbresëlënëse të këndshme: menaxhimi i burimeve, shfaqja e gjendjes së grupit, shfaqja e burimeve në një paraqitje hierarkike me varësi, shikimi i regjistrave, mbështetja RBAC, zgjerimi i aftësive përmes shtojcave ... E gjithë kjo apeloi për komunitetin e gjerë të K8s: numri Yjet e GitHub të projektit janë pothuajse po aq të mirë sa Paneli zyrtar i Kubernetes!

4. Panelet e kontrollit të aplikacionit

Dhe në fund të rishikimit - një mini-kategori e veçantë. Ai përfshinte dy ndërfaqe në internet të dizajnuara jo për menaxhimin gjithëpërfshirës të grupimeve Kubernetes, por për menaxhimin e asaj që është vendosur në to.

Siç e dini, një nga mjetet më të pjekura dhe më të përhapura për vendosjen e aplikacioneve komplekse në Kubernetes është Helm. Gjatë periudhës së ekzistencës së tij, janë grumbulluar shumë paketa (diagrame Helm) për vendosje të lehtë shumë aplikacione të njohura. Prandaj, shfaqja e mjeteve të përshtatshme vizuale që ju lejojnë të menaxhoni ciklin jetësor të grafikëve është mjaft logjike.

4.1. Monokular

  • depo (1300+ yje GitHub);
  • Licenca: Apache 2.0;
  • Shkurtimisht: “Një aplikacion në internet për kërkimin dhe zbulimin e grafikëve të Helm-it nëpër depo të shumta. Shërben si bazë për projektin Helm hub."

Përmbledhje e GUI-ve për Kubernetes

Ky zhvillim nga autorët e Helm është i instaluar në Kubernetes dhe funksionon brenda të njëjtit grup, duke kryer detyrën. Megjithatë, për momentin, projekti pothuajse nuk është zhvilluar. Qëllimi i tij kryesor është të mbështesë ekzistencën e Helm Hub. Për nevoja të tjera, autorët rekomandojnë Kubeapps (shih më poshtë) ose Red Hat Automation Broker (pjesë e OpenShift, por gjithashtu nuk po zhvillohet më).

4.2. Kubeapps

  • Faqe;
  • prezantim;
  • depo (~ 2100 yje GitHub);
  • Licenca: Apache 2.0
  • Shkurtimisht: "Pulti juaj i aplikacionit për Kubernetes."

Përmbledhje e GUI-ve për Kubernetes

Një produkt nga Bitnami, i cili gjithashtu është i instaluar në një grup Kubernetes, por ndryshon nga Monocular në fokusin e tij fillestar në punën me depo private.

Funksionet dhe veçoritë kryesore të Kubeapps:

  • Shikoni dhe instaloni grafikët Helm nga depot.
  • Kontrolloni, përditësoni dhe hiqni aplikacionet e bazuara në Helm të instaluara në grup.
  • Mbështetje për depo të grafikëve me porosi dhe private (mbështet ChartMuseum dhe JFrog Artifactory).
  • Shikimi dhe puna me shërbime të jashtme - nga Katalogu i Shërbimeve dhe Brokerat e Shërbimit.
  • Publikimi i aplikacioneve të instaluara duke përdorur mekanizmin e lidhjeve të katalogut të shërbimeve.
  • Mbështetje për vërtetimin dhe ndarjen e të drejtave duke përdorur RBAC.

Tabela përmbledhëse

Më poshtë është një tabelë përmbledhëse në të cilën jemi përpjekur të përmbledhim dhe grumbullojmë tiparet kryesore të ndërfaqeve vizuale ekzistuese për të lehtësuar krahasimin:

Përmbledhje e GUI-ve për Kubernetes
(Versioni online i tabelës disponueshme në Google Docs.)

Përfundim

GUI-të për Kubernetes janë një vend mjaft specifik dhe i ri. Megjithatë, ajo po zhvillohet shumë aktivisht: tashmë është e mundur të gjesh zgjidhje mjaft të pjekura, dhe shumë të reja, të cilat kanë ende hapësirë ​​për t'u rritur. Ato kujdesen për një sërë aplikacionesh, duke ofruar veçori dhe pamje që i përshtaten pothuajse çdo shijeje. Shpresojmë që ky rishikim do t'ju ndihmojë të zgjidhni mjetin që i përshtatet më së miri nevojave tuaja aktuale.

PS

Faleminderit kvaps për të dhënat në OpenShift Console për tabelën e krahasimit!

Lexoni edhe në blogun tonë:

Burimi: www.habr.com

Shto një koment