Pregled GUI-ja za Kubernetes

Pregled GUI-ja za Kubernetes

Za potpuni rad sa sustavom važno je poznavanje uslužnih programa naredbenog retka: u slučaju Kubernetesa, to je kubectl. S druge strane, dobro dizajnirana, promišljena grafička sučelja mogu raditiоvećinu uobičajenih poslova i otvaraju dodatne mogućnosti za rad sustava.

Prošle godine objavili smo prijevod mali pregled web sučelja za Kubernetes, vremenski usklađen s najavom web sučelja Kubernetes WebView. Autor tog članka i samog uslužnog programa, Henning Jacobs iz Zalanda, upravo je novi proizvod pozicionirao kao “kubectl za web”. Želio je stvoriti alat s korisničkim mogućnostima za interakciju u formatu tehničke podrške (na primjer, brzo prikazivanje problema s web vezom) i za reagiranje na incidente, traženje problema u više klastera u isto vrijeme. Njegov potomak razvija se u današnje vrijeme (uglavnom od samog autora).

Budući da služimo mnogim Kubernetes klasterima različitih veličina, također smo zainteresirani za mogućnost pružanja vizualnog alata našim klijentima. Prilikom odabira odgovarajućeg sučelja ključne su nam bile sljedeće karakteristike:

  • podrška za razlikovanje korisničkih prava (RBAC);
  • vizualizacija stanja imenskog prostora i standardnih Kubernetes primitiva (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • dobivanje pristupa naredbenom retku unutar modula;
  • pregledavanje dnevnika mahuna;
  • pogledajte status mahuna (describe status);
  • uklanjanje mahuna.

Ostale funkcije, kao što je pregled potrošenih resursa (u kontekstu podova/kontrolora/prostora imena), stvaranje/uređivanje K8s primitiva, nisu relevantne unutar našeg tijeka rada.

Recenziju ćemo započeti klasičnom Kubernetes nadzornom pločom, koja je naš standard. Budući da svijet ne stoji na mjestu (što znači da Kubernetes ima sve više i više novih GUI-ja), govorit ćemo i o njegovim trenutnim alternativama, sažimajući sve u usporednoj tablici na kraju članka.

NB: U recenziji se nećemo ponavljati s onim rješenjima koja su već razmatrana u zadnji članak, međutim, radi cjelovitosti, relevantne opcije iz njega (K8Dash, Octant, Kubernetes Web View) uključene su u konačnu tablicu.

1. Nadzorna ploča Kubernetes

  • Stranica s dokumentacijom;
  • spremište (8000+ GitHub zvjezdica);
  • Licenca: Apache 2.0;
  • Ukratko: “Univerzalno web sučelje za Kubernetes klastere. Korisnicima omogućuje upravljanje i rješavanje problema s aplikacijama koje se izvode u klasteru, kao i upravljanje samim klasterom.”

Pregled GUI-ja za Kubernetes

Ovo je ploča opće namjene koju pokrivaju autori Kubernetesa u službenoj dokumentaciji (ali nerazmjestiv zadano). Namijenjen je za potrebe svakodnevnog rada i debugiranja aplikacija u klasteru. Kod kuće ga koristimo kao potpuni lagani vizualni alat koji nam omogućuje da programerima pružimo potreban i dovoljan pristup klasteru. Njegove mogućnosti pokrivaju sve njihove potrebe koje se javljaju u procesu korištenja klastera (U ovaj članak demonstrirali smo neke značajke ploče). Kao što možda pretpostavljate, to znači da zadovoljava sve naše gore navedene zahtjeve.

Među glavnim značajkama Kubernetes nadzorne ploče:

  • Navigacija: pogledajte glavne objekte K8s u kontekstu imenskih prostora.
  • Ako imate administratorska prava, ploča prikazuje čvorove, prostore imena i trajne sveske. Za čvorove su dostupni statistički podaci o upotrebi memorije, procesora, raspodjeli resursa, metrici, statusu, događajima itd.
  • Pregledajte aplikacije raspoređene u prostoru imena prema njihovoj vrsti (Deployment, StatefulSet, itd.), odnosima između njih (ReplicaSet, Horizontal Pod Autoscaler), općim i personaliziranim statistikama i informacijama.
  • Pregledajte usluge i ulaze, kao i njihove odnose s podovima i krajnjim točkama.
  • Prikaz objekata datoteka i pohrana: Trajni volumen i Trajni volumen.
  • Pregledajte i uredite ConfigMap i Secret.
  • Pregledaj zapisnike.
  • Pristup naredbenom retku u spremnicima.

Značajan nedostatak (međutim, ne za nas) je što nema podrške za rad s više klastera. Projekt aktivno razvija zajednica i održava relevantne značajke izdavanjem novih verzija i specifikacija Kubernetes API-ja: najnovija verzija panela je v2.0.1 22. svibnja 2020. - testirana kompatibilnost s Kubernetesom 1.18.

2. leća

Pregled GUI-ja za Kubernetes

Projekt je pozicioniran kao cjelovito integrirano razvojno okruženje (IDE) za Kubernetes. Štoviše, optimiziran je za rad s mnogo klastera i velikim brojem podova koji rade u njima (testirano na 25 XNUMX podova).

Glavne značajke/mogućnosti objektiva:

  • Samostalna aplikacija koja ne zahtijeva instalaciju ničega unutar klastera (točnije, za dobivanje svih metrika bit će potreban Prometheus, ali za to može poslužiti i postojeća instalacija). “Glavna” instalacija vrši se na osobnom računalu s operativnim sustavom Linux, macOS ili Windows.
  • Upravljanje više klastera (podržane stotine klastera).
  • Vizualizacija stanja klastera u stvarnom vremenu.
  • Grafikoni korištenja resursa i trendovi s poviješću temeljeni na ugrađenom Prometheusu.
  • Pristup naredbenom retku spremnika i na čvorovima klastera.
  • Puna podrška za Kubernetes RBAC.

Trenutno izdanje - 3.5.0 od 16. lipnja 2020. Izvorno kreirana od strane Kontene, danas je svo intelektualno vlasništvo preneseno na posebnu organizaciju Lakend Labs, pod nazivom "unija geekova i tehnologa izvornih u oblaku", koja je odgovorna za "očuvanje i dostupnost Konteninog Open Source softvera i proizvoda."

Lens je drugi najpopularniji projekt na GitHubu iz kategorije GUI za Kubernetes, a “izgubio” je samo samu Kubernets Dashboard. Sva ostala Open Source rješenja koja nisu iz CLI* kategorije znatno su inferiorna u popularnosti.

* Vidite o K9s u bonus dijelu recenzije.

3. Kubernetić

Pregled GUI-ja za Kubernetes

Ovo je vlasnička aplikacija koja se instalira na osobno računalo (podržani su Linux, macOS, Windows). Njegovi autori obećavaju potpunu zamjenu uslužnog programa naredbenog retka, a uz to - nema potrebe za pamćenjem naredbi, pa čak i deseterostruko povećanje brzine.

Jedna od zanimljivih značajki alata je ugrađena podrška za Helm grafikone, a jedan od nedostataka je nedostatak metrike performansi aplikacije.

Glavne značajke Kubernetica:

  • Zgodan prikaz statusa klastera. Jedan zaslon za pregled svih povezanih objekata klastera i njihovih ovisnosti; crveno/zeleno stanje spremnosti za sve objekte; način prikaza statusa klastera s ažuriranjem statusa u stvarnom vremenu.
  • Gumbi za brze radnje za brisanje i skaliranje aplikacije.
  • Podrška za rad s više klastera.
  • Jednostavan rad s prostorima imena.
  • Podrška za Helm karte i Helm repozitorije (uključujući privatne). Instalacija i upravljanje grafikonima u web sučelju.

Trenutačni trošak proizvoda je jednokratno plaćanje od 30 eura za njegovu upotrebu od strane jedne osobe za bilo koji broj prostora imena i klastera.

4. Kubevious

  • web stranica;
  • prezentacija;
  • spremište (~500 GitHub zvjezdica);
  • Licenca: Apache 2.0
  • Ukratko: "Kubevious čini Kubernetes klastere, konfiguraciju aplikacija i pregled statusa sigurnima i lakima za razumijevanje."

Pregled GUI-ja za Kubernetes

Ideja projekta je stvoriti alat dizajniran za analizu i otklanjanje pogrešaka konfiguracija aplikacija raspoređenih u klasteru. Autori su se prvenstveno usredotočili na implementaciju ovih značajki, ostavljajući općenitije stvari za kasnije.

Ključne značajke i funkcije Kubeviousa:

  • Vizualizacija klastera na način usmjeren na aplikaciju: povezani objekti u sučelju su grupirani, poredani u hijerarhiji.
  • Vizualni prikaz ovisnosti u konfiguracijama i kaskadnih posljedica njihovih promjena.
  • Prikaz grešaka u konfiguraciji klastera: zlouporaba oznaka, propušteni portovi itd. (Usput, ako ste zainteresirani za ovu značajku, obratite pozornost na Polariso kojoj mi već napisao.)
  • Uz prethodnu točku dostupna je detekcija potencijalno opasnih spremnika, tj. imati previše privilegija (atributa hostPID, hostNetwork, hostIPC, montirati docker.sock itd).
  • Napredni sustav pretraživanja klastera (ne samo po imenima objekata, već i po njihovim svojstvima).
  • Alati za planiranje kapaciteta i optimizaciju resursa.
  • Ugrađeni "vremenski stroj" (mogućnost vidjeti prethodne promjene u konfiguraciji objekata).
  • Upravljanje RBAC-om sa zaokretnom međusobno povezanom tablicom Roles, RoleBindings, ServiceAccounts.
  • Radi samo s jednim klasterom.

Projekt ima vrlo kratku povijest (prvo izdanje dogodilo se 11. veljače 2020.) i čini se da je došlo do razdoblja stabilizacije ili usporavanja razvoja. Ako su prethodne verzije često izdavane, onda je najnovije izdanje (v0.5 15. travnja 2020.) zaostaje za početnim tempom razvoja. To je vjerojatno zbog malog broja suradnika: samo ih je 4 u povijesti repozitorija, a sav stvarni posao obavlja jedna osoba.

5. Kubewise

  • Stranica projekta;
  • Licenca: vlasnička (postat će Open Source);
  • Ukratko: "Jednostavan višeplatformski klijent za Kubernetes."

Pregled GUI-ja za Kubernetes

Novi proizvod tvrtke VMware, izvorno kreiran kao dio internog hackathona (u lipnju 2019.). Instaliran na osobnom računalu, radi na temelju Elektron (Podržani su Linux, macOS i Windows) i zahtijeva kubectl v1.14.0 ili noviji.

Glavne značajke Kubewisea:

  • Interakcija sučelja s najčešće korištenim Kubernetes entitetima: čvorovi, prostori imena itd.
  • Podrška za više kubeconfig datoteka za različite klastere.
  • Terminal s mogućnošću postavljanja varijable okruženja KUBECONFIG.
  • Generirajte prilagođene kubeconfig datoteke za navedeni prostor imena.
  • Napredne sigurnosne značajke (RBAC, lozinke, servisni računi).

Za sada projekt ima samo jedno izdanje - verziju 1.1.0 od 26. studenog 2019. Štoviše, autori su ga planirali odmah objaviti kao Open Source, ali zbog internih problema (koji nisu povezani s tehničkim problemima) to nisu mogli učiniti. Od svibnja 2020. autori rade na sljedećem izdanju i trebali bi pokrenuti proces otvaranja koda u isto vrijeme.

6. Konzola OpenShift

Pregled GUI-ja za Kubernetes

Unatoč činjenici da je ovo web sučelje dio distribucije OpenShift (tamo je instalirano pomoću specijalni operater), autori predviđeno mogućnost instaliranja/korištenja u normalnim (vanilla) Kubernetes instalacijama.

OpenShift Console je dugo bio u razvoju, tako da je uključio mnoge značajke. Spomenut ćemo glavne:

  • Pristup dijeljenog sučelja - dvije "perspektive" mogućnosti dostupnih u Konzoli: za administratore i za programere. Način rada razvojna perspektiva grupira objekte u obliku koji je razumljiviji programerima (prema aplikacijama) i fokusira sučelje na rješavanje tipičnih zadataka kao što su implementacija aplikacija, praćenje statusa izgradnje/pokretanja, pa čak i uređivanje koda kroz Eclipse Che.
  • Upravljanje opterećenjima, mrežom, pohranom, pravima pristupa.
  • Logičko razdvajanje radnih opterećenja na projekte i aplikacije. U jednom od najnovijih izdanja - v4.3 - pojavio posebna nadzorna ploča projekta, koji prikazuje uobičajene podatke (broj i statuse implementacija, podova itd.; potrošnju resursa i druge metrike) u isječku projekta.
  • Ažuriran u stvarnom vremenu prikaz stanja klastera, promjena (događaja) koje su se dogodile u njemu; pregledavanje dnevnika.
  • Pregledajte podatke praćenja temeljene na Prometheusu, Alertmanageru i Grafani.
  • Uprava operatera zastupljenih u operatorhub.
  • Upravljanje verzijama koje se izvode kroz Docker (iz određenog repozitorija s Docker datotekom), S2I ili proizvoljnih vanjskih uslužnih programa.

NB: Nismo dodavali druge u usporedbu Kubernetes distribucije (na primjer, mnogo manje poznate Kubesphere): unatoč činjenici da GUI u njima može biti vrlo napredan, obično dolazi kao dio integriranog skupa velikog sustava. No, ako mislite da nema dovoljno rješenja koja u potpunosti funkcioniraju u vanilla K8s instalaciji, javite nam u komentarima.

bonus

1. Portainer na Kubernetesu u Beta verziji

Projekt tima Portainer koji je razvio popularno istoimeno sučelje za rad s Dockerom. Budući da je projekt u ranoj fazi razvoja (prva i jedina beta verzija izašao 16. travnja 2020.), nismo procijenili njegove značajke. Međutim, moglo bi biti zanimljivo mnogima: ako se radi o vama, pratite razvoj.

2. Ledena ploča

  • web stranica;
  • Licenca: vlasnička;
  • Ukratko: "Visual Kubernetes Editor".

Pregled GUI-ja za Kubernetes

Ova mlada stolna aplikacija ima za cilj vizualizirati i upravljati Kubernetes resursima u stvarnom vremenu pomoću jednostavnog drag & drop sučelja. Trenutačno podržani objekti su Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap i Secret. Uskoro obećavaju dodati podršku za Helm. Glavni nedostaci su blizina koda (očekuje se otvaranje "na neki način") i nedostatak podrške za Linux (zasad su dostupne samo verzije za Windows i macOS, iako je i to vrlo vjerojatno samo pitanje vremena).

3.k9s

  • web stranica;
  • demonstracija;
  • spremište (~7700 GitHub zvjezdica);
  • Licenca: Apache 2.0;
  • Ukratko: "Sučelje konzole za Kubernetes koje vam omogućuje upravljanje klasterom u stilu."

Pregled GUI-ja za Kubernetes

Uslužni program je bio samo u bonus dijelu recenzije iz razloga što nudi GUI konzole. Međutim, autori su doslovno iscijedili maksimum iz terminala, nudeći ne samo user-friendly sučelje, već i 6 predefiniranih tema, te napredan sustav tipkovničkih prečaca i aliasa naredbi. Njihov temeljit pristup nije bio ograničen samo na izgled: značajke k9s-a su ugodno impresivne: upravljanje resursima, prikaz stanja klastera, prikaz resursa u hijerarhijskom prikazu sa ovisnostima, pregled dnevnika, RBAC podrška, proširenje mogućnosti putem dodataka ... Sve je to privuklo širokoj K8s zajednici: broj GitHub zvijezde projekta gotovo su jednako dobre kao službena Kubernetes nadzorna ploča!

4. Kontrolne ploče aplikacije

I na kraju recenzije - zasebna mini-kategorija. Uključivao je dva web sučelja dizajnirana ne za sveobuhvatno upravljanje Kubernetes klasterima, već za upravljanje onim što je u njima raspoređeno.

Kao što znate, jedan od najzrelijih i najrasprostranjenijih alata za implementaciju složenih aplikacija u Kubernetes je Helm. Tijekom razdoblja njegovog postojanja nakupili su se mnogi paketi (Helm karte) za jednostavnu implementaciju mnoge popularne aplikacije. Stoga je pojava odgovarajućih vizualnih alata koji vam omogućuju upravljanje životnim ciklusom grafikona sasvim logična.

4.1. Monokularni

  • spremište (1300+ GitHub zvjezdica);
  • Licenca: Apache 2.0;
  • Ukratko: “Web aplikacija za pretraživanje i otkrivanje Helmovih grafikona u više spremišta. Služi kao osnova za projekt Helm hub."

Pregled GUI-ja za Kubernetes

Ovaj razvoj autora Helma instaliran je u Kubernetes i radi unutar istog klastera, izvršavajući zadatak. Međutim, trenutno projekt gotovo nije razvijen. Njegova glavna svrha je podržati postojanje Helm Huba. Za ostale potrebe autori preporučuju Kubeapps (vidi dolje) ili Red Hat Automation Broker (dio OpenShift-a, ali se također više ne razvija).

4.2. Kubeapps

Pregled GUI-ja za Kubernetes

Proizvod iz Bitnamija, koji je također instaliran u Kubernetes klasteru, ali se razlikuje od Monoculara po početnom fokusu na rad s privatnim repozitorijima.

Ključne funkcije i značajke Kubeappsa:

  • Pogledajte i instalirajte Helm karte iz repozitorija.
  • Provjerite, ažurirajte i uklonite aplikacije temeljene na Helmu instalirane na klasteru.
  • Podrška za prilagođena i privatna spremišta grafikona (podržava ChartMuseum i JFrog Artifactory).
  • Pregled i rad s vanjskim uslugama - iz kataloga usluga i posrednika usluga.
  • Objavljivanje instaliranih aplikacija pomoću mehanizma vezanja kataloga usluga.
  • Podrška za autentifikaciju i odvajanje prava pomoću RBAC-a.

Tabela sažetka

Ispod je tablica sažetka u kojoj smo pokušali sažeti i agregirati glavne značajke postojećih vizualnih sučelja kako bismo olakšali usporedbu:

Pregled GUI-ja za Kubernetes
(Online verzija tablice dostupno na Google dokumentima.)

Zaključak

GUI za Kubernetes su prilično specifična i mlada niša. Međutim, razvija se vrlo aktivno: već je moguće pronaći i prilično zrela rješenja i vrlo mlada, koja još uvijek imaju prostora za rast. Zadovoljavaju različite primjene, nudeći značajke i izgled za gotovo svačiji ukus. Nadamo se da će vam ova recenzija pomoći da odaberete alat koji najbolje odgovara vašim trenutnim potrebama.

PS

Hvala vam kvaps za podatke na OpenShift konzoli za usporednu tablicu!

Pročitajte i na našem blogu:

Izvor: www.habr.com

Dodajte komentar