
Lai pilnvērtīgi strādātu ar sistēmu, ir svarīgas komandrindas utilītu zināšanas: Kubernetes gadījumā tas ir kubectl. No otras puses, labi projektēti un pārdomāti grafiskie interfeisi var veikt lielāko daļu ikdienišķo uzdevumu un atvērt papildu iespējas sistēmu ekspluatācijā.oPagājušajā gadā mēs publicējām tulkojumu
neliela pārskata par web UI . Šīs raksta un paša rīka autors ir Henning Jacobs no uzņēmuma Zalando, kurš jauninājumus pozicionēja kā "kubectl tīmeklim". Viņš vēlējās izveidot rīku ar ērtām iespējām tehniskās atbalsta mijiedarbībai (piemēram, ātri parādīt problēmu ar tīmekļa saiti) un reakcijai uz incidentiem, meklējot problēmas daudzos klasteros vienlaikus. Viņa radītais rīks joprojām attīstās (galvenokārt paša autora spēkiem). Apkalpojot daudzus Kubernetes klasterus dažādos mērogos, arī mēs esam ieinteresēti nodrošināt klientiem vizuālā darba rīku. Izvēloties atbilstošo interfeisu, mums bija svarīgas šādas iespējas:
lietotāju tiesību ierobežošana (RBAC);
- nosaukumu telpas un standarta Kubernetes primitīvu (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC) stāvokļa vizualizācija;
- piekļuve komandrindai iekšpusē pod’a;
- pod’u žurnālu skatīšana;
- pod’u stāvokļa skatīšana (
- describe status,
pod’u dzēšana.); - Citas funkcijas, piemēram, resursu patēriņa skatīšana (pod’u/kanalizatoru/nosaukumu telpu griezumā), K8s primitīvu izveide/rediģēšana mūsu darba procesā nav aktuālas.
Pārskatu mēs sāksim ar klasisko Kubernetes Dashboard, kuru uzskatām par standartu. Tā kā pasaule nepārstāj attīstīties (un tādējādi Kubernetes parādās arvien jauni GUI), mēs izstāstīsim arī par tā aktuālajām alternatīvām, apkopojot visu salīdzinošā tabulā raksta beigās.
: Pārskatā mēs neatkārtosimies ar tiem risinājumiem, kas jau tika apskatīti
Piezīme, taču - pilnīguma labad - attiecīgās opcijas no tās (K8Dash, Octant, Kubernetes Web View) ir iekļautas galīgajā tabulā. 1. Kubernetes Dashboard
Dokumentācijas lapa
- ;
- Licences: Apache 2.0;
- Licences: Apache 2.0;
- Īsumā: „Universālais tīmekļa interfeiss Kubernetes klasteriem. Tas ļauj lietotājiem pārvaldīt klasterī darbojošās lietojumprogrammas un novērst to kļūdas, kā arī pārvaldīt pašu klasteri.”

Šī ir vispārējā saskarne, ko Kubernetes autori apsver oficiālajā dokumentācijā (lai gan nokrīt no noklusējuma). Tā ir paredzēta ikdienas lietošanai un lietojumprogrammu debugēšanai klasterī. Mēs to izmantojam kā pilnvērtīgu vieglu vizuālo rīku, kas ļauj izstrādātājiem nodrošināt pietiekamu piekļuvi klasterim. Tās iespējas aptver visas viņu prasības, kas rodas klastera izmantošanas procesā (programmā mēs demonstrējām dažas paneļa funkcijas). Kā viegli uzminēt, tas nozīmē, ka tas apmierina visas mūsu augstākminētās prasības.
Starp galvenajām Kubernetes Dashboard iespējām:
- Navigācija: galveno K8s objektu apskate pa nosaukuma telpām.
- Ja ir administratora tiesības, panelis rāda mezglus, nosaukuma telpas un Persistent Volumes. Par mezgliem ir pieejama statistika par atmiņas izmantošanu, procesora izmantošanu, resursu piešķiršanu, metriku, statusu, notikumiem u.tml.
- Apskate lietojumprogrammām, kas izvietotas nosaukuma telpā, pēc to veida (Deployment, StatefulSet u.c.), to savienojumiem (ReplicaSet, Horizontal Pod Autoscaler), vispārējai un personizētai statistikai un informācijai.
- Apskate pakalpojumiem un Ingress, kā arī to saiknēm ar podiem un pointiem.
- Apskate failu objektiem un krātuvēm: Persistent Volume un Persistent Volume Claim.
- Apskate un rediģēšana ConfigMap un Secret.
- Apskate žurnāliem.
- Piekļuve komandrindai konteineros.
Zīmīgs trūkums (tomēr ne mums) — nav atbalsta multi-klasteru darba. Projekts aktīvi attīstās kopienā un atbalsta aktuālās funkcijas ar jaunu versiju un specifikāciju Kubernetes API izlaidi: pēdējā versija paneļa — no 2020. gada 22. maija — ir pārbaudīta saderība ar Kubernetes 1.18.
2. Lens
- ;
- ;
- (apmēram 4800 GitHub zvaigznes);
- Licence: MIT;
- Īsumā: „Kubernetes IDE”.

