Grafisko interfeisu pārskats Kubernetes.

Grafisko interfeisu pārskats Kubernetes.

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 Kubernetes, kas bija saistīts ar tīmekļa interfeisa paziņojumu . Šī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). Kubernetes Web ViewApkalpojot 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ā. iepriekšējā rakstā1. Kubernetes Dashboard

Dokumentācijas lapa

  • (8000+ zvaigznes GitHub);;
  • repozitorija 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.”

Grafisko interfeisu pārskats Kubernetes.

Šī ir vispārējā saskarne, ko Kubernetes autori apsver oficiālajā dokumentācijā (lai gan nav izvēršama 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ā šajā rakstā 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 — v2.0.1 no 2020. gada 22. maija — ir pārbaudīta saderība ar Kubernetes 1.18.

2. Lens

Grafisko interfeisu pārskats Kubernetes.

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 — 3.5.0 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 Lakend Labs, 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

Grafisko interfeisu pārskats Kubernetes.

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

  • Vietne;
  • Prezentācija;
  • repozitorija (~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».

Grafisko interfeisu pārskats Kubernetes.

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 Polaris, par kuru mēs jau rakstījām.)
  • 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ēšana docker.sock un 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 (v0.5 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

  • Projekta lapa;
  • Licence: īpašumtiesību (pārsniegs Open Source);
  • Īsumā: „Vienkārša multiplatformu klienta programma Kubernetes”.

Grafisko interfeisu pārskats 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 Electron (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 — 1.1.0 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

Grafisko interfeisu pārskats Kubernetes.

Neskatoties uz to, ka šī tīmekļa saskarne ir daļa no OpenShift izplatījuma (tur tā tiek uzstādīta, izmantojot īpašu operatoru), autori paredzēja 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 — parādījās ī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 OperatorHub.
  • Savākumu pārvaldība, kas tiek veikta caur Docker (no norādītā repozitorija ar Dockerfile), S2I 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 Kubesphere): 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

  • Vietne;
  • repozitorija (~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 iznāca 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

  • Vietne;
  • Licences veids: patentēta;
  • Īsi: „Kubernetes vizuālais redaktors”.

Grafisko interfeisu pārskats Kubernetes.

Šī 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ā atvēršana „kādā veidā”) 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

  • Vietne;
  • Demonstrācija;
  • repozitorija (~7700 zvaigznes GitHub);
  • Licences: Apache 2.0;
  • Īsi: „Kubernetes konsoles interfeiss, kas ļauj stilīgi pārvaldīt klasteri”.

Grafisko interfeisu pārskats Kubernetes.

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 daudzām populārām lietojumprogrammām. 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

  • repozitorija (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».

Grafisko interfeisu pārskats Kubernetes.

Šī 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

Grafisko interfeisu pārskats 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:

Grafisko interfeisu pārskats Kubernetes.
(Tiešsaistes versija tabulai pieejama Google Docs.)

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 kvaps par datiem par OpenShift Console salīdzināšanas tabulai!

Lasiet arī mūsu emuāra rakstos:

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster