Prehľad GUI pre Kubernetes

Prehľad GUI pre Kubernetes

Pre plnohodnotnú prácu so systémom je dôležitá znalosť utilít príkazového riadku: v prípade Kubernetes ide o kubectl. Na druhej strane dobre navrhnuté a premyslené grafické rozhrania môžu fungovaťоväčšinu bežných úloh a otvárajú ďalšie možnosti pre prevádzku systémov.

Minulý rok sme vydali preklad malý prehľad webového používateľského rozhrania pre Kubernetes, načasované tak, aby sa zhodovalo s oznámením webového rozhrania Kubernetes WebView. Autor tohto článku a samotného nástroja, Henning Jacobs zo Zalanda, práve umiestnil nový produkt ako „kubectl pre web“. Chcel vytvoriť nástroj s užívateľsky prívetivými schopnosťami na interakciu vo formáte technickej podpory (napríklad rýchle zobrazenie problému pomocou webového odkazu) a na reagovanie na incidenty, vyhľadávanie problémov v mnohých klastroch súčasne. Jeho potomstvo sa v súčasnosti rozvíja (najmä úsilím samotného autora).

Keďže obsluhujeme mnoho klastrov Kubernetes rôznych veľkostí, máme záujem aj o to, aby sme našim zákazníkom mohli poskytnúť vizuálny nástroj. Pri výbere vhodného rozhrania boli pre nás kľúčové tieto vlastnosti:

  • podpora diferenciácie užívateľských práv (RBAC);
  • vizualizácia stavu menného priestoru a štandardných primitív Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • získanie prístupu k príkazovému riadku vo vnútri modulu;
  • prezeranie denníkov strukov;
  • zobraziť stav modulov (describe status);
  • odstránenie strúčikov.

Ostatné funkcie, ako je prezeranie spotrebovaných zdrojov (v kontexte modulov / ovládačov / menných priestorov), vytváranie / úprava primitív K8s, nie sú v rámci nášho pracovného postupu relevantné.

Recenziu začneme klasickým Kubernetes Dashboard, čo je náš štandard. Keďže svet nestojí na mieste (čo znamená, že Kubernetes má stále nové a nové GUI), povieme si aj o jeho aktuálnych alternatívach, pričom všetko zhrnieme v porovnávacej tabuľke na konci článku.

NB: V recenzii sa nebudeme opakovať s tými riešeniami, ktoré už boli zvážené v posledný článok, avšak pre úplnosť sú v záverečnej tabuľke zahrnuté príslušné možnosti z neho (K8Dash, Octant, Kubernetes Web View).

1. Kubernetes Dashboard

  • Stránka dokumentácie;
  • Úložisko (8000 XNUMX+ hviezd GitHub);
  • Licencia: Apache 2.0;
  • V skratke: „Univerzálne webové rozhranie pre klastre Kubernetes. Umožňuje používateľom spravovať a odstraňovať problémy s aplikáciami bežiacimi v klastri, ako aj spravovať samotný klaster.“

Prehľad GUI pre Kubernetes

Toto je všeobecný panel pokrytý autormi Kubernetes v oficiálnej dokumentácii (ale nenasaditeľné predvolené). Je určený pre potreby každodennej prevádzky a ladenia aplikácií v klastri. Doma ho používame ako plnohodnotný odľahčený vizuálny nástroj, ktorý nám umožňuje poskytnúť vývojárom potrebný a dostatočný prístup do klastra. Jeho schopnosti pokrývajú všetky ich potreby, ktoré vznikajú v procese používania klastra (V v tomto článku demonštrovali sme niektoré funkcie panelu). Ako asi tušíte, znamená to, že spĺňa všetky naše požiadavky uvedené vyššie.

Medzi hlavné funkcie Kubernetes Dashboard:

  • Navigácia: pozrite si hlavné objekty K8 v kontexte menných priestorov.
  • Ak máte práva správcu, panel zobrazuje uzly, priestory názvov a trvalé zväzky. Pre uzly sú k dispozícii štatistiky o využití pamäte, procesora, alokácii zdrojov, metrikách, stave, udalostiach atď.
  • Zobrazte aplikácie nasadené v mennom priestore podľa ich typu (Deployment, StatefulSet atď.), vzťahov medzi nimi (ReplicaSet, Horizontal Pod Autoscaler), všeobecných a prispôsobených štatistík a informácií.
  • Zobrazte služby a vstupy, ako aj ich vzťahy s modulmi a koncovými bodmi.
  • Zobrazenie súborových objektov a úložísk: Trvalý zväzok a Nárok na trvalý zväzok.
  • Zobrazte a upravte ConfigMap a Secret.
  • Zobraziť denníky.
  • Prístup k príkazovému riadku v kontajneroch.

Významnou nevýhodou (nie však pre nás) je, že neexistuje podpora pre prácu s viacerými klastrami. Projekt je aktívne vyvíjaný komunitou a udržiava relevantné funkcie s vydaním nových verzií a špecifikácií Kubernetes API: najnovšia verzia panelu je v2.0.1 22. mája 2020 – Testované na kompatibilitu s Kubernetes 1.18.

2. šošovka

Prehľad GUI pre Kubernetes

Projekt je umiestnený ako kompletné integrované vývojové prostredie (IDE) pre Kubernetes. Navyše je optimalizovaný na prácu s mnohými klastrami a veľkým počtom modulov, ktoré v nich bežia (testované na 25 XNUMX moduloch).

Hlavné vlastnosti/možnosti objektívu:

  • Samostatná aplikácia, ktorá nevyžaduje inštaláciu ničoho vo vnútri klastra (presnejšie, na získanie všetkých metrík bude potrebný Prometheus, ale dá sa na to použiť aj existujúca inštalácia). „Hlavná“ inštalácia sa vykonáva na osobnom počítači so systémom Linux, macOS alebo Windows.
  • Správa viacerých klastrov (podporované stovky klastrov).
  • Vizualizácia stavu klastra v reálnom čase.
  • Grafy využívania zdrojov a trendy s históriou založenou na vstavanom Prometheus.
  • Prístup k príkazovému riadku kontajnerov a na klastrových uzloch.
  • Plná podpora pre Kubernetes RBAC.

Aktuálne vydanie - 3.5.0 zo dňa 16. júna 2020 Pôvodne vytvorila Kontena, dnes je všetko duševné vlastníctvo prevedené na špeciálnu organizáciu Lakeland Labs, nazvanú „únia natívnych cloudových geekov a technológov“, ktorá je zodpovedná za „uchovanie a dostupnosť softvéru a produktov s otvoreným zdrojom spoločnosti Kontena“.

Lens je druhý najpopulárnejší projekt na GitHub z kategórie GUI pre Kubernetes, ktorý „stratil“ iba samotný Kubernets Dashboard. Všetky ostatné riešenia s otvoreným zdrojom, ktoré nie sú z kategórie CLI*, sú z hľadiska popularity výrazne nižšie.

* Pozrite si informácie o K9 v bonusovej časti recenzie.

3. Kubernetic

Prehľad GUI pre Kubernetes

Ide o proprietárnu aplikáciu, ktorá je nainštalovaná na osobnom počítači (podporované sú Linux, macOS, Windows). Jeho autori sľubujú úplnú náhradu nástroja príkazového riadku as ním - nie je potrebné pamätať si príkazy a dokonca desaťnásobné zvýšenie rýchlosti.

Jednou zo zaujímavých funkcií nástroja je vstavaná podpora Helmových grafov a jednou z nevýhod je nedostatok metrík výkonu aplikácie.

Hlavné vlastnosti Kubernetic:

  • Pohodlné zobrazenie stavu klastra. Jedna obrazovka na zobrazenie všetkých súvisiacich objektov klastra a ich závislostí; červený/zelený stav pripravenosti pre všetky objekty; režim zobrazenia stavu klastra s aktualizáciami stavu v reálnom čase.
  • Tlačidlá rýchlej akcie na odstránenie a zmenu veľkosti aplikácie.
  • Podpora pre prevádzku viacerých klastrov.
  • Jednoduchá práca s mennými priestormi.
  • Podpora pre Helm grafy a Helm úložiská (vrátane súkromných). Inštalácia a správa grafov vo webovom rozhraní.

Aktuálna cena produktu je jednorazová platba 30 eur za jeho používanie jednou osobou pre ľubovoľný počet menných priestorov a klastrov.

4. Kubevious

  • webové stránky;
  • Презентация;
  • Úložisko (~ 500 hviezd GitHub);
  • Licencia: Apache 2.0
  • Stručne povedané: "Kubevious robí klastre Kubernetes, konfiguráciu aplikácií a prezeranie stavu bezpečnými a ľahko pochopiteľnými."

Prehľad GUI pre Kubernetes

Myšlienkou projektu je vytvoriť nástroj určený 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í, všeobecnejšie veci si nechali na neskôr.

Kľúčové vlastnosti a funkcie Kubevious:

  • Vizualizácia klastra spôsobom orientovaným na aplikáciu: súvisiace objekty v rozhraní sú zoskupené a usporiadané v hierarchii.
  • Vizuálne zobrazenie závislostí v konfiguráciách a kaskádové dôsledky ich zmien.
  • Zobrazenie chýb konfigurácie klastra: nesprávne použitie štítkov, zmeškané porty atď. (Mimochodom, ak máte záujem o túto funkciu, venujte pozornosť Polariso ktorých sme už napísal.)
  • Okrem predchádzajúceho bodu je k dispozícii detekcia potenciálne nebezpečných kontajnerov, t.j. mať príliš veľa privilégií (atribútov hostPID, hostNetwork, hostIPC, namontovať docker.sock atď).
  • Pokročilý systém vyhľadávania klastra (nielen podľa názvov objektov, ale aj podľa ich vlastností).
  • Nástroje na plánovanie kapacít a optimalizáciu zdrojov.
  • Vstavaný "stroj času" (možnosť vidieť predchádzajúce zmeny v konfigurácii objektov).
  • Správa RBAC s kontingenčnou prepojenou tabuľkou Role, RoleBindings, ServiceAccounts.
  • Funguje iba s jedným klastrom.

Projekt má veľmi krátku históriu (prvé vydanie prebehlo 11. februára 2020) a zdá sa, že nastalo obdobie buď stabilizácie alebo spomalenia vývoja. Ak boli predchádzajúce verzie vydávané často, potom najnovšie vydanie (v0.5 15. apríla 2020) zaostáva za počiatočným tempom vývoja. Pravdepodobne je to spôsobené malým počtom prispievateľov: v histórii úložiska sú len 4 a všetku skutočnú prácu vykonáva jeden človek.

5. Kubewise

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

Prehľad GUI pre Kubernetes

Nový produkt od VMware, pôvodne vytvorený ako súčasť interného hackathonu (v júni 2019). Nainštalovaný na osobnom počítači, funguje na základe Elektron (Podporované systémy Linux, macOS a Windows) a vyžaduje kubectl v1.14.0 alebo novší.

Hlavné vlastnosti Kubewise:

  • Interakcia rozhrania s najbežnejš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.
  • Vygenerujte vlastné súbory kubeconfig pre daný priestor názvov.
  • Pokročilé funkcie zabezpečenia (RBAC, heslá, servisné účty).

Projekt má zatiaľ len jedno vydanie – verziu 1.1.0 zo dňa 26. novembra 2019. Okrem toho autori plánovali vydať ho okamžite ako Open Source, ale kvôli interným problémom (nesúvisiacim s technickými problémami) to nemohli urobiť. Od mája 2020 autori pracujú na ďalšom vydaní a zároveň by mali začať proces otvárania kódu.

6. Otvorte konzolu Shift

Prehľad GUI pre Kubernetes

Napriek tomu, že toto webové rozhranie je súčasťou distribúcie OpenShift (inštaluje sa tam pomocou špeciálny operátor), autori poskytnuté pre možnosť inštalovať / používať ho v bežných (vanilkových) inštaláciách Kubernetes.

Konzola OpenShift bola vo vývoji už dlho, takže obsahuje veľa funkcií. Spomenieme tie hlavné:

  • Prístup so zdieľaným rozhraním – dva „perspektívy“ možností dostupných v konzole: pre správcov a pre vývojárov. Režim perspektíva vývojára zoskupuje objekty vo forme, ktorá je pre vývojárov zrozumiteľnejšia (podľa aplikácií) a zameriava rozhranie na riešenie takých typických úloh, ako je nasadenie aplikácií, sledovanie stavu zostavenia/nasadenia a dokonca aj úprava kódu prostredníctvom Eclipse Che.
  • Správa záťaže, siete, úložiska, prístupových práv.
  • Logické oddelenie úloh na projekty a aplikácie. V jednom z najnovších vydaní - v4.3 - objavil špeciálna panel projektu, ktorá zobrazuje obvyklé údaje (počet a stavy nasadení, modulov atď.; spotreba zdrojov a ďalšie metriky) v časti projektu.
  • Aktualizované v reálnom čase zobrazenie stavu klastra, zmien (udalostí), ktoré v ňom nastali; prezeranie denníkov.
  • Zobrazte údaje monitorovania založené na Prometheus, Alertmanager a Grafana.
  • Vedenie prevádzkovateľov zastúpených v operatorhub.
  • Spravujte zostavy, ktoré bežia cez Docker (zo špecifikovaného úložiska s Dockerfile), S2I alebo ľubovoľné externé nástroje.

NB: Ďalšie sme do porovnania nepridali distribúcie Kubernetes (napríklad oveľa menej známe Kubesphere): napriek tomu, že GUI v nich môže byť veľmi pokročilé, zvyčajne prichádza ako súčasť integrovaného zásobníka veľkého systému. Ak si však myslíte, že v inštalácii vanilla K8s nie je dostatok riešení, ktoré by plne fungovali, dajte nám vedieť v komentároch.

Prémie

1. Porttainer na Kubernetes v beta verzii

Projekt od tímu Portainer, ktorý vyvinul obľúbené rovnomenné rozhranie pre prácu s Dockerom. Keďže projekt je v ranom štádiu vývoja (prvá a jediná beta verzia vyšiel 16. apríla 2020) sme jeho vlastnosti nehodnotili. Mnohých to však môže zaujímať: ak ide o vás, sledujte vývoj.

2. IcePanel

  • webové stránky;
  • Licencia: vlastná;
  • V skratke: „Visual Kubernetes Editor“.

Prehľad GUI pre Kubernetes

Táto mladá desktopová aplikácia má za cieľ vizualizovať a spravovať zdroje Kubernetes v reálnom čase pomocou jednoduchého rozhrania drag & drop. Aktuálne podporované objekty sú Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap a Secret. Čoskoro sľubujú pridať podporu pre Helma. Hlavnými nevýhodami sú blízkosť kódu (očakáva sa otváranie "nejakým spôsobom") a chýbajúca podpora Linuxu (zatiaľ sú dostupné iba verzie pre Windows a macOS, aj keď je to s najväčšou pravdepodobnosťou tiež len otázkou času).

3.k9s

  • webové stránky;
  • demonštrácie;
  • Úložisko (~ 7700 hviezd GitHub);
  • Licencia: Apache 2.0;
  • V skratke: „Rozhranie konzoly pre Kubernetes, ktoré vám umožní štýlovo spravovať váš klaster.“

Prehľad GUI pre Kubernetes

Utilita bola len v bonusovej časti recenzie z dôvodu, že ponúka konzolové GUI. Autori však z terminálu doslova vyžmýkali maximum, ponúkli nielen užívateľsky prívetivé rozhranie, ale aj 6 preddefinovaných tém a pokročilý systém klávesových skratiek a príkazových aliasov. Ich dôkladný prístup sa neobmedzoval len na vzhľad: funkcie k9s sú príjemne pôsobivé: správa zdrojov, zobrazovanie stavu klastra, zobrazovanie zdrojov v hierarchickej reprezentácii so závislosťami, prezeranie protokolov, podpora RBAC, rozširovanie možností prostredníctvom pluginov... To všetko oslovilo pre širokú komunitu K8s: číslo Hviezdy projektu GitHub sú takmer také dobré ako oficiálny Kubernetes Dashboard!

4. Ovládacie panely aplikácie

A na záver recenzie - samostatná mini-kategória. Zahŕňal dve webové rozhrania určené nie na komplexnú správu klastrov Kubernetes, ale na správu toho, čo je v nich nasadené.

Ako viete, jedným z najvyspelejších a najrozšírenejších nástrojov na nasadenie zložitých aplikácií v Kubernetes je Helm. Za dobu svojej existencie sa nahromadilo veľa balíkov (Helm charts) pre jednoduché nasadenie veľa populárnych aplikácií. Preto je vzhľad vhodných vizuálnych nástrojov, ktoré vám umožňujú riadiť životný cyklus grafov, celkom logický.

4.1. Monokulárny

  • Úložisko (1300 XNUMX+ hviezd GitHub);
  • Licencia: Apache 2.0;
  • V skratke: „Webová aplikácia na vyhľadávanie a objavovanie Helmových diagramov naprieč viacerými úložiskami. Slúži ako základ pre projekt Helm hub."

Prehľad GUI pre Kubernetes

Tento vývoj od autorov Helm je nainštalovaný v Kubernetes a funguje v rámci toho istého klastra a vykonáva úlohu. V súčasnosti však projekt nie je takmer rozpracovaný. Jeho hlavným účelom je podporovať existenciu Helm Hub. Pre iné potreby autori odporúčajú Kubeapps (pozri nižšie) alebo Red Hat Automation Broker (súčasť OpenShift, ale tiež sa už nevyvíja).

4.2. Kubeapps

Prehľad GUI pre Kubernetes

Produkt od Bitnami, ktorý je tiež nainštalovaný v klastri Kubernetes, no od Monocular sa líši prvotným zameraním na prácu so súkromnými repozitármi.

Kľúčové funkcie a vlastnosti Kubeapps:

  • Zobrazenie a inštalácia Helmových grafov z repozitárov.
  • Skontrolujte, aktualizujte a odstráňte aplikácie založené na Helm nainštalované v klastri.
  • Podpora vlastných a súkromných úložísk grafov (podporuje ChartMuseum a JFrog Artifactory).
  • Prezeranie a práca s externými službami - z Katalógu služieb a Sprostredkovateľov služieb.
  • Publikovanie nainštalovaných aplikácií pomocou mechanizmu viazania katalógu služieb.
  • Podpora autentifikácie a oddelenia práv pomocou RBAC.

Súhrnná tabuľka

Nižšie je uvedená súhrnná tabuľka, v ktorej sme sa pokúsili zhrnúť a agregovať hlavné funkcie existujúcich vizuálnych rozhraní, aby sme uľahčili porovnanie:

Prehľad GUI pre Kubernetes
(Online verzia tabuľky k dispozícii v službe Dokumenty Google.)

Záver

GUI pre Kubernetes sú pomerne špecifické a mladé miesto. Rozvíja sa však veľmi aktívne: už je možné nájsť celkom vyspelé riešenia, ako aj veľmi mladé, ktoré majú stále priestor na rast. Postarajú sa o rôzne aplikácie a ponúkajú funkcie a vzhľad, aby vyhovovali takmer každému vkusu. Dúfame, že táto recenzia vám pomôže vybrať si nástroj, ktorý najlepšie vyhovuje vašim aktuálnym potrebám.

PS

Ďakujem kvap pre údaje na konzole OpenShift pre porovnávaciu tabuľku!

Prečítajte si aj na našom blogu:

Zdroj: hab.com

Pridať komentár