Projekts pozicionējas kā pilnvērtīga integrētā izstrādes vide (IDE) Kubernetes. Turklāt tā ir optimizēta darbam ar vairākām klasteriem un lielu skaitu tajos palaižamiem podiem (pārbaudīta uz 25 tūkstošiem podu).
Galvenās iezīmes/iespējas Lens:
- Autonoma lietotne, kurai nav nepieciešams instalēt neko iekšpusē klastera (precīzāk, lai iegūtu visas metrikas, būs nepieciešams Prometheus, taču šim var izmantot arī jau esošu instalāciju). «Pamata» instalācija tiek veikta personālajā datorā ar Linux, macOS vai Windows operētājsistēmu.
- Mūsdienu daudzklasteru pārvaldība (atbalsta simtiem klasteru).
- Klastera stāvokļa vizualizācija reālā laikā.
- Resursu izmantošanas grafiki un tendences ar vēsturi, pamatojoties uz iebūvēto Prometheus.
- Piekļuve konteineru komandrindām un klastera mezglos.
- Pilnīga Kubernetes RBAC atbalsts.
Pašlaik aktuālais izlaišanas datums — no 2020. gada 16. jūnija. Sākotnējā versija tika izstrādāta uzņēmumā Kontena, bet šodien visa intelektuālā īpašuma tiesības tika nodotas speciālai organizācijai , kas dēvēta par «cloud native entuziastu un tehnoloģiju speciālistu apvienību», kas atbild par «atvērtā koda programmatūras un Kontena produktu saglabāšanu un pieejamību».
Lens — otrais populārākais projekts GitHub no GUI kategorijas Kubernetes, «zaudē» tikai pašam Kubernets Dashboard. Visi citi atvērtā koda risinājumi ārpus CLI kategorijas būtiski atpaliek popularitātē.
* Skatīt par K9s bonusa daļā pārskata.
3. Kubernetic
- ;
- ;
- (200+ GitHub zvaigžņu);
- Licences veids: patentēta;
- Šeit īsumā: «Klastera pārvaldība, padarīta vienkārša».

Tas ir patentēts rīks, kas tiek instalēts personālajā datorā (atbalsta Linux, macOS, Windows). T tā autori sola pilnīgu komandrindas utilītu nomaiņu, kā arī to, ka nav nepieciešams iegaumēt komandas un pat desmitkārtīgu darba ātruma palielinājumu.
Viena no interesantākajām rīka iezīmēm ir iebūvēts atbalsts Helm kartēm, bet trūkums ir pārlieku mazs lietojumprogrammu snieguma metrikas.
Galvenās Kubernetic funkcijas:
- Ērta klastera stāvokļa attēlošana. Viens ekrāns visiem saistītajiem klastera objektiem un to atkarībām; sarkanais/zelenais gatavības stāvoklis visiem objektiem; klastera stāvokļa skatīšanās režīms ar reāllaika statusa atjauninājumiem.
- Ātrās darbības pogas lietojumprogrammas dzēšanai un mērogošanai.
- Atbalsts daudzklasteru darbam.
- Vienkārša darbība ar nosaukumu telpām.
- Atbalsts Helm chartiem un Helm ieguldījumiem (ieskaitot privātos). Chartu uzstādīšana un pārvaldība tīmekļa interfeiss.
Pašreizējā produkta cena — vienreizēja maksājuma summa 30 eiro par lietošanu vienai personai jebkurā skaitā nosaukumu telpām un klasteriem.
4. Kubevious
- ;
- ;
- (~500 zvaigznes GitHub);
- Licence: Apache 2.0
- Īsa informācija: «Kubevious padara Kubernetes klasterus, lietojumprogrammu konfigurāciju un to stāvokļa pārskatu drošu un viegli saprotamu».

