Prehľad grafických rozhraní pre Kubernetes

Prehľad grafických rozhraní pre Kubernetes

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 pre Kubernetes, ktorý bol zverejnený spolu s oznámením webového rozhrania Kubernetes Web View . Autorom toho článku a samotného nástroja je Henning Jacobs zo spoločnosti Zalando, ktorý presne pozicionoval novinku ako „kubectl pre web“. Cieľom bolo vytvoriť nástroj s pohodlnými možnosťami pre interakciu vo formáte technickej podpory (napríklad rýchlo ukázať problém prostredníctvom webového odkazu) a na reakciu na incidenty, hľadanie problémov v mnohých klastroch súčasne. Jeho výtvor sa vyvíja aj v súčasnosti (predovšetkým sám autor).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 statusodstrá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. v minulom článku1. Kubernetes Dashboard

Stránka dokumentácie

  • (8000+ hviezd GitHub);;
  • Repozitár 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.“

Prehľad grafických rozhraní pre Kubernetes

Toto je panel všeobecného určenia, ktorý autory Kubernetes považujú v oficiálnej dokumentácii. (aj keď nie je nasadzovaný 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 tomto článku 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 – v2.0.1 z 22. mája 2020 – bola testovaná na kompatibilitu s Kubernetes 1.18.

2. Lens

Prehľad grafických rozhraní pre Kubernetes

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 — 3.5.0 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 Lakend Labs, 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

Prehľad grafických rozhraní pre Kubernetes

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

  • Webová stránka;
  • Prezentácia;
  • Repozitár (~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."

Prehľad grafických rozhraní pre Kubernetes

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 Polaris, o ktorom sme už písali.)
  • 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, pripojenie docker.sock a 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 (v0.5 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

  • Stránka projektu;
  • Licencia: proprietárna (stane sa Open Source);
  • V skratke: "Jednoduchý multiplatformový klient pre Kubernetes."

Prehľad grafických rozhraní 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 Electron (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 1.1.0 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

Prehľad grafických rozhraní pre Kubernetes

Napriek tomu, že toto webové rozhranie je súčasťou distribúcie OpenShift (inštaluje sa pomocou špeciálneho operátora), autori predpokladali 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 — sa objavil š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 OperatorHub.
  • Správa zostáv, ktoré sa vykonávajú prostredníctvom Dockeru (z uvedeného repozitára s Dockerfile), S2I 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 Kubesphere): 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

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 vyšla 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

  • Webová stránka;
  • Licencia: proprietárna;
  • Stručne: „Vizualizačný editor pre Kubernetes“.

Prehľad grafických rozhraní 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 otvorenie „v nejakej podobe“) 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

Prehľad grafických rozhraní pre Kubernetes

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 mnohých populárnych aplikácií. Preto je úplne logické aj vznik príslušných vizuálnych prostriedkov, ktoré umožňujú spravovať životný cyklus chartov.

4.1. Monocular

  • Repozitár (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.“

Prehľad grafických rozhraní pre Kubernetes

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

Prehľad grafických rozhraní 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:

Prehľad grafických rozhraní pre Kubernetes
(Online verzia tabuľky je k dispozícii v Google Docs.)

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 kvaps za údaje k OpenShift Console pre porovnávaciu tabuľku!

Prečítajte si tiež na našom blogu:

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster