
Pilnvērtīgam darbam ar sistēmu ir svarīgas zināšanas par komandrindas utilītprogrammām: Kubernetes gadījumā tas ir kubectl. No otras puses, labi izstrādātas, pārdomātas grafiskās saskarnes var darbotiesоlielāko daļu ierasto uzdevumu un paver papildu iespējas sistēmu darbībai.
Pagājušajā gadā mēs publicējām tulkojumu Kubernetes, kas sakrīt ar paziņojumu par tīmekļa saskarni . Šī raksta autors un pati utilīta Henning Jacobs no Zalando tikko pozicionēja jauno produktu kā “kubectl for the web”. Viņš vēlējās izveidot rīku ar lietotājam draudzīgām iespējām mijiedarbībai tehniskā atbalsta formātā (piemēram, ātri parādīt problēmu ar tīmekļa saiti) un reaģēt uz incidentiem, vienlaikus meklējot problēmas daudzos klasteros. Viņa pēcnācēji šobrīd attīstās (galvenokārt ar paša autora pūlēm).
Tā kā apkalpojam daudzus dažāda izmēra Kubernetes klasterus, mūs interesē arī iespēja klientiem nodrošināt vizuālu darba rīku. Izvēloties piemērotu saskarni, mums bija svarīgas šādas funkcijas:
- atbalsts lietotāju tiesību diferencēšanai (RBAC);
- nosaukumtelpas stāvokļa vizualizācija un standarta Kubernetes primitīvi (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- piekļūt komandrindai podā;
- pākšu žurnālu apskate;
- apskatīt pākstu statusu (
describe status); - pākstis noņemšana.
Citas funkcijas, piemēram, patērēto resursu skatīšana (pod/kontrolleru/nosaukumvietu kontekstā), K8s primitīvu izveide/rediģēšana, mūsu darbplūsmā nav svarīgas.
Mēs sāksim pārskatīšanu ar klasisko Kubernetes informācijas paneli, kas ir mūsu standarts. Tā kā pasaule nestāv uz vietas (tas nozīmē, ka Kubernetes ir arvien vairāk jaunu GUI), tad runāsim arī par tā aktuālajām alternatīvām, visu apkopojot salīdzinošā tabulā raksta beigās.
NB: Pārskatā mēs neatkārtosimies ar tiem risinājumiem, kas jau ir izskatīti , tomēr, pilnības labad, attiecīgās opcijas no tā (K8Dash, Octant, Kubernetes Web View) ir iekļautas gala tabulā.
1. Kubernetes informācijas panelis
- ;
- (8000+ GitHub zvaigznes);
- Licence: Apache 2.0;
- Īsumā: “Universāls tīmekļa interfeiss Kubernetes klasteriem. Tas ļauj lietotājiem pārvaldīt un novērst lietojumprogrammas, kas darbojas klasterī, kā arī pārvaldīt pašu klasteru.

Šis ir vispārējas nozīmes panelis, ko oficiālajā dokumentācijā ir aplūkojuši Kubernetes autori (bet noklusējuma). Tas ir paredzēts ikdienas lietošanai un lietojumprogrammu atkļūdošanai klasterī. Mājās mēs to izmantojam kā pilnvērtīgu vieglu vizuālo rīku, kas ļauj izstrādātājiem nodrošināt nepieciešamo un pietiekamu piekļuvi klasterim. Tās iespējas aptver visas viņu vajadzības, kas rodas klastera lietošanas procesā (in mēs parādījām dažas paneļa funkcijas). Kā jūs varētu nojaust, tas nozīmē, ka tas atbilst visām iepriekš minētajām prasībām.
Starp galvenajām Kubernetes informācijas paneļa funkcijām:
- Navigācija: skatiet galvenos K8 objektus nosaukumvietu kontekstā.
- Ja jums ir administratora tiesības, panelī tiek rādīti mezgli, nosaukumvietas un pastāvīgie sējumi. Par mezgliem ir pieejama statistika par atmiņas izmantošanu, procesoru, resursu sadalījumu, metriku, statusu, notikumiem utt.
- Skatiet nosaukumvietā izvietotās lietojumprogrammas pēc to veida (Izvietošana, StatefulSet utt.), attiecībām starp tām (ReplicaSet, Horizontal Pod Autoscaler), vispārīgu un personalizētu statistiku un informāciju.
- Skatiet pakalpojumus un Ingresses, kā arī to attiecības ar podiem un galapunktiem.
- Skatīt failu objektus un krātuves: pastāvīgs apjoms un pastāvīga apjoma pretenzija.
- Skatīt un rediģēt ConfigMap un Secret.
- Skatīt žurnālus.
- Komandrindas piekļuve konteineros.
Būtisks trūkums (tomēr ne mums) ir tas, ka nav atbalsta vairāku klasteru darbam. Projektu aktīvi izstrādā sabiedrība, un tajā tiek uzturētas atbilstošās funkcijas, izlaižot jaunas Kubernetes API versijas un specifikācijas: paneļa jaunākā versija ir 22. gada 2020. maijs — pārbaudīta saderība ar Kubernetes 1.18.
2. objektīvs
- ;
- ;
- (~4800 GitHub zvaigznes);
- Licence: MIT;
- Īsumā: "Kubernetes IDE".

Projekts ir pozicionēts kā pilnīga Kubernetes integrētā izstrādes vide (IDE). Turklāt tas ir optimizēts darbam ar daudzām kopām un lielu skaitu tajos strādājošu podiņu (pārbaudīts uz 25 XNUMX podiem).
Galvenās objektīva funkcijas/iespējas:
- Atsevišķa lietojumprogramma, kurai nav nepieciešama instalēšana klasterī (precīzāk, Prometheus ir nepieciešams, lai iegūtu visus rādītājus, bet šim nolūkam var izmantot esošu instalāciju). "Galvenā" instalēšana tiek veikta personālajā datorā, kurā darbojas Linux, macOS vai Windows.
- Vairāku klasteru pārvaldība (atbalstīti simtiem klasteru).
- Klastera stāvokļa vizualizācija reāllaikā.
- Resursu izmantošanas diagrammas un tendences ar vēsturi, pamatojoties uz iebūvēto Prometheus.
- Piekļuve konteineru un klasteru mezglu komandrindai.
- Pilns Kubernetes RBAC atbalsts.
Pašreizējais izlaidums - datēts ar 16. gada 2020. jūniju. Sākotnēji to izveidoja Kontena, taču šodien viss intelektuālais īpašums ir nodots īpašai organizācijai , kas tiek dēvēta par "mākonis vietējo dīķu un tehnologu savienību", kas ir atbildīga par "Kontenas atvērtā pirmkoda programmatūras un produktu saglabāšanu un pieejamību".
Lens ir otrs populārākais GitHub projekts no Kubernetes GUI kategorijas, “zaudējot” tikai pašu Kubernets informācijas paneli. Visi pārējie atvērtā pirmkoda risinājumi, kas nav no CLI* kategorijas, ir ievērojami zemāki popularitātes ziņā.
* Skatiet informāciju par K9 apskata bonusa daļā.
3. Kubernētika
- ;
- ;
- (200+ GitHub zvaigznes);
- Licence: patentēta;
- Īsumā: "Klasteru pārvaldība ir vienkārša."

Šī ir patentēta lietojumprogramma, kas tiek instalēta personālajā datorā (atbalstīta Linux, macOS, Windows). Tās veidotāji sola pilnīgu komandrindas utilītas aizstāšanu, novēršot nepieciešamību atcerēties komandas un pat desmitkārtīgi palielinot darbības ātrumu.
Viena no interesantajām rīka funkcijām ir iebūvētais atbalsts Helm diagrammām, un viens no trūkumiem ir lietojumprogrammu veiktspējas metrikas trūkums.
Galvenās Kubernetic iezīmes:
- Ērta klastera statusa parādīšana. Viens ekrāns, lai skatītu visus saistītos klastera objektus un to atkarības; sarkans/zaļš gatavības statuss visiem objektiem; klastera statusa skata režīms ar reāllaika statusa atjauninājumiem.
- Ātrās darbības pogas lietojumprogrammas dzēšanai un mērogošanai.
- Atbalsts vairāku klasteru darbībai.
- Vienkāršs darbs ar nosaukumu telpām.
- Atbalsts Helm diagrammām un Helm krātuvēm (tostarp privātajām). Diagrammu instalēšana un pārvaldība tīmekļa saskarnē.
Produkta pašreizējās izmaksas ir vienreizējs maksājums 30 eiro apmērā par tā izmantošanu vienai personai par jebkuru nosaukumu vietu un klasteru skaitu.
4. Kubevious
- ;
- ;
- (~500 GitHub zvaigznes);
- Licence: Apache 2.0
- Īsumā: "Kubevious padara Kubernetes klasterus, lietojumprogrammu konfigurāciju un statusa skatīšanu drošus un viegli saprotamus."

Projekta ideja ir izveidot rīku, kas paredzēts klasterī izvietoto lietojumprogrammu konfigurāciju analīzei un atkļūdošanai. Autori galvenokārt koncentrējās uz šo funkciju ieviešanu, atstājot vispārīgākas lietas vēlākam laikam.
Kubevious galvenās iezīmes un funkcijas:
- Klasteru vizualizācija uz lietojumprogrammu orientētā veidā: saistītie objekti saskarnē tiek grupēti, sakārtoti hierarhijā.
- Konfigurāciju atkarību un to izmaiņu kaskādes seku vizuāls attēlojums.
- Klasteru konfigurācijas kļūdu parādīšana: etiķešu nepareiza izmantošana, nokavēti porti utt. (Starp citu, ja jūs interesē šī funkcija, pievērsiet uzmanību par ko mēs .)
- Papildus iepriekšējam punktam ir pieejama potenciāli bīstamu konteineru noteikšana, t.i. kam ir pārāk daudz privilēģiju (atribūtu
hostPID,hostNetwork,hostIPC, mountdocker.sockutt). - Izvērstā klastera meklēšanas sistēma (ne tikai pēc objektu nosaukumiem, bet arī pēc to īpašībām).
- Rīki jaudas plānošanai un resursu optimizācijai.
- Iebūvēta "laika mašīna" (iespēja redzēt iepriekšējās izmaiņas objektu konfigurācijā).
- RBAC pārvaldība ar savstarpēji saistītu lomu, lomu saistīšanas un pakalpojumu kontu tabulu.
- Darbojas tikai ar vienu klasteru.
Projektam ir ļoti īsa vēsture (pirmā izlaišana notika 11. gada 2020. februārī), un šķiet, ka ir bijis vai nu stabilizācijas, vai attīstības palēnināšanās periods. Ja iepriekšējās versijas tika izlaistas bieži, tad jaunākā versija ( 15. gada 2020. aprīlis) ir atpalikusi no sākotnējā attīstības tempa. Iespējams, tas ir saistīts ar nelielo līdzstrādnieku skaitu: repozitorija vēsturē tādi ir tikai 4, un visu faktisko darbu veic viens cilvēks.
5. Kubewise
- ;
- Licence: patentēta (kļūs par atvērtā pirmkoda);
- Īsumā: "Vienkāršs Kubernetes vairāku platformu klients."

Jauns produkts no VMware, kas sākotnēji tika izveidots kā daļa no iekšējā hakatona (2019. gada jūnijā). Uzstādīts personālajā datorā, darbojas, pamatojoties uz (atbalstīts) Linux, macOS и Windows) un prasa kubectl versiju, kas nav vecāka par v1.14.0.
Galvenās Kubewise funkcijas:
- Interfeisa mijiedarbība ar visbiežāk izmantotajām Kubernetes entītijām: mezgliem, nosaukumu telpām utt.
- Atbalsts vairākiem kubeconfig failiem dažādām kopām.
- Terminālis ar iespēju iestatīt vides mainīgo
KUBECONFIG. - Ģenerējiet pielāgotus kubeconfig failus norādītajai nosaukumvietai.
- Uzlabotas drošības funkcijas (RBAC, paroles, pakalpojumu konti).
Pagaidām projektam ir tikai viena versija – versija datēts ar 26. gada 2019. novembri. Turklāt autori plānoja to nekavējoties izlaist kā atvērtā pirmkoda versiju, taču iekšēju problēmu dēļ (kas nav saistītas ar tehniskiem jautājumiem) viņi to nevarēja izdarīt. Sākot ar 2020. gada maiju, autori strādā pie nākamā laidiena, un tajā pašā laikā ir jāuzsāk koda atvēršanas process.
6. OpenShift konsole
- ;
- (~150 GitHub zvaigznes);
- Licence: Apache 2.0;
- Īsumā: "UI for OpenShift Clusters".

