
Süsteemiga tõhusalt töötamiseks on oluline teada käsurea utiliite: Kubernetes puhul on see kubectl. Teisest küljest võivad hästi projekteeritud ja läbimõeldud graafilised liidesed täita suurema osa igapäevastest ülesannetest ja avada täiendavaid võimalusi süsteemide haldamisel.oAastal 2022 avaldasime väikese ülevaate Kubernetes'i veebiliidesest, mis oli seotud veebiliidese kuulutamisega.
Eelmisel aastal avaldasime tõlke lühikese ülevaate . Artikli ja selle tööriista autor on Henning Jacobs ettevõttest Zalando, kes positsioneeris uudse vahendi kui "kubectl veebis". Ta soovis luua tööriista, mis pakub mugavaid võimalusi toe vormingus suhelda (näiteks kiiresti näidata probleemi veebiviidatud lingiga) ja reageerida intsidentidele, otsides probleeme mitmest klastrist korraga. Tema loomine areneb ka praegu (peamiselt autori endi jõududega).
Hooldades mitmeid erineva mõõtmega Kubernetes'i klastreid, oleme samuti huvitatud võimalusest pakkuda klientidele visuaalset haldustööriista. Sobiva liidese valimisel olid meie jaoks võtmeprioriteediks järgmised omadused:
- kasutajate õiguste haldamise tugi (RBAC);
- Kubernetes'i nimede ruumi ja standardsete primitiivide oleku visualiseerimine (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- juurdepääs käsklustetäidete kaudu pod’i sees;
- pod’ide logide vaatamine;
- pod’ide oleku vaatamine (
describe status); - pod’ide eemaldamine.
Teised funktsioonid, nagu tarvitavate ressursside vaatamine (pod'ide/kontrollijate/nimede ruumide lõikes), K8s primitiivide loomine/redigeerimine ei ole meie tööprotsessis aktuaalsed.
Ülevaate alustame klassikalisest Kubernetes Dashboard'ist, mis on meie jaoks standardiks. Kuna maailm ei seisa paigal (seega - Kubernetesel on pidevalt uusi GUI-sid), räägime ka selle hetke alternatiividest, koondades kõik lõpus asuvasse võrreldavasse tabelisse.
NB: Ülevaates me ei kordu juba käsitletud lahendustega, kuid - olukorra täiendamiseks - on asjakohased valikud (K8Dash, Octant, Kubernetes Web View) lisatud lõpptabelisse.
1. Kubernetes Dashboard
- ;
- (8000+ GitHubi tähte);
- Litsents: Apache 2.0;
- Ülevaade: „Üks universaalne veebiliides Kubernetes klastritele. See võimaldab kasutajatel hallata klastris töötavaid rakendusi, lahendada probleemide kõrvaldamist ning hallata klastrit endaga.”

See on universaalne paneel, mida autorid käsitlevad Kubernetes ametlikus dokumentatsioonis (kuigi vaikimisi). See on mõeldud igapäevase hoolduse ja rakenduste tõrkeotsingu vajaduste rahuldamiseks klastris. Meie kasutame seda täieõigusliku kergkaalulise visuaalse abivahendina, mis võimaldab arendajatele vajalikku ja piisavat juurdepääsu klastrile. Selle funktsioonid katab kõik nende vajadused, mis tekivad klastrit kasutades (s oleme demonstreerinud mõningaid funktsioone paneelist). Kuidas seda umbusaldada, tähendab, et see rahuldab kõiki meie eespool loetletud nõudeid.
Kubernetes Dashboardi peamised võimalused:
- Navigeerimine: peamiste K8s objektide vaatamine nimekonnas.
- Administraatoriõigustega paneel kuvab sõlmed, nimeruume ja Persistent Volumes. Sõlmede kohta on saadaval statistika mälu ja protsessorikasutuse, ressursi eraldamise, metrikate, staatuse, sündmuste jms kohta.
- Rakenduste vaatamine, mis on juurutatud nimeruumides nende tüübi järgi (Deployment, StatefulSet jne), nendevahelised seosed (ReplicaSet, Horizontal Pod Autoscaler), üldine ja isikupärastatud statistika ning teave.
- Teenuste ja Ingresside vaatamine, samuti nende seosed pod’den ja endpoint’idega.
- Failiobjektide ja salvestusruumide vaatamine: Persistent Volume ja Persistent Volume Claim.
- ConfigMap ja Salajase vaatamine ja redigeerimine.
- Logide vaatamine.
- Käskude rida konteinerites.
Oluline puudus (kuid mitte meie jaoks) — mitme klastri töö toetust ei ole. Projekt areneb aktiivselt kogukonna poolt ning toetab uusi funktsioone koos uute versioonide ja Kubernetes API spetsifikatsioonide väljalaskmisega: viimase paneeli versioon — 22. mai 2020 — testitud ühilduvuse osas Kubernetes 1.18-ga.
2. Lens
- ;
- ;
- (~4800 GitHubi tähte);
- Litsents: MIT;
- Lühidalt: "Kubernetes IDE".

Projekt on suunatud kui täielik integreeritud arendus keskkond (IDE) Kubernetes'e jaoks. See on optimeeritud töötama mitme klastriga ja paljude sealsetes pod'ides (testitud 25 000 pod'iga).
Lens'i peamised omadused/võimalused:
- Iseseisev rakendus, mis ei vaja midagi klastrisse installimist (täpsemalt, kõigi mõõdikute saamiseks on vajalik Prometheus, kuid selleks saab kasutada olemasolevat installatsiooni). "Põhi" installatsioon toimub isiklikule arvutile, millel töötab Linux, macOS või Windows.
- Mitme klastri haldamine (toetatakse sadu klastreid).
- Klastri oleku visualiseerimine reaalajas.
- Ressursikasutuse graafikud ja ajaloosuunad, mida toetab sisseehitatud Prometheus.
- Juurdepääs konteinerite käsureale ja klastri sõlmedele.
- Täielik tugi Kubernetes RBAC-le.
Praegune väljaanne — 16. juunil 2020. Esialgne versioon loodi ettevõttes Kontena ja tänaseks on kogu intellektuaalne omandus üle antud spetsiaalsesse organisatsiooni , mille «cloud native-geekide ja tehnolooge ühendavaks», kes vastutavad «Open Source-tarkvara ja Kontena toodete säilitamise ning juurdepääsetavuse» eest.
Lens — GitHubi teisel kohal olev projekt Kubernetes GUI kategoorias, „kaotades” vaid Kubernetes Dashboard’ile. Kõik muud mitte CLI* kategoorias olevad Open Source-lahendused jäävad populaarsuses oluliselt alla.
* Vaata K9s kohta ülevaate boonusosas.
3. Kubernetic
- ;
- ;
- (200+ GitHubi tähtedega);
- Litsents: omandiõigusega;
- Kokkuvõttes: „Klusterihaldus, mis on lihtne.”

See on omandiõigusega rakendus, mis installitakse isiklikule arvutile (toetatakse Linuxit, macOS-i ja Windowsit). Selle autorid lubavad täielikku asendust käsurea utiliidile, ning samal ajal väidavad nad, et see suurendab töö kiirus kümme korda.
Üks tööriista huvitavamaid omadusi on sisseehitatud toetus Helm-chartidele, kuid üheks puuduseks on rakenduste jõudluse mõõtmete puudumine.
Kubernetici peamised omadused:
- Klastri staatuse mugav kuvamine. Üks ekraan, et vaadata kõiki klastriga seotud objekte ja nende sõltuvusi; punane/roheline valmisoleku olek kõigile objektidele; klastrite oleku vaatamise režiim, mis uuendab staatust reaalajas.
- Kiirtegevuse nupud rakenduste kustutamiseks ja suurendamiseks.
- Mitme klastri töö toetus.
- Lihtne tööd teha nimede ruumide haldamisega.
- Helm-chartide ja Helm-repositooriumide tugi (sealhulgas eraviisilised). Chartide paigaldamine ja haldamine veebiliideses.
Toote hetke hind — ühekordne tasu 30 eurot selle kasutamise eest ühe inimese poolt igasuguste nimede ruumide ja klastrite jaoks.
4. Kubevious
- ;
- ;
- (~500 GitHubi tähte);
- Litsents: Apache 2.0
- Kokkuvõte: „Kubevious muudab Kubernetes klastrid, rakenduste konfiguratsiooni ja nende oleku vaatamise turvaliseks ja arusaadavaks.”

Projekti idee on luua tööriist, mis on mõeldud rakenduste konfiguratsioonide analüüsimiseks ja tõrkeotsinguks, mis on klastris juurutatud. Autorid keskendusid esmalt nende funktsioonide rakendamisele, jättes üldisemad asjad hiljemaks.
Kubevious peamised omadused ja funktsioonid:
- Rakendustele suunatud klastrite visualiseerimine: omavahel seotud objektid liidestes grupeeritakse ja paigutatakse hierarhiasse.
- Selge sõltuvuste kuvamine konfiguratsioonides ja nende muutuste kaskaadsetest tagajärgedest.
- Klastri konfigureerimise vigade kuvamine: vale siltide kasutamine, unustatud sadamad jne. (Muide, kui see funktsioon teile huvi pakub, pöörake tähelepanu , millest me .)
- Lisaks eeltoodud punktile on saadaval potentsiaalselt ohtlike konteinerite tuvastamine, st liiga suurte õiguste (atribuutide) olemasolu
hostPID,hostNetwork,hostIPC, mengeldaminedocker.sockja muud sarnased). - Täpne otsingusüsteem klastris (mitte ainult objektide nimede, vaid ka nende omaduste järgi).
- Tööriistad ressursside planeerimiseks ja optimeerimiseks.
- Sisseehitatud «ajamasin» (võimalus näha objekti konfiguratsioonide varasemaid muudatusi).
- RBAC haldamine kokku koondatud omavahelise tabeli abil, mis sisaldab Roles, RoleBindings, ServiceAccounts.
- Töötleb ainult ühte klastrit.
Projektil on väga lühike ajalugu (esimene väljaanne toimus 11. veebruaril 2020) ja näib, et arengus on alanud stabiliseerumise või aeglustumise periood. Kui varasemad versioonid ilmusid tihti, siis viimane väljaanne ( 15. aprillist 2020) on arendustempust maha jäänud. Tõenäoliselt on see seotud väikese panustajate arvu tõttu: repositooriumi ajaloos on neid vaid 4, samas kui kogu päris töö toimub ühe inimese poolt.
5. Kubewise
- ;
- Litsents: eriline (muutub avatud lähtekoodiga);
- Kokkuvõttes: "Lihtne mitme platvormi klient Kubernetes'i jaoks."

Uus toode ettevõttelt VMware, algselt loodud sisemise hackathoni raames (juunis 2019). Paigaldatakse isiklikule arvutile, töötab (toetatakse Linuxit, macOS-i ja Windowsit) ja vajab kubectl versiooni vähemalt v1.14.0.
Kubewise peamised funktsioonid:
- Kasutajaliideses suhtlemine kõige sagedamini kasutatavate Kubernetes'i elementidega: sõlmed, nimed ruumid jne.
- Mitme kubeconfig faili tugi erinevatele klastritele.
- Terminal, kus on võimalik seada keskkonnamuutujat.
KUBECONFIG. - Kohandatud kubeconfig failide genereerimine antud nimede ruumi jaoks.
- Täiendavad turvafunktsioonid (RBAC, paroolid, teenusekontod).
Praegu on projektil ainult üks väljaanne — versioon 26. novembrist 2019. Autorid kavatsesid selle kohe välja anda avatud lähtekoodiga, kuid siseprobleemide tõttu (mis ei olnud seotud tehniliste küsimustega) ei suutnud nad seda teha. 2020. aasta mai seisuga töötavad autorid järgmise väljaande kallal ja peavad samal ajal käivitama koodi avamise protsessi.
6. OpenShift Console
- ;
- (~150 tähti GitHubis);
- Litsents: Apache 2.0;
- Lühidalt: „Kasutajaliides OpenShift'i klastrite jaoks.“

Kuigi see veebipõhine liides on osa OpenShift'i distributsioonist (seal installitakse see ), autorid võimaluse selle installimiseks/kasutamiseks ka tavalistes (vanilla) Kubernetes'i paigaldustes.
OpenShift Console on juba pikka aega arenenud, nii et see on omandanud palju funktsioone. Mainime peamisi neist:
- Jagatud lähenemine liidesele — kaks „perspektiivi“, mis on Console'i võimalustes saadaval: administraatorite ja arendajate jaoks. Režiim Arendaja perspektiiv grupib objekti paremini arendajatele mõistetavas vormis (rakenduste kaupa) ja suunab kasutajaliidese lahendama tavalisi ülesandeid, nagu rakenduste juurutamine, kogu/deploy oleku jälgimine ja isegi koodi redigeerimine läbi Eclipse Che.
- Töökoormuste, võrgu, salvestamise ja pääs праваde haldamine.
- Loogiline jagunemine töökoormuste jaoks projektideks ja rakendusteks. Üks viimaseid väljaandeid - v4.3 - erakordne Projekti juhtpaneel, mis kuvab tuttavaid andmeid (juurutamiste ja pod'ide arvu ja staatuseid, ressursikasutust ja muid mõõdikuid) projektide lõikes.
- Reaalajas uuendatav klasteri oleku ja selles toimunud muudatuste (sündmuste) kuvamine; logide vaatamine.
- Jälgimisandmete vaatamine, mis põhineb Prometheusel, Alertmanageril ja Grafanal.
- Operaatoreid haldamine, mis on esitatud .
- Halda ehitusi, mida teostatakse Dockeris (näidatud repositooriumist koos Dockerfile'iga), või vabalt valitud väliste utiliitide kaudu.
NB: Me ei lisanud võrdlusesse teisi Kubernetesi jaotisi (näiteks palju vähem tuntud Kuna graafiline liides võib olla väga arenenud, on see tavaliselt osa suurema süsteemi integreeritud virnast. Kui aga arvate, et teile jääb puudu mõnest lahendusest, mis täieõiguslikult toimib ka vanilla K8s installatsioonis, andke meile sellest kommentaarides teada.
Boonus
1. Portainer Kubernetesel beetaversioonis
- ;
- (~100 GitHubi tähte);
- Litsents: Zlib(?) (selline on ema projektil).
Portaineri meeskonna projekt, kes on välja töötanud samanimelise populaarse liidese Dockeriga töötamiseks. Kuna projekt on arenduse algstaadiumis (esimene ja ainus beetaversioon 16. aprillil 2020), ei hakanud me selle funktsioone hindama. Siiski võib see paljusid huvitada: kui see kehtib teie kohta, siis jälgige arengu käiku.
2. IcePanel
- ;
- Litsents: omandiõigusega;
- Lühidalt: „Kubernetesi visuaalne redaktor“.

See noor töölauarakendus on mõeldud Kubernetes'i ressurside reaalajas visualiseerimiseks ja nende haldamiseks lihtsa drag & drop stiilis liidese kaudu. Toetatakse hetkel objekte nagu Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap ja Secret. Peagi lubatakse lisada ka Helm'i toe. Peamised puudused on koodi suletus (oodatakse selle ) ja Linuxi toe puudumine (praegu on saadaval ainult Windowsi ja macOSi versioonid, kuigi see on tõenäoliselt lihtsalt ajaküsimus).
3. k9s
- ;
- ;
- (~7700 GitHubi tähte);
- Litsents: Apache 2.0;
- Lühidalt: «Kubernetes kohandatud terminali liides, mis võimaldab klastrit stiilselt hallata».

Tarkvara kajastati ülevaate boonuse osana, kuna see pakub konsooli GUI-d. Kuid autorid pigistasid terminalist maksimumi, pakkudes mitte ainult mugavat liidest, vaid ka 6 eeldefineeritud kujundust ja arenenud klaviatuurikombinatsioonide süsteemi, ning käskude alias'e. Nende põhjalik lähenemine ei piirdunud välimusega: k9s-i võimalused on tõeliselt muljetavaldavad: ressursside haldamine, klastriseisundi kuvamine, ressursside hierarhiline esitamine sõltuvustega, logide vaatamine, RBAC-i toe pakkumine, laiendamine pluginate kaudu… Kõik see meeldis laiale K8si kogukonnale: projekti GitHubi tähtede arv ei jää praktiselt alla ametlikule Kubernetes Dashboardile!
4. Rakenduste juhtpaneelid
Ja lõpuks ülevaates — eraldi mini-kategooria. Siia kuuluvad kaks veebiliidest, mis ei ole mõeldud Kubernetes-klastrite kompleksseks haldamiseks, vaid selleks, mis neis käivitatakse.
Nagu teada, on üks küpsimaid ja levinumaid vahendeid komplekssete rakenduste juurutamiseks Kuberneteses Helm. Selle olemasolu jooksul on kogunenud palju pakette (Helm charts) lihtsaks juurutamiseks Seetõttu on üsna loogiline, et on tekkinud vastavad visuaalsed tööriistad, mis võimaldavad hallata chartide elutsüklit.
4.1. Monocular
- (1300+ GitHubi tähte);
- Litsents: Apache 2.0;
- Lühidalt: «Veebirakendus Helm-charts'ide otsimiseks ja avastamiseks paljude hoidlate seas. Teenib aluseks projektile Helm hub.»

See Helm autorite arendus installitakse Kubernetesesse ja töötab ühe klastris, täites määratud ülesande. Kuid hetkel projekt peaaegu ei arene. Selle peamine eesmärk on toetada Helm Hubi olemasolu. Muude vajaduste jaoks soovitavad autorid Kubeapps'i (vt edasi) või Red Hat Automation Broker'i (osa OpenShiftist, kuid samuti enam ei arene).
4.2. Kubeapps
- ;
- ;
- (~2100 GitHubi tähte);
- Litsents: Apache 2.0
- Lühidalt: „Teie rakenduste paneel Kubernetes jaoks.“

Bitnami toode, mis samuti installitakse Kubernetes klastrisse, kuid erineb Monocularist algselt fokusseerituna privaatsete registerite kasutamisele.
Kubeapps peamised omadused ja funktsioonid:
- Helmi chart'ide vaatamine ja installimine registritest.
- Helm-põhiste rakenduste kontrollimine, värskendamine ja eemaldamine, mis on installitud klastrisse.
- Toetab kohandatud ja privaatsete chart'ide registerite kasutamist (toetab ChartMuseum'i ja JFrog Artifactory't).
- Väliste teenuste vaatamine ja kasutamine – Service Catalogi ja Service Brokers'i kaudu.
- Installitud rakenduste avaldamine Service Catalog Bindings'i mehhanismi abil.
- Toetab autentimist ja õiguste jagamist RBAC abil.
Kokkuvõtte tabel
Allpool on kokkuvõtlik tabel, kus oleme püüdnud koondada ja koguda peamised võimalused olemasolevate visuaalsete liideste lihtsustamiseks:
(Tabeli veebiversioon .)
Kokkuvõte
Kubernetes'e yönelik grafik arayüzler oldukça özgün ve genç bir niş. Ancak, oldukça hızlı bir şekilde gelişiyorlar: artık olgun çözümler kadar, hala büyümeye ihtiyacı olan yeni çözümler de mevcut. Farklı kullanım senaryolarına odaklanarak, neredeyse her zevke hitap eden işlevler ve tasarım sunuyorlar. Bu incelemenin, mevcut ihtiyaçlara en iyi şekilde yanıt veren bir araç bulmanıza yardımcı olacağını umuyoruz.
P.S.
Teşekkür ederiz karşılaştırma tablosu için OpenShift Console verileri için!
Lugege ka meie blogist:
- «»;
- «»;
- «»;
- «».
Allikas: habr.com
