
Për funksionimin e plotë të sistemit, është e rëndësishme të njihni utilitetet e komandës: në rastin me Kubernetes, kjo është kubectl. Nga ana tjetër, një ndërfaqe grafike e mirëprojektuar mund të realizojë njëopjesë të madhe të detyrave të zakonshme dhe të hapë mundësi të reja gjatë përdorimit të sistemeve.
Vitin e kaluar publikuam përkthimin për Kubernetes, e cila u publikua me rastin e njoftimit të ndërfaqes së re web. . Autori i asaj artikulli dhe i utilitetit të vet është Henning Jacobs nga kompania Zalando, i cili e pozicionoi këtë risi si "kubectl për uebin". Ai dëshiron të krijojë një mjet me mundësi të përshtatshme për ndërveprimin në formën e mbështetjes teknike (për shembull, të tregoni shpejt një problem me një lidhje web) dhe për reagimin ndaj incidenteve, duke kërkuar probleme në shumë klasterë njëherësh. Kjo krijesë po zhvillohet edhe aktualisht ( kryesisht nga autori vetë).
Duke shërbyer një numër të madh klasterësh Kubernetes të shkallëve të ndryshme, ne jemi gjithashtu të interesuar për mundësinë e ofrimit të një instrumenti vizual për klientët. Kur zgjodhëm ndërfaqen e duhur, mundësitë e mëposhtme ishin thelbësore për neve:
- mbështetje për ndarjen e të drejtave të përdoruesve (RBAC);
- visualizimi i gjendjes së hapësirës emri dhe primitiveve standarde të Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- qasje në komandën e linjës brenda pod-it;
- shikimi i logeve të pod-eve;
- shikimi i gjendjes së pod-eve (
describe status); - fshirja e pod-eve.
Funksione të tjera, të tilla si shikimi i burimeve të konsumuar (në përputhje me pod-et/kontrolluesit/hapësirat e emrit), krijimi/redaktimi i primitiveve K8s, nuk janë aktuale në kuadër të procesit tonë të punës.
Ne do të fillojmë rishikimin me Kubernetes Dashboard klasik, i pranuar si standard nga ne. Ndërsa bota nuk qëndron, (pra - Kubernetes po merr gjithnjë e më shumë GUI të reja), do të flasim edhe për alternativat e tij aktuale, duke e përmbledhur gjithçka në një tabelë krahasuese në fund të artikullit.
NB: Në rishikim ne nuk do të përsërisim zgjidhjet që janë trajtuar më parë në , megjithatë - për të plotësuar pamjen - opsionet përkatëse nga ajo (K8Dash, Octant, Kubernetes Web View) janë përfshirë në tabelën përfundimtare.
1. Kubernetes Dashboard
- ;
- (8000+ yje në GitHub);
- Licenca: Apache 2.0;
- Përmbledhje: "Një ndërfaqe universale web për klasterat Kubernetes. Ajo lejon përdoruesit të menaxhojnë aplikacionet që funksionojnë në klaster dhe të zgjidhin problemet e tyre, si dhe të menaxhojnë vetë klasterin."

Kjo është një panel i përgjithshëm, i shqyrtuar nga autorët e Kubernetes në dokumentacionin zyrtar (ndonëse në mënyrë të paracaktuar). Ajo është e destinuar për nevojat e funksionimit të përditshëm dhe debugimit të aplikacioneve në klaster. Ne e përdorim atë si një mjet vizual të lehtë dhe të plotë, duke ofruar zhvilluesve aksesin e nevojshëm dhe të mjaftueshëm në klaster. Ajo mbulon të gjitha nevojat e tyre që lindin gjatë përdorimit të klasterit (në ne kemi demonstruar disa veçori të panelit). Siç mund të kuptohet lehtë, kjo do të thotë se ajo plotëson të gjitha kërkesat tona të përmendura më sipër.
Disa nga mundësitë kryesore të Kubernetes Dashboard:
- Navigimi: shikimi i objekteve kryesore K8s në përputhje me hapsirat emërtimi.
- Kur përdoruesit kanë të drejta administratori, paneli tregon nyjet, hapësirat e emrave dhe Vëllimet e Përhershme. Për nyjet, janë në dispozicion statistikat mbi përdorimin e memories, procesorit, alokimin e resurseve, metrikat, statusin, ngjarjet etj.
- Shikoni aplikacionet e zhvilluara në hapësirat e emrave, sipas llojit të tyre (Deployment, StatefulSet etj.), lidhjeve ndërmjet tyre (ReplicaSet, Horizontal Pod Autoscaler), statistikave të përgjithshme dhe të personalizuara dhe informacionit.
- Shikoni shërbimet dhe Ingress-at, si dhe lidhjet e tyre me pod-at dhe endpoint-et.
- Shikoni objektet e skedarëve dhe magazinat: Vëllimi i Përhershëm dhe Kërkesa për Vëllim të Përhershëm.
- Shikoni dhe redaktoni ConfigMap dhe Secret.
- Shikoni logët.
- Qasje në komandën e linjës në konteinerë.
NjĂ« disavantazh i rĂ«ndĂ«sishĂ«m (megjithatĂ«, jo pĂ«r ne) â nuk ka mbĂ«shtetje pĂ«r funksionimin nĂ« multi-cluster. Projekti po zhvillohet aktivisht nga komuniteti dhe mbĂ«shtet funksionalitetet e fundit me daljen e versioneve dhe specifikacioneve tĂ« reja tĂ« Kubernetes API: versioni mĂ« i fundit i panelit â nga 22 maji 2020 â testuar pĂ«r kompatibilitet me Kubernetes 1.18.
2. Lens
- ;
- ;
- (~4800 yje GitHub);
- Licensa: MIT;
- Përmbledhje: 'Kubernetes IDE'.

Projektin e pozicionuar si njĂ« mjedis i integruar zhvillimi (IDE) pĂ«r Kubernetes. NĂ« fakt, ai Ă«shtĂ« optimizuar pĂ«r tĂ« punuar me shumĂ« klastera dhe njĂ« numĂ«r tĂ« madh podâesh tĂ« nisura nĂ« to (testuar nĂ« 25,000 podâesh).
Karakteristikat/kapshtet kryesore të Lens:
- Aplikacion autonom, i cili nuk kërkon instalimin e asgjësë brenda klasterit (më saktë, për të marrë të gjitha metriken do të nevojitet Prometheus, por për këtë mund të përdoret një instalim ekzistues). Instalimi "kryesor" bën në kompjuterin personal nën Linux, macOS ose Windows.
- Menaxhimi multiklaster (mbështeten qindra klastera).
- Vizualizimi i gjendjes së klasterit në kohë reale.
- Grafikët e përdorimit të burimeve dhe tendencat me histori të bazuara në Prometheus të integruar.
- Q ì ê·Œ pĂ«r linjĂ«n e komandĂ«s sĂ« kontejnerĂ«ve dhe nĂ« nyjat e klasterit.
- Përkrahje e plotë për Kubernetes RBAC.
Ălirimi aktual â nga 16 qershor 2020. Versioni i parĂ« u krijua nĂ« kompaninĂ« Kontena, dhe sot e gjithĂ« pasuria intelektuale Ă«shtĂ« transferuar nĂ« njĂ« organizatĂ« tĂ« veçantĂ« , e quajtur «bashkimi i entuziastĂ«ve cloud native dhe teknologĂ«ve», qĂ« janĂ« pĂ«rgjegjĂ«s pĂ«r «ruajtjen dhe disponueshmĂ«rinĂ« e softuerit dhe produkteve Open Source tĂ« Kontena».
Lens â projekti i dytĂ« mĂ« i njohur nĂ« GitHub nga kategoria GUI pĂ«r Kubernetes, duke «humbur» vetĂ«m ndaj Dashboard-it tĂ« vetĂ« Kubernetes. TĂ« gjitha zgjidhjet e tjera Open Source qĂ« nuk janĂ« nga kategoria CLI* konsiderohen shumĂ« mĂ« pak tĂ« njohura.
* Shihni për K9s në pjesën bonus të rishikimit.
3. Kubernetic
- ;
- ;
- (200+ yje në GitHub);
- Licenca: e drejtuar;
- Përmbledhje: «Menaxhimi i klasterëve, i bërë i thjeshtë».