Projekta ideja ir izveidot rīku, kas paredzēts lietojumprogrammu konfigurāciju analīzei un atkļūdošanai, kas izvietotas klasterī. Autori koncentrējās pirmkārt uz šo funkciju īstenošanu, atstājot vispārīgākas lietas uz vēlāk.
Galvenās Kubevious iezīmes un funkcijas:
- Klastera vizualizācija, kas orientēta uz lietojumprogrammām: savstarpēji saistīti objekti saskarnē tiek grupēti un veido hierarhiju.
- Redzama atkarību attēlošana konfigurācijās un to izmaiņu kaskādes sekas.
- Klastera konfigurēšanas kļūdu attēlošana: nepareiza etiķešu izmantošana, izlaisti porti utt. (Starpcitu, ja jūs interesē šī funkcija, lūdzu, pievērsiet uzmanību , par kuru mēs .)
- Papildus iepriekšējai sadaļai — pieejama potenciāli bīstamu konteineru atklāšana, t.i., mērķi ar pārāk lielām privilēģijām (atribūti
hostPID,hostNetwork,hostIPC, montēšanadocker.sockun tamlīdzīgi). - Pārnesta meklēšanas sistēma pa klasteri (ne tikai pēc objektu nosaukumiem, bet arī pēc to īpašībām).
- Rīki jaudu plānošanai un resursu optimizēšanai.
- Iebūvēta „laika mašīna” (iespēja redzēt iepriekšējās objekta konfigurācijas izmaiņas).
- RBAC pārvaldība ar kopsavilkuma savstarpēji saistītas tabulas palīdzību no Roles, RoleBindings, ServiceAccounts.
- Darbojas tikai ar vienu klasteri.
Projektam ir ļoti īsa vēsture (pirmais izlaidums notika 2020. gada 11. februārī), un šķiet, ka ir sākusies stabilizācijas vai attīstības tempa samazināšanās periods. Ja iepriekšējās versijas tika izlaistas bieži, tad pēdējais izlaidums ( no 2020. gada 15. aprīļa) ir aizkavējies no sākotnējā attīstības tempa. Droši vien tas ir saistīts ar nelielo līdzdalībnieku skaitu: šī repozitorija vēsturē ir tikai 4, bet visu faktisko darbu veic viens cilvēks.
5. Kubewise
- ;
- Licence: īpašumtiesību (pārsniegs Open Source);
- Īsumā: „Vienkārša multiplatformu klienta programma Kubernetes”.

Jauns produkts no uzņēmuma VMware, sākotnēji izstrādāts iekšējā hackathonā (2019. gada jūnijā). Uzstādāms personālajā datorā, darbojas uz pamata (atbalsta Linux, macOS un Windows) un prasa kubectl ne zemāk par v1.14.0.
Galvenās Kubewise iespējas:
- Saskarne ar visbiežāk izmantotajām Kubernetes struktūrām: mezgliem, nosaukumu telpām u.tml.
- Atbalsts vairākiem kubeconfig failiem dažādiem klasteriem.
- Termināls ar iespēju iestatīt vides mainīgo
KUBECONFIG. - Pielāgotu kubeconfig failu ģenerēšana noteiktai nosaukumu telpai.
- Paplašinātas drošības iespējas (RBAC, paroli, pakalpojumu konti).
Pašlaik projektam ir tikai viena versija — no 2019. gada 26. novembra. Turklāt autori plānoja to nekavējoties izdod kā Open Source, taču iekšēju problēmu dēļ (kas nav saistītas ar tehniskajām grūtībām) to neizdevās izdarīt. 2020. gada maijā autori strādā pie nākamās versijas un vienlaikus plāno uzsākt kodu atklāšanas procesu.
6. OpenShift Console
- ;
- (~150 zvaigžņu GitHub);
- Licences: Apache 2.0;
- Īsumā: „UI OpenShift klasteriem”.

Neskatoties uz to, ka šī tīmekļa saskarne ir daļa no OpenShift izplatījuma (tur tā tiek uzstādīta, izmantojot ), autori iespēju to uzstādīt/lietot arī parastās (vanilla) Kubernetes instalācijās.
OpenShift Console attīstās jau ilgu laiku, tāpēc tā iekļāvusi daudz funkciju. Izceliet galvenās no tām:
- Dalītas pieejas saskarne — divas „perspektīvas” pieejamās Console iespējām: administrēšanas un izstrādātāju. Režīms Izstrādātāja perspektīva grupē objektus izstrādātājiem saprotamākā veidā (pa lietojumprogrammām) un orientē saskarni uz tādu tipisku uzdevumu risināšanu kā lietojumprogrammu izvietošana, būvēšanas/izvietošanas statusa izsekošana un pat koda rediģēšana, izmantojot Eclipse Che.
- Darba slodžu, tīklu, krātuves un piekļuves tiesību pārvaldība.
- Loģiska atdalīšana darba slodzēm pa projektiem un lietojumprogrammām. Vienā no pēdējiem laidieniem — v4.3 — īpašs Projekta paneļa, kas attēlo ierastos datus (izvietojumu skaits un statuss, podu skaits u.tml.; resursu patēriņš un citas metriks) pa projektiem.
- Reālā laika atjaunotā klastera stāvokļa, izmaiņu (notikumu) skatīšana; žurnālu apskate.
- Datu skatīšana, kas balstīta uz Prometheus, Alertmanager un Grafana.
- Operatoru pārvaldība, kas tiek piedāvāti .
- Savākumu pārvaldība, kas tiek veikta caur Docker (no norādītā repozitorija ar Dockerfile), vai dažādas ārējās utilītas.
Piezīme: Mēs nepieņēmām lēmumu iekļaut salīdzinājumā citas Kubernetes distributions (piemēram, daudz mazāk pazīstamo ): neskatoties uz to, ka grafiskais interfeiss var būt ļoti attīstīts, parasti tas nāk kā daļa no integrētā lielas sistēmas steka. Ja jūtat, ka trūkst kādu risinājumu, kas pilnvērtīgi funkcionē arī vaniļas K8s instalācijā, dariet mums zināmu komentāros.
Bonuss
1. Portainer on Kubernetes beta versija
- ;
- (~100 zvaigznes GitHub);
- Licences: Zlib(?) (tāda ir vecāku projektu licence).
Projekts no Portainer komandas, kas izstrādājusi populāro saskarni, lai strādātu ar Docker. Ņemot vērā, ka projekts ir agrīnā attīstības stadijā (pirma versija un vienīgā beta versija 2020. gada 16. aprīlī), mēs to funkcijas neizvērtējām. Tomēr var būt, ka tas interesē daudzu: ja tas attiecas uz jums — sekojiet līdzi attīstībai.
2. IcePanel
- ;
- Licences veids: patentēta;
- Īsi: „Kubernetes vizuālais redaktors”.

Šī jauna darbvirsmas aplikācija ir paredzēta, lai vizualizētu Kubernetes resursus reālā laikā un pārvaldītu tos ar vienkāršu drag & drop interfeisu. Pašlaik atbalstītie objekti ir Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap un Secret. Drīzumā sola pievienot Helm atbalstu. Galvenās nepilnības — koda slēgtība (gaidāms tā ) un Linux atbalsta trūkums (pašlaik pieejamas tikai versijas Windows un macOS, lai gan tas, visticamāk, ir tikai laika jautājums).
3. k9s
- ;
- ;
- (~7700 zvaigznes GitHub);
- Licences: Apache 2.0;
- Īsi: „Kubernetes konsoles interfeiss, kas ļauj stilīgi pārvaldīt klasteri”.

Rīks tika iekļauts tikai bonusa daļā pārskatā, jo piedāvā konsoles GUI. Tomēr autori burtiski ir izspieduši maksimumu no termināļa, piedāvājot ne tikai ērtu interfeisu, bet arī 6 iepriekš definētas dizaina tēmas, attīstītu taustiņu kombināciju sistēmu un komandu aliass. Viņu pamatīgais piegājiens neaprobežojās tikai ar izskatu: k9s iespējas liek patīkami pārsteigt: resursu pārvaldība, klastera stāvokļa attēlošana, resursu izvietošana hierarhiskā izteiksmē ar atkarībām, žurnālu apskate, RBAC atbalsts, iespēju paplašināšana caur spraudņiem… Tas viss bija pa prātam plašajai K8s kopienai: projekta GitHub zvaigžņu skaits praktiski neatpaliek no oficiālā Kubernetes Dashboard!
4. Lietojumprogrammu vadības paneļi
Un noslēgumā pārskatam — atsevišķa mini kategorija. Tajā iekļauti divi tīmekļa interfeisi, kas nav paredzēti kompleksai Kubernetes klasteru pārvaldībai, bet gan tam, kas tajos tiek izvērsts.
Kā zināms, viens no visattīstītākajiem un visplašāk lietotajiem līdzekļiem kompleksu lietojumprogrammu izvietošanai Kubernetes ir Helm. Tās pastāvēšanas laikā ir uzkrāti daudzi pakotni (Helm chart) vienkāršai izvietošanai . Tāpēc ir loģiski, ka ir parādījušies atbilstoši vizuālie līdzekļi, kas ļauj pārvaldīt chartu dzīves ciklu.
4.1. Monocular
- (1300+ GitHub zvaigznes);
- Licences: Apache 2.0;
- Īsumā: «Tīmekļa lietotne Helm chartu meklēšanai un atklāšanai daudzu repozitoriju ietvaros. Kalpo par pamatu Helm hub projektam».

Šī attīstība no Helm autoriem tiek instalēta Kubernetes un darbojas viena klastera ietvaros, veicot uzdevumu. Tomēr šobrīd projekts praktiski attīstās. Tās galvenais mērķis ir atbalstīt Helm Hub pastāvēšanu. Citu vajadzību gadījumā autori iesaka Kubeapps (skatīt tālāk) vai Red Hat Automation Broker (daļa no OpenShift, bet arī jau nav attīstīta).
4.2. Kubeapps
- ;
- ;
- (~2100 GitHub zvaigznes);
- Licence: Apache 2.0
- Īsumā: «Jūsu lietojumprogrammu paneļa risinājums Kubernetes».

Produkta izstrāde no Bitnami, kas arī tiek instalēta klasterī Kubernetes, bet atšķiras no Monocular ar sākotnējo fokusu uz darbu ar privātiem repozitorijiem.
Kubeapps galvenās funkcijas un iezīmes:
- Helm chartu apskate un uzstādīšana no repozitorijiem.
- Pārbaude, atjaunināšana un dzēšana lietojumprogrammām uz bāzes Helm, kas uzstādītas klasterī.
- Atbalsts darbam ar pielāgotām un privātām grafiku glabātuvēm (atbalsta ChartMuseum un JFrog Artifactory).
- Skats un darbs ar ārējiem pakalpojumiem — no Pakalpojumu kataloga un Pakalpojumu brokeriem.
- Uzstādīto lietojumprogrammu publicēšana, izmantojot Pakalpojumu kataloga piesaistes mehānismu.
- Atbalsts autentifikācijai un tiesību sadalījumam, izmantojot RBAC.
Kopsavilkuma tabula
Zemāk ir sniegta apkopota tabula, kurā mēs centāmies apvienot un agregēt galvenās iespējas esošajiem vizuālajiem interfeisiem, lai atvieglotu salīdzināšanu:
(Tiešsaistes versija tabulai .)
Secinājums
Grafiskie interfeisi Kubernetes ir diezgan specifiska un jauna niša. Tomēr tā attīstās diezgan aktīvi: jau var atrast gan pietiekami nobriedušus risinājumus, gan pavisam jaunas, kurām vēl ir kur augt. Tie ir orientēti uz dažādiem pielietojuma variantiem, piedāvājot funkcijas un izskatu gandrīz visām gaumēm. Ceram, ka šis apskats palīdzēs izvēlēties rīku, kas vislabāk atbilst pašreizējām vajadzībām.
P.S.
Paldies par datiem par OpenShift Console salīdzināšanas tabulai!
Lasiet arī mūsu emuāra rakstos:
- «»;
- «»;
- «»;
- «».
Avots: habr.com