Neskatoties uz to, ka šī tīmekļa saskarne ir daļa no OpenShift izplatīšanas (tas tiek instalēts tur, izmantojot ), autori iespēja to instalēt / izmantot parastās (vaniļas) Kubernetes instalācijās.
OpenShift konsole ir izstrādāta jau ilgu laiku, tāpēc tajā ir iekļautas daudzas funkcijas. Mēs minēsim galvenos:
- Koplietotā interfeisa pieeja - divas Konsolē pieejamo iespēju "perspektīvas": administratoriem un izstrādātājiem. Režīms izstrādātāja perspektīva grupē objektus izstrādātājiem saprotamākā formā (pēc lietojumprogrammām) un pievērš saskarni tādu tipisku uzdevumu risināšanai kā lietojumprogrammu izvietošana, būvēšanas/izvietošanas statusa izsekošana un pat koda rediģēšana, izmantojot Eclipse Che.
- Darba slodzi, tīklu, krātuves, piekļuves tiesību pārvaldība.
- Loģiska darba slodzes sadalīšana projektos un lietojumprogrammās. Vienā no jaunākajiem laidieniem — v4.3 — īpašs Projekta informācijas panelis, kurā tiek parādīti parastie dati (izvietojumu skaits un statusi, podi utt.; resursu patēriņš un citi rādītāji) projekta daļā.
- Atjaunināts reāllaika klastera stāvokļa attēlojums, tajā notikušās izmaiņas (notikumi); žurnālu apskate.
- Skatiet monitoringa datus, pamatojoties uz Prometheus, Alertmanager un Grafana.
- Pārstāvēto operatoru vadība .
- Pārvaldīt būvējumus, kas darbojas caur Docker (no noteiktas krātuves ar Dockerfile), vai patvaļīgi ārēji komunālie pakalpojumi.
NB: Mēs salīdzinājumam nepievienojām citus Kubernetes sadalījumi (piemēram, daudz mazāk zināmie ): neskatoties uz to, ka GUI tajās var būt ļoti uzlabots, tas parasti ir daļa no lielas sistēmas integrētās kaudzes. Tomēr, ja uzskatāt, ka vaniļas K8s instalācijā nav pietiekami daudz risinājumu, kas pilnībā funkcionētu, paziņojiet mums komentāros.
prēmija
1. Portainer par Kubernetes beta versijā
- ;
- (~100 GitHub zvaigznes);
- Licence: Zlib(?) (tas pats vecāku projektam).
Portainer komandas projekts, kas izstrādāja populāru tāda paša nosaukuma saskarni darbam ar Docker. Tā kā projekts ir agrīnā izstrādes stadijā (pirmā un vienīgā beta versija 16. gada 2020. aprīlis), mēs nenovērtējām tās īpašības. Tomēr tas var interesēt daudzus: ja tas attiecas uz jums, sekojiet attīstībai.
2. IcePanel
- ;
- Licence: patentēta;
- Īsumā: "Visual Kubernetes Editor".

