
Na kompletnú prácu so systémom je dôležité poznať príkazové riadkové nástroje: v prípade Kubernetes je to kubectl. Na druhej strane, dobre navrhnuté, premyslené grafické rozhrania môžu vykonávať väčšinu bežných úloh a otvoriť ďalšie možnosti pri prevádzke systémov.oV minulom roku sme publikovali preklad
malého prehľadu webového rozhrania Kubernetes Web View Službou množstva Kubernetes klastrov rôznych veľkostí sme tiež zaujato pozerali na možnosť poskytnúť klientom nástroj vizuálnej práce. Pri výbere vhodného rozhrania boli pre nás kľúčové nasledujúce možnosti:
podpora rozdelenia práv používateľov (RBAC);
- vizualizácia stavu namespace a základných primitívov Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- prístup k príkazovému riadku vo vnútri podu;
- prehľad logov podov;
- prehľad stavu podov (
- describe status
odstránenie podov.); - Iné funkcie, ako prehľad spotrebovaných zdrojov (v rámci podov/kontrolérov/namespace), vytváranie/upravenie primitívov K8s, nie sú v rámci nášho pracovného procesu relevantné.
Prehľad začneme tradičným Kubernetes Dashboard, ktorý považujeme za štandard. Keďže svet sa nezastavuje (a znamená to, že Kubernetes dostáva stále nové GUI), povieme aj o jeho aktuálnych alternatívach a všetko zhrnieme do porovnávacej tabuľky na konci článku.
: V prehľade sa nebudeme opakovať s tými riešeniami, ktoré už boli posúdené v
Poznámka, avšak – pre úplnosť obrazu – relevantné možnosti z nej (K8Dash, Octant, Kubernetes Web View) sú zahrnuté do finálnej tabuľky. 1. Kubernetes Dashboard
Stránka dokumentácie
- ;
- Licencia: Apache 2.0;
- Licencia: Apache 2.0;
- Stručne: „Univerzálne webové rozhranie pre clustre Kubernetes. Umožňuje používateľom spravovať aplikácie bežiace v klastri a riešiť problémy, ako aj spravovať samotný klaster.“

Toto je panel všeobecného určenia, ktorý autory Kubernetes považujú v oficiálnej dokumentácii. (aj keď predvolene). Je určený na každodenné prevádzkové a doladovacie potreby aplikácií v klastri. U nás ho používame ako plnohodnotný, ľahký vizuálny nástroj, ktorý umožňuje poskytnúť vývojárom potrebný a dostatočný prístup k klastru. Jeho možnosti pokrývajú všetky ich potreby, ktoré sa objavujú počas používania klastra. (v demonštrovali sme niektoré funkcie panela). Ako si ľahko môžete domyslieť, to znamená, že spĺňa všetky naše požiadavky uvedené vyššie.
Medzi hlavné možnosti Kubernetes Dashboard patrí:
- Navigácia: prehľad základných objektov K8s v rámci názvových priestorov.
- Pri dostupnosti administrátorských práv panel zobrazuje uzly, názvové priestory a Persistent Volumes. Pre uzly sú dostupné štatistiky využitia pamäte, procesora, prideľovanie zdrojov, metriky, stav, udalosti atď.
- Prehľad aplikácií, nasadených v názvovom priestore, podľa ich typu (Deployment, StatefulSet a iné), vzťahov medzi nimi (ReplicaSet, Horizontal Pod Autoscaler), celkovej a personalizovanej štatistiky a informácií.
- Prehľad služieb a Ingressov, ako aj ich väzby na pod-y a endpoint-y.
- Prehľad súborových objektov a úložísk: Persistent Volume a Persistent Volume Claim.
- Prehľad a úprava ConfigMap a Secret.
- Prehľad logov.
- Prístup k príkazovému riadku v kontajneroch.
Značná nevýhoda (avšak nie pre nás) – chýba podpora multi-klastrovej práce. Projekt sa aktívne vyvíja komunitou a podporuje aktuálne funkcie s vydaním nových verzií a špecifikácií Kubernetes API: posledná verzia panela – z 22. mája 2020 – bola testovaná na kompatibilitu s Kubernetes 1.18.
2. Lens
- ;
- ;
- (~4800 hviezd GitHub);
- Licencia: MIT;
- Stručne: „Kubernetes IDE“.

Projekt sa profiluje ako plnohodnotné integrované vývojové prostredie (IDE) pre Kubernetes. Je optimalizovaný na prácu s viacerými klastrami a veľkým množstvom spustených pod-ov (testované na 25 000 pod-och).
Hlavné vlastnosti/možnosti Lens:
- Autonómna aplikácia, ktorá nevyžaduje inštaláciu čohokoľvek vnútri clustra (presnejšie, na získanie všetkých metrík bude potrebný Prometheus, ale na to možno použiť aj už existujúcu inštaláciu). „Hlavná“ inštalácia sa vykonáva na osobnom počítači s operačným systémom Linux, macOS alebo Windows.
- Multi-klusterová správa (podporované sú stovky klastrov).
- Vizualizácia stavu clustra v reálnom čase.
- Grafy využívania zdrojov a trendy s históriou na základe zabudovaného Prometheus.
- Prístup k príkazovému riadku kontajnerov a uzlov clustra.
- Plná podpora Kubernetes RBAC.
Aktuálna verzia — od 16. júna 2020. Pôvodná verzia bola vytvorená vo firme Kontena, a dnes všetky duševné vlastníctvo prešlo do špeciálnej organizácie , známej ako „združenie cloud native nadšencov a expertov“, ktoré zodpovedá za „uchovanie a dostupnosť Open Source softvéru a produktov Kontena“.
Lens je druhý najpopulárnejší projekt na GitHub z kategórie GUI pre Kubernetes, „prehráva“ len za samotným Kubernetes Dashboard. Všetky ostatné Open Source riešenia mimo kategórie CLI* sú výrazne menej populárne.
* Pozri K9s v bonusovej časti prehľadu.
3. Kubernetic
- ;
- ;
- (200+ hviezd na GitHub);
- Licencia: proprietárna;
- Stručne: „Správa clustra, ktorá je jednoduchá“.

Je to proprietárna aplikácia, ktorá sa inštaluje na osobný počítač (podporované sú Linux, macOS, Windows). Jej autori sľubujú úplné nahradenie príkazového riadku, a spolu s tým — absenciu potreby pamätať si príkazy a až desiatkrát rýchlejšiu prácu.
Jednou z zaujímavých funkcií nástroja je zabudovaná podpora Helm chartov, a jednou z nevýhod — absencia metrík výkonnosti aplikácií.
Hlavné funkcie Kubernetic:
- Pohodlná vizualizácia stavu clustra. Jeden displej na prezeranie všetkých súvisiacich objektov clustra a ich závislostí; červený/zelený stav pripravenosti pre všetky objekty; režim zobrazenia stavu clustra s aktualizáciou stavu v reálnom čase.
- Rýchle akčné tlačidlá na vymazanie a škálovanie aplikácie.
- Podpora pre multi-klusterovú prácu.
- Jednoduchá práca s mennými priestormi.
- Podpora Helm chartov a Helm repozitárov (vrátane súkromných). Inštalácia a správa chartov v webovom rozhraní.
Aktuálna cena produktu — jednorázová platba vo výške 30 eur za jeho používanie jednou osobou pre akýkoľvek počet namespace-ov a klastrov.
4. Kubevious
- ;
- ;
- (~500 hviezd na GitHub-e);
- Licencia: Apache 2.0
- V skratke: "Kubevious robí klastre Kubernetes, konfigurácie aplikácií a prehľad ich stavu bezpečnými a ľahko pochopiteľnými."

Idea projektu spočíva v vytvorení nástroja určeného na analýzu a ladenie konfigurácií aplikácií nasadených v klastri. Autori sa zamerali predovšetkým na implementáciu týchto funkcií, zatiaľ čo všeobecnejšie veci ponechali na neskôr.
Hlavné vlastnosti a funkcie Kubevious:
- Vizualizácia klastra spôsobom zameraným na aplikácie: vzájomne prepojené objekty v rozhraní sú usporiadané v hierarchii.
- Prehľadné zobrazenie závislostí v konfiguráciách a kaskádnych následkov ich zmien.
- Zobrazenie chýb konfigurácie klastra: nesprávne použitie značiek, vynechané porty atď. (Mimochodom, ak vás táto funkcia zaujíma, pozrite sa na , o ktorom sme .)
- Okrem predchádzajúceho bodu — je dostupné zistenie potenciálne nebezpečných kontajnerov, t.j. tých s príliš veľkými oprávneniami (atribúty
hostPID,hostNetwork,hostIPC, pripojeniedocker.socka podobne). - Pokročilý vyhľadávací systém po klastri (nielen podľa mien objektov, ale aj podľa ich vlastností).
- Nástroje na plánovanie kapacít a optimalizácie zdrojov.
- Vstavaná "časová mašinka" (možnosť vidieť predchádzajúce zmeny konfigurácie objektov).
- Správa RBAC pomocou zhrnujúcej vzájomne prepojenej tabuľky z Roles, RoleBindings, ServiceAccounts.
- Pracuje iba s jedným klastrom.
Projekt má zatiaľ veľmi krátku históriu (prvý release bol 11. februára 2020) a akoby sa začal obdobie buď stabilizácie, alebo spomalenia vo vývoji. Kým predchádzajúce verzie vychádzali často, posledný release ( z 15. apríla 2020) zaostal za počiatočným tempom vývoja. Pravdepodobne to súvisí s malým počtom prispievateľov: v histórii repozitára ich je iba 4, pričom celú faktickú prácu vykonáva jedna osoba.
5. Kubewise
- ;
- Licencia: proprietárna (stane sa Open Source);
- V skratke: "Jednoduchý multiplatformový klient pre Kubernetes."

Nový produkt od spoločnosti VMware, pôvodne vytvorený počas interného hackathonu (v júni 2019). Nainštaluje sa na osobný počítač, funguje na báze (podporované sú Linux, macOS a Windows) a vyžaduje kubectl minimálne vo verzii v1.14.0.
Hlavné funkcie Kubewise:
- Interakcia v rozhraní s najčastejšie používanými entitami Kubernetes: uzlami, mennými priestormi atď.
- Podpora viacerých súborov kubeconfig pre rôzne klastre.
- Terminál s možnosťou nastavenia premennej prostredia
KUBECONFIG. - Generovanie vlastných súborov kubeconfig pre zadaný menný priestor.
- Rozšírené možnosti zabezpečenia (RBAC, heslá, service accounts).
Zatiaľ má projekt len jedno vydanie — verziu z 26. novembra 2019. Autori pôvodne plánovali okamžite uvoľniť ho ako Open Source, avšak kvôli interným problémom (nesúvisiacim s technickými otázkami) sa im to nepodarilo. K máju 2020 autori pracujú na ďalšom vydaní a zároveň by mali iniciovať proces otvorenia kódu.
6. OpenShift Console
- ;
- (~150 hviezd na GitHub);
- Licencia: Apache 2.0;
- Stručne: „UI pre klastre OpenShift.“

Napriek tomu, že toto webové rozhranie je súčasťou distribúcie OpenShift (inštaluje sa pomocou ), autori možnosť jeho inštalácie/používania aj v bežných (vanilla) inštaláciách Kubernetes.
OpenShift Console sa vyvíja už dlhú dobu, a preto obsahuje množstvo funkcií. Spomeňme niektoré z nich:
- Delený prístup k rozhraniu — dva „pohľady“ dostupné v Console: pre administrátorov a pre vývojárov. Režim Developer perspective skupuje objekty v prehľadnejšej forme pre vývojárov (podľa aplikácií) a orientuje rozhranie na riešenie typických úloh, ako je nasadzovanie aplikácií, sledovanie stavu zostavovania/nasadzovania a dokonca úprava kódu prostredníctvom Eclipse Che.
- Správa pracovných záťaží, siete, úložiska, práv na pristup.
- Logické rozdelenie pracovných záťaží na projekty a aplikácie. V jednej z posledných verzií — v4.3 — špeciálny Project dashboard, zobrazuje známe údaje (počet a stavy nasadení, podov atď.; spotreba zdrojov a ďalšie metriky) v rámci projektov.
- Aktualizované v reálnom čase zobrazenie stavu klastrov a uskutočnených zmien (udalostí); sledovanie logov.
- Zobrazenie monitorovacích údajov založených na Prometheus, Alertmanager a Grafana.
- Správa operátorov, ktoré sú prezentované v .
- Správa zostáv, ktoré sa vykonávajú prostredníctvom Dockeru (z uvedeného repozitára s Dockerfile), alebo ľubovoľných externých nástrojov.
Poznámka: Nepatrili sme do porovnania ďalšie distrubúcie Kubernetes (napríklad oveľa menej známy ): hoci môže byť grafické rozhranie v nich veľmi rozvinuté, zvyčajne prichádza ako súčasť integrovaného stacku veľkého systému. Ak však máte pocit, že chýbajú nejaké riešenia, ktoré plne fungujú aj vo vanilla inštalácii K8s, dajte nám vedieť v komentároch.
Bonus
1. Portainer na Kubernetes v beta verzii
- ;
- (~100 hviezd GitHub);
- Licencia: Zlib(?) (taká je u rodičovského projektu).
Projekt od tímu Portainer, ktorý vyvinul rovnomenné populárne rozhranie pre prácu s Dockerom. Keďže projekt je v počiatočnej fáze vývoja (prvá a jediná beta verzia 16. apríla 2020), nehodnotili sme jeho funkcie. Môže to však zaujať mnohých: ak ste to vy — sledujte vývoj.
2. IcePanel
- ;
- Licencia: proprietárna;
- Stručne: „Vizualizačný editor pre Kubernetes“.