Ky Ă«shtĂ« njĂ« aplikacion i drejtuar, i cili instalohet nĂ« kompjuterin personal (pĂ«rkrahĂ«n Linux, macOS, Windows). AutorĂ«t e tij premtojnĂ« njĂ« zĂ«vendĂ«sim tĂ« plotĂ« pĂ«r utilitarin e linjĂ«s sĂ« komandĂ«s, dhe sĂ« bashku me tĂ« â mungesĂ«n e nevojĂ«s pĂ«r tĂ« mbajtur mend komandat dhe madje njĂ« dhjetĂ«fishim tĂ« shpejtĂ«sisĂ« sĂ« punĂ«s.
Një nga veçoritë interesante të mjetit është mbështetje e integruar për Helm charts, ndërsa një nga disavantazhet është mungesa e metrikave të performancës së aplikacioneve.
Veçoritë kryesore të Kubernetic:
- Shfaqja e përshtatshme e gjendjes së klashtarit. Një ekran për të parë të gjithë objektet e lidhura të klashtarit dhe varësitë e tyre; gjendja e gatishmërisë e shfaqur në të kuqe/të gjelbër për të gjithë objektet; modaliteti i shikimit të gjendjes së klashtarit me përditësimin e statusit në kohë reale.
- Butona të shpejtë për veprime si fshirja dhe shkallëzimi i aplikacionit.
- Mbështetje për funksionimin shumëklashtar.
- Punë e lehtë me hapësirat e emrave.
- Mbështetje për Helm charts dhe depozita Helm (përfshirë ato private). Instalimi dhe menaxhimi i charts në ndërfaqen e web-it.
Ămimi aktual i produktit â njĂ« pagesĂ« unike prej 30 euro pĂ«r pĂ«rdorimin e tij nga njĂ« person pĂ«r çdo numĂ«r hapĂ«sirash emrash dhe klastrash.
4. Kubevious
- ;
- ;
- (~500 yje në GitHub);
- Licenca: Apache 2.0
- Përmbledhtazi: "Kubevious bën që klastrat Kubernetes, konfigurimin e aplikacioneve dhe shikimin e gjendjes së tyre të jenë të sigurta dhe të lehta për t'u kuptuar."

Ideja e projektit është krijimi i një instrumenti të destinuar për analizimin dhe zbardhjen e konfigurimeve të aplikacioneve, të vendosura në klashtar. Autorët u përqendruan fillimisht në implementimin e këtyre veçorive, duke lënë më të përgjithshmet për më vonë.
Karakteristikat dhe funksionet kryesore të Kubevious:
- Vizualizimi i klasterit në mënyrë që fokusohet në aplikacione: objektet e ndërlidhura në ndërfaqe grupohen, duke u renditur në një hierarki.
- Shfaqja e qartë e varësive në konfigurime dhe pasoja kaskadë të ndryshimeve të tyre.
- Shfaqja e gabimeve në konfigurimin e klasterit: përdorimi i gabuar i etiketave, porta të humbura, etj. (Në rast se ju intereson kjo veçori, kushtoni vëmendje ndaj , për të cilin ne .)
- Në shtesë të pikës së mëparshme - zbulohet automatikisht kontenierët potencialisht të rrezikshëm, pra ata që kanë privilegje tepër të mëdha (atributet
hostPID,hostNetwork,hostIPC, montimidocker.sockdhe të ngjashme). - Një sistem avangardë kërkimi në klaster (jo vetëm sipas emrave të objekteve, por edhe sipas pronave të tyre).
- Mjetet për planifikimin e kapaciteteve dhe optimizimin e burimeve.
- Një 'makinë kohe' e integruar (mundësia për të parë ndryshimet e bëra më parë në konfigurimin e objekteve).
- Menaxhimi i RBAC duke përdorur një tabelë përmbledhëse ndërlidhëse nga Roles, RoleBindings, ServiceAccounts.
- Punon vetëm me një klaster.
Projekti ka një histori shumë të shkurtër (lëshimi i parë ishte më 11 shkurt 2020) dhe duket se ka filluar një periudhë stabilizimi ose ngadalësimi në zhvillim. Nëse versionet e mëparshme u lëshuan shpesh, lëshimi i fundit ( më 15 prill 2020) është vonuar nga ritmi fillestar i zhvillimit. Ndoshta kjo lidhet me numrin e vogël të kontributorëve: në historinë e repositorit ka vetëm 4, dhe e gjithë puna faktike kryhet nga një person.
5. Kubewise
- ;
- Licenca: proprietar (do të bëhet Open Source);
- Në përmbledhje: «Një klient shumëplarformë i thjeshtë për Kubernetes».