Šīs jaunās darbvirsmas lietojumprogrammas mērķis ir vizualizēt un pārvaldīt Kubernetes resursus reāllaikā, izmantojot vienkāršu vilkšanas un nomešanas saskarni. Pašlaik atbalstītie objekti ir Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap un Secret. Drīz viņi sola pievienot atbalstu Helmam. Galvenie trūkumi ir koda tuvums (tas ir paredzams ) un atbalsta trūkums Linux (pagaidām ir pieejamas tikai versijas) Windows и macOS, lai gan tas, visticamāk, ir tikai laika jautājums).
3.k9s
- ;
- ;
- (~7700 GitHub zvaigznes);
- Licence: Apache 2.0;
- Īsumā: "Kubernetes konsoles interfeiss, kas ļauj stilīgi pārvaldīt savu kopu."

Lietderība bija tikai pārskata papildu daļā, jo tā piedāvā konsoles GUI. Tomēr autori burtiski izspieda no termināļa maksimumu, piedāvājot ne tikai lietotājam draudzīgu interfeisu, bet arī 6 iepriekš definētas tēmas, kā arī progresīvu īsinājumtaustiņu un komandu aizstājvārdu sistēmu. Viņu rūpīgā pieeja neaprobežojās tikai ar izskatu: k9s funkcijas ir patīkami iespaidīgas: resursu pārvaldība, klastera stāvokļa parādīšana, resursu parādīšana hierarhiskā attēlojumā ar atkarībām, žurnālu skatīšana, RBAC atbalsts, iespēju paplašināšana, izmantojot spraudņus ... Tas viss piesaistīja plašajai K8s kopienai: Projekta GitHub zvaigžņu skaits ir gandrīz tikpat labs kā oficiālais Kubernetes informācijas panelis!
4. Lietojumprogrammu vadības paneļi
Un pārskata beigās - atsevišķa mini kategorija. Tajā bija iekļautas divas tīmekļa saskarnes, kas paredzētas nevis visaptverošai Kubernetes klasteru pārvaldībai, bet gan tajos izvietotā satura pārvaldībai.
Kā jūs zināt, viens no visizplatītākajiem un izplatītākajiem rīkiem sarežģītu lietojumprogrammu izvietošanai Kubernetes ir Helm. Tās pastāvēšanas laikā ir uzkrājušās daudzas pakotnes (stūres diagrammas), lai to varētu viegli izvietot . Tāpēc atbilstošu vizuālo rīku parādīšanās, kas ļauj pārvaldīt diagrammu dzīves ciklu, ir diezgan loģiska.
4.1. Monokulārs
- (1300+ GitHub zvaigznes);
- Licence: Apache 2.0;
- Īsumā: “Tīmekļa lietojumprogramma Helm diagrammu meklēšanai un atklāšanai vairākās krātuvēs. Kalpo par Helm hub projekta pamatu."