Toto mladé desktopové aplikácie má za cieľ vizualizovať zdroje Kubernetes v reálnom čase a spravovať ich s jednoduchým rozhraním v štýle drag & drop. Momentálne sú podporované objekty Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap a Secret. Čoskoro sľubujú pridať podporu Helm. Hlavné nedostatky — uzavretosť kódu (očakáva sa jeho ) a absencia podpory pre Linux (zatiaľ sú k dispozícii len verzie pre Windows a macOS, hoci to je pravdepodobne len otázka času).
3. k9s
- ;
- ;
- (~7700 hviezd GitHub);
- Licencia: Apache 2.0;
- Stručne: „Konzolové rozhranie pre Kubernetes, ktoré umožňuje štýlové spravovanie klastru“.

Nástroj sa objavil len v bonusovej časti prehľadu, pretože ponúka konzolové GUI. Avšak autori doslova vytiahli maximum z terminálu, ponúkajúc nielen pohodlné rozhranie, ale aj 6 preddefinovaných tém vzhľadu, vyvinutý systém klávesových skratiek a aliasov pre príkazy. Ich dôkladný prístup sa neobmedzil len na vzhľad: možnosti k9s príjemne prekvapujú: správa zdrojov, zobrazenie stavu klastra, výstup zdrojov v hierarchickej podobe s závislosťami, prehľadovanie logov, podpora RBAC, rozšírenie možností prostredníctvom pluginov… To všetko sa páčilo širokej K8s komunite: počet hviezd na GitHub-e projektu takmer nezaostáva za oficiálnym Kubernetes Dashboardom!
4. Panely na správu aplikácií
A nakoniec prehľadu — samostatná mini-kategória. Do nej sa dostali dva webové rozhrania, určené nie na komplexnú správu Kubernetes klastra, ale na správu toho, čo je v ňom nasadené.
Ako je známe, jedným z najzrelších a najrozšírenejších nástrojov na nasadenie komplexných aplikácií v Kubernetes je Helm. Počas svojho existovania sa nahromadilo množstvo balíčkov (Helm charts) pre jednoduché nasadenie . Preto je úplne logické aj vznik príslušných vizuálnych prostriedkov, ktoré umožňujú spravovať životný cyklus chartov.
4.1. Monocular
- (1300+ hviezd GitHub);
- Licencia: Apache 2.0;
- Stručne: „Webová aplikácia na vyhľadávanie a objavovanie Helm chartov v mnohých repozitároch. Slúži ako základ pre projekt Helm hub.“

Táto vyvinutá aplikácia od autorov Helmu sa inštaluje v Kubernetes a funguje v rámci jedného klastra, plniac zadanú úlohu. Avšak v súčasnosti projekt takmer neprebieha. Jeho hlavné určenie — podpora existencie Helm Hub. Na iné účely autori odporúčajú Kubeapps (pozri ďalej) alebo Red Hat Automation Broker (časť OpenShift, ale už tiež neprebieha).
4.2. Kubeapps
- ;
- ;
- (~2100 hviezd GitHub);
- Licencia: Apache 2.0
- Stručne: „Vaša panel aplikácií pre Kubernetes.“

Produkt od Bitnami, ktorý sa tiež inštaluje v klastri Kubernetes, ale od Monocular sa líši pôvodným zameraním na prácu s privátnymi repozitármi.
Kľúčové funkcie a vlastnosti Kubeapps:
- Prehľad a inštalácia Helm chartov z repozitárov.
- Kontrola, aktualizácia a odstraňovanie aplikácií na báze Helmu, nainštalovaných v klastri.
- Podpora pre prácu s vlastnými a súkromnými repozitármi chartov (podporuje ChartMuseum a JFrog Artifactory).
- Zobrazovanie a práca s externými službami — z Service Catalog a Service Brokers.
- Publikovanie nainštalovaných aplikácií pomocou mechanizmu Service Catalog Bindings.
- Podpora autentifikácie a delenia práv pomocou RBAC.
Záverečná tabuľka
Nižšie uvádzame súhrnnú tabuľku, kde sme sa snažili zhrnúť a aglomerovať hlavné možnosti existujúcich vizuálnych rozhraní pre uľahčenie porovnávania:
(Online verzia tabuľky .)
Záver
Grafické rozhrania pre Kubernetes sú dosť špecifickou a mladou nika. Avšak sa rozvíjajú veľmi aktívne: už je možné nájsť ako dostatočne zrelé riešenia, tak aj úplne mladé, ktoré ešte majú pred sebou kus cesty. Orientujú sa na rôzne aplikácie, ponúkajúc funkcie a vzhľad takmer pre každú chuť. Dúfame, že tento prehľad pomôže pri výbere nástroja, ktorý najlepšie pokryje aktuálne potreby.
P.S.
Ďakujeme za údaje k OpenShift Console pre porovnávaciu tabuľku!
Prečítajte si tiež na našom blogu:
- «»;
- «»;
- «»;
- «».
Zdroj: habr.com