Produkt i ri nga VMware, fillimisht i krijuar gjatë një hackathon-i të brendshëm (në qershor 2019). Instalohet në kompjuterin personal, punon mbi bazën e (mbështeten Linux, macOS dhe Windows) dhe kërkon kubectl jo më të ulët se v1.14.0.
Karakteristikat kryesore të Kubewise:
- Interaksion në ndërfaqe me entitetet më të përdorura të Kubernetes: nyje, hapësira emrash, etj.
- Mbështetje për disa skedarë kubeconfig për klasterë të ndryshëm.
- Terminal me mundësi për të vendosur variablin e mjedisit
KUBECONFIG. - Generimi i skedarëve kubeconfig të personalizuar për hapësirën e emrit të dhënë.
- Mundësi të zgjeruara sigurie (RBAC, fjalëkalime, llogari shërbimi).
Aktualisht projekti ka vetĂ«m njĂ« version â versionin nga 26 nĂ«ntor 2019. Disa autorĂ« kishin planifikuar ta lĂ«shonin atĂ« si Open Source, por pĂ«r shkak tĂ« problemeve tĂ« brendshme (tĂ« pa lidhura me çështje teknike) nuk arritĂ«n ta bĂ«nin kĂ«tĂ«. NĂ« maj 2020, autorĂ«t po punojnĂ« pĂ«r njĂ« version tĂ« ri dhe njĂ«kohĂ«sisht duhet tĂ« nisin procesin e hapjes sĂ« kodit.
6. OpenShift Console
- ;
- (~150 yje në GitHub);
- Licenca: Apache 2.0;
- Përmbledhtazi: 'UI për klasteret OpenShift'.

