Pregled GUI-ja za Kubernetes

Pregled GUI-ja za Kubernetes

Da biste u potpunosti radili sa sistemom, važno je poznavati uslužne programe komandne linije: u slučaju Kubernetesa, ovo je kubectl. S druge strane, dobro dizajnirani, dobro osmišljeni GUI-i mogu raditiоvećinu uobičajenih zadataka i otvaraju dodatne mogućnosti kada operativni sistemi.

Prošle godine smo objavili prijevod kratak pregled web korisničkog sučelja za Kubernetes, posvećen najavi web interfejsa Kubernetes WebView. Autor tog članka i samog uslužnog programa, Henning Jacobs iz kompanije Zalando, pozicionirao je novi proizvod kao „kubectl za web“. Želio je kreirati alat sa pogodnim mogućnostima za interakciju u formatu tehničke podrške (na primjer, brzo prikazivanje problema s web linkom) i za reagovanje na incidente, traženje problema u više klastera u isto vrijeme. Njegova zamisao se i danas razvija (uglavnom od strane samog autora).

Poslužujući mnoge Kubernetes klastere različitih veličina, takođe smo zainteresovani za mogućnost da klijentima pružimo vizuelni alat za rad. Prilikom odabira odgovarajućeg interfejsa, za nas su bile ključne sledeće karakteristike:

  • podrška diferencijaciji korisničkih prava (RBAC);
  • vizualizacija stanja imenskog prostora i standardnih Kubernetes primitiva (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • dobijanje pristupa komandnoj liniji unutar modula;
  • pregledavanje dnevnika mahuna;
  • pregled statusa mahuna (describe status);
  • uklanjanje mahuna.

Druge funkcije, kao što je pregled utrošenih resursa (po podovima/kontrolerima/imespaceima), kreiranje/uređivanje primitiva K8s, nisu relevantne u našem toku rada.

Recenziju ćemo započeti s klasičnom Kubernetes Dashboard-om, koja je usvojena kao naš standard. Budući da svijet ne miruje (što znači da se novi GUI-ovi pojavljuju u Kubernetesu), govorit ćemo i o njegovim trenutnim alternativama, sumirajući sve u uporednoj tabeli na kraju članka.

NB: U recenziji nećemo ponavljati ona rješenja koja su već razmatrana poslednji članak, međutim - radi kompletnosti - relevantne opcije iz njega (K8Dash, Octant, Kubernetes Web View) su uključene u konačnu tabelu.

1. Kubernetes Dashboard

  • Stranica sa dokumentacijom;
  • spremište (8000+ GitHub zvjezdica);
  • Licenca: Apache 2.0;
  • Ukratko: „Univerzalni web interfejs za Kubernetes klastere. Omogućava korisnicima da upravljaju i rješavaju probleme s aplikacijama koje rade u klasteru, kao i da upravljaju samim klasterom.”

Pregled GUI-ja za Kubernetes

Ovo je panel opšte namene koji su autori Kubernetesa pokrivali u zvaničnoj dokumentaciji (ali nije razmjestivo zadano). Namijenjen je za potrebe svakodnevnog rada i otklanjanja grešaka u aplikacijama u klasteru. Ovdje ga koristimo kao potpuni lagani vizualni alat koji nam omogućava da programerima omogućimo neophodan i dovoljan pristup klasteru. Njegove mogućnosti pokrivaju sve njihove potrebe koje nastaju u procesu korištenja klastera (u ovaj članak demonstrirali smo neke karakteristike panela). Kao što možete lako pretpostaviti, to znači da zadovoljava sve naše gore navedene zahtjeve.

Među glavnim karakteristikama Kubernetes Dashboard-a:

  • Navigacija: Pregledajte glavne K8s objekte po imenskom prostoru.
  • Ako imate administratorska prava, panel prikazuje čvorove, prostore imena i trajne volumene. Statistika upotrebe memorije i procesora, alokacije resursa, metrike, statusa, događaja itd. dostupna je za čvorove.
  • Pregledajte aplikacije raspoređene u imenskom prostoru prema njihovom tipu (Deployment, StatefulSet, itd.), vezama između njih (ReplicaSet, Horizontal Pod Autoscaler), općim i personaliziranim statistikama i informacijama.
  • Pogledajte usluge i Ingress, kao i njihove veze sa podovima i krajnjim tačkama.
  • Pregledajte objekte datoteka i skladišta: Trajni volumen i Trajni zahtjev za volumen.
  • Pregledajte i uredite ConfigMap i Secret.
  • Pogledajte dnevnike.
  • Pristup komandnoj liniji u kontejnerima.

Značajan nedostatak (ne za nas, međutim) je to što ne postoji podrška za rad s više klastera. Zajednica aktivno razvija projekat i podržava trenutne funkcije s izdavanjem novih verzija i specifikacija Kubernetes API-ja: najnovija verzija panela je v2.0.1 22. maj 2020. - Testirano na kompatibilnost sa Kubernetes 1.18.

2. objektiv

Pregled GUI-ja za Kubernetes

Projekat je pozicioniran kao potpuno integrisano razvojno okruženje (IDE) za Kubernetes. Štaviše, optimizovan je za rad sa mnogim klasterima i velikim brojem podova koji rade u njima (testirano na 25 hiljada podova).

Glavne karakteristike/mogućnosti objektiva:

  • Samostalna aplikacija koja ne zahtijeva instalaciju bilo čega unutar klastera (tačnije, Prometheus je potreban za dobivanje svih metrika, ali za to možete koristiti i postojeću instalaciju). „Glavna“ instalacija se izvodi na personalnom računaru koji koristi Linux, macOS ili Windows.
  • Upravljanje više klastera (podržane stotine klastera).
  • Vizualizacija stanja klastera u realnom vremenu.
  • Grafikoni korišćenja resursa i trendovi sa istorijom zasnovani na ugrađenom Prometeju.
  • Pristup komandnoj liniji kontejnera i čvorova klastera.
  • Potpuna podrška za Kubernetes RBAC.

Trenutno izdanje - 3.5.0 od 16. Prvobitna verzija kreirana je u Konteni, a danas je sva intelektualna svojina prebačena na posebnu organizaciju Lakeland Labs, nazvano “udruga štrebera i tehnologa iz oblaka”, koji su odgovorni za “očuvanje i stavljanje na raspolaganje softvera otvorenog koda i Kontena proizvoda”.

Lens je drugi najpopularniji projekat na GitHubu u kategoriji GUI za Kubernetes, iza samo Kubernets Dashboard-a. Sva ostala rješenja otvorenog koda koja nisu u CLI* kategoriji su značajno inferiorna po popularnosti.

*O K9s pogledajte u bonus dijelu recenzije.

3. Kubernetic

Pregled GUI-ja za Kubernetes

Ovo je vlasnička aplikacija koja je instalirana na personalnom računaru (Linux, macOS, Windows su podržani). Njegovi autori obećavaju potpunu zamjenu uslužnog programa komandne linije, a uz to nema potrebe za pamćenjem komandi, pa čak i desetostruko povećanje brzine rada.

Jedna od zanimljivih karakteristika alata je ugrađena podrška za Helmove grafikone, ali jedan od nedostataka je nedostatak metrike performansi aplikacije.

Glavne karakteristike Kubernetic-a:

  • Pogodan prikaz statusa klastera. Jedan ekran za pregled svih povezanih objekata klastera i njihovih zavisnosti; crveno/zeleno stanje spremnosti za sve objekte; Način pregleda statusa klastera sa ažuriranjem statusa u realnom vremenu.
  • Dugmad za brzu akciju za brisanje i skaliranje aplikacije.
  • Podrška za rad sa više klastera.
  • Jednostavan rad sa imenskim prostorima.
  • Podrška za Helm karte i Helm repozitorije (uključujući privatne). Instalacija i upravljanje grafikonima u web interfejsu.

Trenutni trošak proizvoda je jednokratno plaćanje od 30 eura za korištenje od strane jedne osobe za bilo koji broj imenskih prostora i klastera.

4. Kubevious

  • sajt;
  • Prezentacija;
  • spremište (~500 GitHub zvjezdica);
  • Licenca: Apache 2.0
  • Ukratko: “Kubevious čini Kubernetes klastere, konfiguraciju aplikacije i vidljivost statusa aplikacije sigurnim i lakim za razumijevanje.”

Pregled GUI-ja za Kubernetes

Ideja projekta je kreiranje alata dizajniranog za analizu i otklanjanje grešaka u konfiguracijama aplikacija koje su raspoređene u klasteru. Autori su se prvenstveno fokusirali na implementaciju ovih karakteristika, ostavljajući opštije stvari za kasnije.

Ključne karakteristike i funkcije Kubeviousa:

  • Vizualizirajte klaster na način usmjeren na aplikaciju: međusobno povezani objekti u sučelju su grupirani u hijerarhiju.
  • Vizuelno prikazati zavisnosti u konfiguracijama i kaskadne posledice njihovih promena.
  • Prikazuje greške u konfiguraciji klastera: nepravilna upotreba oznaka, propušteni portovi, itd. (Usput, ako ste zainteresovani za ovu funkciju, obratite pažnju na polariso čemu mi već napisao.)
  • Pored prethodne tačke, dostupna je i detekcija potencijalno opasnih kontejnera, tj. ima previše privilegija (atributa hostPID, hostNetwork, hostIPC, montaža docker.sock itd).
  • Napredni sistem pretraživanja klastera (ne samo po nazivima objekata, već i po njihovim svojstvima).
  • Alati za planiranje kapaciteta i optimizaciju resursa.
  • Ugrađena „vremenska mašina“ (mogućnost da se vide prethodno nastale promene u konfiguraciji objekata).
  • Upravljanje RBAC-om pomoću zbirne međusobno povezane tabele iz uloga, veza uloga, servisnih računa.
  • Radi samo sa jednim klasterom.

Projekat ima veoma kratku istoriju (prvo izdanje je održano 11. februara 2020. godine) i čini se da je postojao period stabilizacije ili usporavanja razvoja. Ako su prethodne verzije često objavljivane, onda najnovija verzija (v0.5 od 15. aprila 2020. godine) zaostao za početnim tempom razvoja. Ovo je vjerovatno zbog malog broja saradnika: u historiji repozitorija ima ih samo 4, a sav stvarni posao obavlja jedna osoba.

5. Kubewise

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

Pregled GUI-ja za Kubernetes

Novi proizvod iz VMwarea, originalno kreiran kao dio internog hakatona (u junu 2019.). Instaliran na personalnom računaru, radi na bazi Electron (podržava Linux, macOS i Windows) i zahtijeva kubectl v1.14.0 ili noviji.

Ključne karakteristike Kubewisea:

  • Interfejs interakcije sa najčešće korišćenim Kubernetes entitetima: čvorovima, imenskim prostorima itd.
  • Podrška za više kubeconfig datoteka za različite klastere.
  • Terminal sa mogućnošću postavljanja varijable okruženja KUBECONFIG.
  • Generiranje prilagođenih kubeconfig datoteka za dati prostor imena.
  • Napredne sigurnosne funkcije (RBAC, lozinke, servisni nalozi).

Za sada projekat ima samo jedno izdanje - verziju 1.1.0 od 26. Štaviše, autori su planirali da ga odmah objave kao Open Source, ali zbog internih problema (koji nisu vezani za tehničke probleme) to nisu mogli učiniti. Od maja 2019., autori rade na sljedećem izdanju i moraju istovremeno pokrenuti proces otvorenog koda.

6. Konzola OpenShift

Pregled GUI-ja za Kubernetes

Unatoč činjenici da je ovo web sučelje dio OpenShift distribucije (tamo se instalira pomoću specijalni operater), autori su obezbedili mogućnost instaliranja/upotrebe u redovnim (vanilla) Kubernetes instalacijama.

OpenShift Console se razvija dugo vremena, tako da je ugradio mnoge funkcije. Spomenimo glavne:

  • Zajednički pristup interfejsu - dve „perspektive“ mogućnosti dostupnih u Konzoli: za administratore i za programere. Mode Perspektiva programera grupiše objekte u obliku koji je razumljiviji programerima (po aplikaciji) i fokusira interfejs na rešavanje tipičnih zadataka kao što su postavljanje aplikacija, praćenje statusa izgradnje/deploymenta, pa čak i uređivanje koda putem Eclipse Che-a.
  • Upravljajte radnim opterećenjima, mrežom, pohranom, pravima pristupa.
  • Logičko razdvajanje za radna opterećenja projekta i aplikacije. U jednom od najnovijih izdanja - v4.3 - pojavila poseban Projektna tabla, prikazujući uobičajene podatke (broj i status implementacija, modula, itd.; potrošnja resursa i druge metrike) u presjeku projekata.
  • Ažuriran prikaz stanja klastera i promjena (događaja) koje su se u njemu dogodile u realnom vremenu; pregledanje dnevnika.
  • Pregledajte podatke praćenja zasnovane na Prometheusu, Alertmanageru i Grafani.
  • Upravljački operateri predstavljeni u operatorhub.
  • Upravljajte verzijama koje se pokreću preko Docker-a (iz određenog spremišta s Dockerfileom) S2I ili proizvoljnih eksternih uslužnih programa.

NB: Nismo dodali druge u poređenje Kubernetes distribucije (na primjer, mnogo manje poznati Kubesphere): uprkos činjenici da grafički interfejs u njima može biti veoma napredan, obično dolazi kao deo integrisanog steka velikog sistema. Međutim, ako smatrate da nedostaju neka rješenja koja su potpuno funkcionalna u vanilla K8s instalaciji, javite nam u komentarima.

bonus

1. Portainer na Kubernetesu u beta verziji

  • sajt;
  • spremište (~100 GitHub zvjezdica);
  • Licenca: Zlib(?) (isto kao i roditeljski projekat).

Projekat Portainer tima koji je razvio istoimeni popularni interfejs za rad sa Dockerom. Pošto je projekat u ranoj fazi razvoja (prva i jedina beta verzija izašao 16. aprila 2020.), nismo ocjenjivali njegove karakteristike. Međutim, mnogima može biti zanimljivo: ako vam ovo zvuči, pratite razvoj.

2. IcePanel

  • sajt;
  • Licenca: vlasnička;
  • Ukratko: “Vizualni Kubernetes editor.”

Pregled GUI-ja za Kubernetes

Ova mlada desktop aplikacija ima za cilj vizualizaciju i upravljanje Kubernetes resursima u realnom vremenu pomoću jednostavnog drag & drop interfejsa. Trenutno podržani objekti su Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap i Secret. Obećavaju da će uskoro dodati podršku za Helm. Glavni nedostaci su što je kod zatvoren (očekuje se otvaranje "u nekom obliku") i nedostatak podrške za Linux (do sada su dostupne samo verzije za Windows i macOS, iako je i ovo najvjerovatnije samo pitanje vremena).

3. k9s

  • sajt;
  • Demonstracija;
  • spremište (~7700 GitHub zvjezdica);
  • Licenca: Apache 2.0;
  • Ukratko: “Sučelje konzole za Kubernetes koje vam omogućava da upravljate svojim klasterom sa stilom.”

Pregled GUI-ja za Kubernetes

Uslužni program je uključen samo u bonus dio recenzije iz razloga što nudi konzolni GUI. Međutim, autori su bukvalno izvukli maksimum iz terminala, nudeći ne samo zgodan interfejs, već i 6 unapred definisanih tema, kao i razvijen sistem prečica na tastaturi i aliasa za komande. Njihov temeljit pristup nije bio ograničen samo na izgled: mogućnosti k9s-a su ugodno impresivne: upravljanje resursima, prikazivanje stanja klastera, prikazivanje resursa u hijerarhijskom pogledu sa zavisnostima, pregled dnevnika, podrška RBAC-u, proširenje mogućnosti putem dodataka... Sve ovo se svidjelo širokoj K8s zajednici: količina Projekt GitHub zvijezda je gotovo jednako dobar kao zvanična Kubernetes Dashboard!

4. Kontrolni paneli aplikacije

I na kraju recenzije - zasebna mini-kategorija. Uključuje dva web interfejsa dizajnirana ne za složeno 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 Kubernetesu je Helm. Tokom perioda postojanja, akumulirali su se mnogi paketi (Helm grafikoni) za laku implementaciju mnoge popularne aplikacije. Stoga je sasvim logično da će se pojaviti odgovarajući vizualni alati koji će pomoći u upravljanju životnim ciklusom grafikona.

4.1. Monokularni

  • spremište (1300+ GitHub zvjezdica);
  • Licenca: Apache 2.0;
  • Ukratko: „Web aplikacija za pretraživanje i otkrivanje Helm karata u više repozitorija. Služi kao osnova za Helm hub projekat."

Pregled GUI-ja za Kubernetes

Ovaj razvoj od autora Helm-a je instaliran u Kubernetes i radi u okviru jednog klastera, obavljajući dodeljeni zadatak. Međutim, trenutno se projekat uopće ne razvija. Njegova glavna svrha je da podrži postojanje Helm Hub-a. 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

  • sajt;
  • Prezentacija;
  • spremište (~2100 GitHub zvjezdica);
  • Licenca: Apache 2.0
  • Ukratko: „Kontrolna tabla vaše aplikacije za Kubernetes.“

Pregled GUI-ja za Kubernetes

Proizvod iz Bitnamija, koji je također instaliran u Kubernetes klaster, ali se razlikuje od Monoculara po svom početnom fokusu na rad sa privatnim spremištima.

Ključne karakteristike i funkcionalnost Kubeapps:

  • Pregledajte i instalirajte Helm karte iz spremišta.
  • Provjerite, ažurirajte i uklonite aplikacije zasnovane na Helm-u instalirane na klasteru.
  • Podrška za rad sa prilagođenim i privatnim repozitorijumima grafikona (podržava ChartMuseum i JFrog Artifactory).
  • Pregledajte i radite s vanjskim servisima - iz kataloga usluga i servisnih brokera.
  • Objavljivanje instaliranih aplikacija koristeći mehanizam povezivanja kataloga usluga.
  • Podrška za autentifikaciju i razdvajanje prava pomoću RBAC-a.

Finalni sto

Ispod je tabela sažetka u kojoj smo pokušali da sumiramo i agregiramo glavne mogućnosti postojećih vizuelnih interfejsa kako bismo olakšali poređenje:

Pregled GUI-ja za Kubernetes
(Online verzija tabele dostupno u Google dokumentima.)

zaključak

Grafički interfejsi za Kubernetes su prilično specifična i mlada niša. Međutim, razvija se vrlo aktivno: već možete pronaći i prilično zrela rješenja i vrlo mlada koja još uvijek imaju prostora za rast. Zadovoljavaju različite primjene, nudeći karakteristike i izgled za gotovo svaki ukus. Nadamo se da će vam ova recenzija pomoći da odaberete alat koji najbolje odgovara vašim trenutnim potrebama.

PS

Hvala ti kvaps za podatke OpenShift konzole za uporednu tabelu!

Pročitajte i na našem blogu:

izvor: www.habr.com

Dodajte komentar