Šī Helm autoru izstrādātā izstrāde ir instalēta Kubernetes un darbojas tajā pašā klasterī, veicot uzdevumu. Taču šobrīd projekts īpaši neattīstās. Tās galvenais mērķis ir atbalstīt Helm Hub pastāvēšanu. Citām vajadzībām autori iesaka Kubeapps (skatīt zemāk) vai Red Hat Automation Broker (daļa no OpenShift, bet arī vairs netiek izstrādāta).
4.2. Kubeapps
- ;
- ;
- (~2100 GitHub zvaigznes);
- Licence: Apache 2.0
- Īsumā: "Jūsu Kubernetes lietojumprogrammas informācijas panelis."

Produkts no Bitnami, kas arī ir instalēts Kubernetes klasterī, taču atšķiras no Monocular ar savu sākotnējo koncentrēšanos uz darbu ar privātām krātuvēm.
Kubeapps galvenās funkcijas un funkcijas:
- Skatiet un instalējiet Helm diagrammas no krātuvēm.
- Pārbaudiet, atjauniniet un noņemiet klasterī instalētās lietojumprogrammas, kuru pamatā ir Helm.
- Atbalsts pielāgotām un privātām diagrammu krātuvēm (atbalsta ChartMuseum un JFrog Artifactory).
- Ārējo pakalpojumu apskate un darbs ar tiem - no pakalpojumu kataloga un pakalpojumu brokeriem.
- Instalēto lietojumprogrammu publicēšana, izmantojot pakalpojumu kataloga saistīšanas mehānismu.
- Atbalsts autentifikācijai un tiesību nodalīšanai, izmantojot RBAC.
Kopsavilkuma tabula
Tālāk ir sniegta kopsavilkuma tabula, kurā mēs esam mēģinājuši apkopot un apkopot esošās vizuālās saskarnes galvenās iezīmes, lai atvieglotu salīdzināšanu:
(Tabulas tiešsaistes versija .)
Secinājums
Kubernetes GUI ir diezgan specifiska un jauna niša. Taču tā attīstās ļoti aktīvi: jau tagad ir iespējams atrast gan diezgan nobriedušus risinājumus, gan pavisam jaunus, kuriem vēl ir kur augt. Tie ir paredzēti dažādiem lietojumiem, piedāvājot funkcijas un izskatu, kas atbilst gandrīz katrai gaumei. Mēs ceram, ka šis pārskats palīdzēs jums izvēlēties rīku, kas vislabāk atbilst jūsu pašreizējām vajadzībām.
PS
Paldies par datiem OpenShift konsolē salīdzināšanas tabulai!
Lasi arī mūsu emuārā:
- «";
- «";
- «";
- «'.
Avots: www.habr.com