Megjithatë, ky interfejs web është pjesë e shpërndarjes OpenShift (aty instalohet me anë të ), autorët mundësinë e instalimit/përdorimit të tij edhe në instalimet normale (vanilla) të Kubernetes.
OpenShift Console është zhvilluar për një kohë të gjatë, prandaj ka përfshirë shumë funksione. Do të përmendim disa nga to:
- Qasja e ndarĂ« nĂ« ndĂ«rfaqe â dy 'perspektiva' tĂ« mundĂ«sive tĂ« disponueshme nĂ« Console: pĂ«r administratorĂ«t dhe pĂ«r zhvilluesit. NjĂ« mĂ«nyrĂ« Perspektiva e Zhvilluesit grupin objeket nĂ« njĂ« format mĂ« tĂ« kuptueshĂ«m pĂ«r zhvilluesit (sipĂ«rmarrje) dhe orienton ndĂ«rfaqen pĂ«r tĂ« zgjidhur detyra tipike si vendosja e aplikacioneve, ndjekja e statusit tĂ« ndĂ«rtimit/shkarkimit dhe madje redaktimi i kodit pĂ«rmes Eclipse Che.
- Menaxhimi i ngarkesave të punës, rrjetit, magazinave, dhe të drejtave të aksesit.
- PĂ«rfaqĂ«simi logjik i ngarkesave tĂ« punĂ«s nĂ« projekte dhe aplikacione. NĂ« njĂ« nga lĂ«shimet mĂ« tĂ« fundit â v4.3 â i veçantĂ« Project dashboard, qĂ« paraqet tĂ« dhĂ«na tĂ« njohura (numri dhe statuset e vendosjeve, pod-ve etj.; konsumimi i burimeve dhe metrika tĂ« tjera) nĂ« pĂ«rmbledhje tĂ« projekteve.
- Paraqitja në kohë reale e gjendjes së klasterit, ndryshimeve të ndodhura (ngjarjeve); shikimi i logëve.
- Shikimi i të dhënave të monitorimit, të bazuara në Prometheus, Alertmanager dhe Grafana.
- Menaxhimi i operatorëve, të paraqitur në .
- Menaxhimi i ndërtimeve që kryhen përmes Docker (nga repository i specifikuar me Dockerfile), ose utilita të jashtme të rastësishme.
NB: Nuk e kemi shtuar në krahasim distribuime të tjera Kubernetes (për shembull, shumë më pak të njohura Megjithëse ndërfaqja grafike mund të jetë shumë e avancuar, zakonisht vini si pjesë e një stoku të integruar të një sistemi të madh. Por nëse mendoni se disa zgjidhje që funksionojnë plotësisht edhe në instalimin vanilla të K8s mungojnë, na tregoni në komentet.
Bonus
1. Portainer në Kubernetes në version beta
- ;
- (~100 yje në GitHub);
- Licenca: Zlib(?) (kështu është tek projekti prind).
Projekt nga ekipi i Portainer, që zhvilloi ndërfaqen popullore të quajtur njësoj për punë me Docker. Duke qenë se projekti është në fazën e hershme të zhvillimit (versioni i parë dhe i vetëm beta, 16 prill 2020), ne nuk e vlerësuam funksionalitetin e tij. Sidoqoftë, ndoshta do të interesojë shumë: nëse jeni njëra nga ata, ndiqni zhvillimin. 2. IcePanel
Shkurtimisht: "Redaktori vizual i Kubernetes".
- ;
- Licenca: e drejtuar;
- Ky është një aplikacion i ri desktop që synon të vizualizojë resurset e Kubernetes në kohë reale dhe t'i menaxhojë ato me një ndërfaqe të thjeshtë në stilin drag & drop. Objektet e mbështetura për momentin përfshijnë Pod, Shërbim, Shpërndarje, StatefulSet, Vëllimi i qëndrueshëm, Kërkesa për vëllim të qëndrueshëm, ConfigMap dhe Secret. Prej shumë shpejt pritet të shtohet mbështetje për Helm. Mangësi kryesore janë mbyllja e kodit (pritet që ai

Ky është një aplikacion i ri desktopi, i cili ka si qëllim vizualizimin e burimeve Kubernetes në kohë reale dhe menaxhimin e tyre me një ndërfaqe të thjeshtë në stilin drag & drop. Objeket që mbështeten në këtë moment përfshijnë Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap dhe Secret. Në një të ardhme të afërt pritet të shtohet mbështetje për Helm. Disavantazhi kryesor është mbyllja e kodit (pritet të publikohet) ) dhe mungesa e mbështetjes për Linux (deri tani janë të disponueshme vetëm versione për Windows dhe macOS, megjithatë kjo gjithashtu është për një çështje kohe).
3. k9s
- ;
- ;
- (~7700 yje në GitHub);
- Licenca: Apache 2.0;
- Shkurt: "Ndërfaqja e komandës për Kubernetes, që lejon menaxhimin me stil të grumbullit".

Një utilitar i përfshirë vetëm në pjesën bonus të vlerësimit për arsye se ofron një GUI të komandës. Megjithatë, autorët kanë shfrytëzuar maksimumin nga terminali, duke ofruar jo vetëm një ndërfaqe të lehtë për përdorim, por edhe 6 tema të paracaktuara, një sistem të avancuar të kombinimeve të tastierës dhe aliase për komanda. Qasja e tyre e thellë nuk u kufizua në pamjen e jashtme: mundësitë e k9s janë shumë të përmirësuara: menaxhimi i burimeve, shfaqja e gjendjes së grumbullit, paraqitja e burimeve në një strukturë hierarkike me varësi, shikimi i log-eve, mbështetje për RBAC, zgjerimi i funksionaliteteve përmes plugineve⊠Të gjitha këto janë pëlqyer nga një komunitet i gjerë K8s: numri i yjeve në projektin GitHub është pothuajse i barabartë me Dashbordin zyrtar të Kubernetes!
4. Paneli i menaxhimit të aplikacioneve
Dhe nĂ« pĂ«rfundim tĂ« rishikimit â njĂ« kategori e veçantĂ« mini. Ajo pĂ«rfshin dy ndĂ«rfaqe web, tĂ« destinuara jo pĂ«r menaxhimin kompleks tĂ« kubernetes, por pĂ«r menaxhimin e asaj qĂ« zhvillohet brenda tyre.
Siç dihet, një nga mjetet më të zhvilluara dhe të përhapura për të zhvilluar aplikacione komplekse në Kubernetes është Helm. Gjatë periudhës së tij, janë grumbulluar shumë paketa (Helm charts) për krijimin e lehtë të . Prandaj, është mjaft logjike që të shfaqen mjete vizuale për të menaxhuar ciklin e jetës së çarçit.
4.1. Monocular
- (1300+ yje në GitHub);
- Licenca: Apache 2.0;
- Në shkurt: "Një aplikacion web për kërkimin dhe zbulimin e Helm-charts në shumë repozita. Shërben si bazë për projektin Helm hub."

Ky zhvillim nga autorët e Helm instalohet në Kubernetes dhe punon brenda një klasteri, duke realizuar detyrën e caktuar. Megjithatë, projekti aktualisht nuk po zhvillohet pothuajse fare. Qëllimi i tij kryesor është mbështetja e ekzistencës së 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
- ;
- ;
- (~2100 yje në GitHub);
- Licenca: Apache 2.0
- Në pak fjalë: "Paneli juaj i aplikacioneve për Kubernetes."

Një produkt nga Bitnami, i cili instalohet gjithashtu në klasterin Kubernetes, por dallon nga Monocular për shkak të fokusit fillestar në punën me depo private.
Funksionet kyçe dhe karakteristikat e Kubeapps:
- Shikimi dhe instalimi i Helm chart-ave nga depozitë.
- Kontrolli, përditësimi dhe fshirja e aplikacioneve të bazuara në Helm që janë instaluar në klaster.
- Mbështetje për punën me depo chart-ash të personalizuara dhe private (mbështet ChartMuseum dhe JFrog Artifactory).
- Shikimi dhe punimi me shĂ«rbime tĂ« jashtme â nga Katalogu i ShĂ«rbimeve dhe ofruesit e ShĂ«rbimeve.
- Publikimi i aplikacioneve të instaluara përmes mekanizmit të Katalogut të Shërbimeve Binding.
- Mbështetje për autentifikimin dhe ndarjen e të drejtave përmes RBAC.
Tabela përfundimtare
Më poshtë është një tabelë përmbledhëse, në të cilën ne kemi tentuar të mbledhim dhe agregojmë funksionalitetet kryesore të ndërfaqeve ekzistuese vizuale për të lehtësuar krahasimin:
(Versioni online i tabelës .)
Përfundimi
NdĂ«rfaqet grafike pĂ«r Kubernetes janĂ« njĂ« niĆĂ« relativisht e re dhe specifike. MegjithatĂ«, ajo po zhvillohet mjaft aktivisht: tashmĂ« mund tĂ« gjenden si zgjidhje tĂ« mjaft tĂ« zhvilluara, ashtu edhe tĂ« reja, tĂ« cilat ende kanĂ« shumĂ« pĂ«r tĂ« ofruar. Ato janĂ« tĂ« orientuara drejt opsioneve tĂ« ndryshme tĂ« pĂ«rdorimit, duke ofruar funksione dhe pamje pĂ«r çdo shije. ShpresojmĂ« se ky pĂ«rmbledhje do t'ju ndihmojĂ« tĂ« zgjidhni mjetin qĂ« mbulon mĂ« sĂ« miri nevojat aktuale.
P.S.
Faleminderit për të dhënat mbi OpenShift Console për tabelën e krahasimit!
Lexoni gjithashtu në blogun tonë:
- «»;
- «»;
- «»;
- «».
Burimi: habr.com
