
Pro plnou funkčnost systému je důležité znát příkazové řádky: v případě Kubernetes to je kubectl. Na druhé straně, dobře navržené a promyšlené grafické rozhraní může vykonávat většinu běžných úloh a otevřít další možnosti při využívání systémů.oV loňském roce jsme zveřejnili překlad
krátkého přehledu webového rozhraní Kubernetes Web View Při správě mnoha Kubernetes klastrů různých velikostí jsme také měli zájem o možnost poskytování klientům nástroje pro vizuální práci. Při výběru vhodného rozhraní byly pro nás klíčové následující funkce:
podpora řízení přístupu uživatelů (RBAC);
- vizualizace stavu namespace a standardních primitiv Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- přístup k příkazové řádce uvnitř podu;
- zobrazení logů podů;
- sledování stavu podů (
- describe status
odstranění podů.); - Další funkce, jako je sledování spotřebovaných zdrojů (v oblastech podů/kontrolérů/namespace), vytváření/úpravy K8s primitiv, v rámci našeho pracovního procesu nejsou relevantní.
Přehled začneme s klasickým Kubernetes Dashboard, který je u nás přijat jako standard. Protože svět se nezastavuje (to znamená, že Kubernetes dostává stále nová GUI), povíme také o jeho aktuálních alternativách a shrneme všechno do srovnávací tabulky na konci článku.
: V přehledu se nebudeme opakovat s těmi řešeními, které již byly přezkoumány v
NB, ale — pro úplnost — byly relevantní možnosti z ní (K8Dash, Octant, Kubernetes Web View) zahrnuty do závěrečné tabulky. 1. Kubernetes Dashboard
Dokumentace stránky
- ;
- Licence: Apache 2.0;
- Licence: Apache 2.0;
- Stručně: „Univerzální webové rozhraní pro Kubernetes clustery. Umožňuje uživatelům spravovat aplikace běžící v clusteru a odstraňovat chyby, jakož i spravovat samotný cluster.“

Je to panel obecného určení, který autoři Kubernetes uvádějí v oficiální dokumentaci. (i když ve výchozím nastavení). Je určen pro každodenní provoz a ladění aplikací v clusteru. U nás jej používáme jako plnohodnotný lehký vizuální nástroj, který poskytuje vývojářům potřebný a dostatečný přístup k clusteru. Jeho možnosti pokrývají všechny jejich potřeby, které vznikají při používání clusteru. (v prezentovali jsme některé funkce panelu). Jak lze snadno odhadnout, to znamená, že splňuje všechny naše výše uvedené požadavky.
Mezi hlavní funkce Kubernetes Dashboard patří:
- Navigace: zobrazení hlavních objektů K8s napříč jmennými prostory.
- Při administrátorských právech panel zobrazuje uzly, jmenné prostory a Persistent Volumes. U uzlů jsou k dispozici statistiky využití paměti, CPU, přidělování zdrojů, metriky, stav, události atd.
- Zobrazení aplikací nasazených v jmenném prostoru podle jejich typu (Deployment, StatefulSet atd.), vazeb mezi nimi (ReplicaSet, Horizontal Pod Autoscaler), celkových a personalizovaných statistik a informací.
- Zobrazení služeb a Ingressů, jakož i jejich vazeb na pod-y a endpointy.
- Zobrazení souborových objektů a úložišť: Persistent Volume a Persistent Volume Claim.
- Zobrazení a úprava ConfigMap a Secret.
- Zobrazení logů.
- Přístup k příkazovému řádku v kontejnerech.
Významný nedostatek (ale ne pro nás)— chybí podpora pro multi-cluster provoz. Projekt se aktivně vyvíjí komunitou a podporuje aktuální funkce s vydáním nových verzí a specifikací Kubernetes API: poslední verze panelu — z 22. května 2020 — byla otestována na kompatibilitu s Kubernetes 1.18.
2. Lens
- ;
- ;
- (~4800 hvězd na GitHubu);
- Licence: MIT;
- Stručně: „Kubernetes IDE“.

Projekt se prezentuje jako plnohodnotné integrované vývojové prostředí (IDE) pro Kubernetes, přičemž je optimalizováno pro práci s mnoha clustery a velkým počtem v nich spuštěných podů (o-testováno na 25 tisících podech).
Hlavní funkce/možnosti Lens:
- Autonomní aplikace, která nevyžaduje instalaci čehokoliv uvnitř clusteru (přesněji, pro získání všech metrik bude potřeba Prometheus, ale pro to lze použít i existující instalaci). „Hlavní“ instalace se provádí na osobním počítači pod Linuxem, macOS nebo Windows.
- Multiclusterové řízení (podporuje stovky clusterů).
- Vizualizace stavu clusteru v reálném čase.
- Grafy využití zdrojů a trendy s historií na základě integrovaného Prometheu.
- Přístup k příkazovému řádku kontejnerů a uzlům clusteru.
- Plná podpora Kubernetes RBAC.
Aktuální verze — od 16. června 2020. Původní verzi vytvořila společnost Kontena, a dnes byla veškerá duševní vlastnictví převedena do speciální organizace , která se nazývá „sdružení cloud native nadšenců a techniků“, a která zajišťuje „uchování a dostupnost Open Source softwaru a produktů Kontena“.
Lens je druhý nejpopulárnější projekt na GitHubu v kategorii GUI pro Kubernetes, „ustupující“ pouze samotnému Kubernets Dashboardu. Všechny ostatní Open Source řešení mimo kategorii CLI* značně zaostávají v popularitě.
* Viz K9s v bonusové části přehledu.
3. Kubernetic
- ;
- ;
- (200+ hvězd GitHubu);
- Licence: proprietární;
- Stručně: „Jednoduché řízení clusteru“.

Jedná se o proprietární aplikaci, která se instaluje na osobní počítač (podporovány Linux, macOS, Windows). Její autoři slibují plnou náhradu utilit příkazového řádku, a spolu s tím — absenci potřeby pamatovat si příkazy a dokonce desetinásobné zvýšení rychlosti práce.
Jednou z zajímavých funkcí nástroje je integrovaná podpora Helm chartů, a jedním z nedostatků je absence metrik výkonnosti aplikací.
Hlavní funkce Kubernetic:
- Pohodlné zobrazení stavu clusteru. Jeden ekran pro prohlížení všech souvisejících objektů clusteru a jejich závislostí; červený/zelený stav připravenosti pro všechny objekty; režim prohlížení stavu clusteru s aktualizací stavu v reálném čase.
- Rychlá akční tlačítka pro odstranění a škálování aplikace.
- Podpora vícclusterového provozu.
- Jednoduchá práce s namespace.
- Podpora Helm chartů a Helm repozitářů (včetně privátních). Instalace a správa chartů v webovém rozhraní.
Aktuální cena produktu – jednorázová platba ve výši 30 eur za jeho využití jednou osobou pro libovolný počet názvových prostorů a klastrů.
4. Kubevious
- ;
- ;
- (~500 hvězd na GitHubu);
- Licence: Apache 2.0
- Stručně: „Kubevious činí clustery Kubernetes, konfiguraci aplikací a sledování jejich stavu bezpečnými a snadno pochopitelnými.“

Cílem projektu je vytvoření nástroje určeného pro analýzu a debuggování konfigurací aplikací nasazených v klastru. Autoři se nejprve soustředili na implementaci těchto funkcí a obecné záležitosti nechali na později.
Hlavní funkce a charakteristiky Kubevious:
- Vizualizace clustera způsobem orientovaným na aplikace: vzájemně propojené objekty v rozhraní jsou seskupovány a uspořádány do hierarchie.
- Přehledné zobrazení závislostí v konfiguracích a kaskádních důsledků jejich změn.
- Zobrazení chyb konfigurace clustera: nesprávné používání štítků, chybějící porty apod. (Mimochodem, pokud vás tato funkce zajímá, věnujte pozornost , o kterém jsme .)
- Kromě výše uvedeného - je k dispozici detekce potenciálně nebezpečných kontejnerů, tj. těch, které mají příliš vysoké oprávnění (atributy
hostPID,hostNetwork,hostIPC, montovánídocker.socka podobně). - Pokročilý systém vyhledávání v clusterech (nejen podle názvů objektů, ale i podle jejich vlastností).
- Nástroje pro plánování kapacit a optimalizaci zdrojů.
- Vestavěný "časový stroj" (možnost vidět dříve provedené změny konfigurace objektů).
- Správa RBAC pomocí souhrnné propojené tabulky z Roles, RoleBindings, ServiceAccounts.
- Funguje pouze s jedním klastrem.
Projekt má velmi krátkou historii (první vydání se konalo 11. února 2020) a zdá se, že nastal období buď stabilizace, nebo zpomalení ve vývoji. Zatímco předchozí verze byly vydávány často, poslední vydání ( z 15. dubna 2020) zaostává za počátečním tempem vývoje. Snad je to způsobeno malým počtem přispěvatelů: v historii repozitáře jich je pouze 4, a veškerá faktická práce se odvádí jednou osobou.
5. Kubewise
- ;
- Licence: proprietární (stane se Open Source);
- Stručně: „Jednoduchý multiplatformní klient pro Kubernetes.“

Nový produkt od společnosti VMware, původně vyvinutý v rámci interního hackathonu (v červnu 2019). Instaluje se na osobní počítač, funguje na základě (podporuje Linux, macOS a Windows) a vyžaduje kubectl alespoň verze v1.14.0.
Hlavní funkce Kubewise:
- Interakce v rozhraní s nejčastěji používanými entitami Kubernetes: uzly, jmenné prostory atd.
- Podpora více kubeconfig souborů pro různé klastry.
- Terminál s možností nastavení proměnné prostředí
KUBECONFIG. - Generování vlastních kubeconfig souborů pro určený jmenný prostor.
- Pokročilé možnosti zabezpečení (RBAC, hesla, účty služeb).
Zatím má projekt pouze jedno vydání — verzi z 26. listopadu 2019. Přičemž autoři plánovali ihned vydat jako Open Source, nicméně kvůli interním problémům (nesouvisejícím s technickými otázkami) to nedokázali. K mému datu v květnu 2020 autoři pracují na dalším vydání a současně by měli zahájit proces otevření kódu.
6. OpenShift Console
- ;
- (~150 hvězd na GitHubu);
- Licence: Apache 2.0;
- Stručně: „UI pro OpenShift klastry.“

Ačkoliv je toto webové rozhraní součástí distribuce OpenShift (instaluje se tam pomocí ), autoři možnost jeho instalace/používání i v obyčejných (vanilla) instalacích Kubernetes.
OpenShift Console se vyvíjí již dlouho, a proto obsahuje mnoho funkcí. Zde zmíníme hlavní z nich:
- Dělený přístup k rozhraní — dvě „perspektivy“ dostupné v Console: pro administrátory a pro vývojáře. Režim Developer perspective skupinou objekty do více srozumitelného formátu pro vývojáře (podle aplikací) a orientuje rozhraní na řešení typických úkolů, jako je nasazení aplikací, sledování stavu sestavení/nasazení a dokonce úpravy kódu prostřednictvím Eclipse Che.
- Správa pracovních zátěží, sítí, úložišť, přístupových práv.
- Logické rozdělení pro pracovní zátěže na projekty a aplikace. V jedné z posledních verzí — v4.3 — speciální Project dashboard, zobrazuje známé údaje (počet a stavy deploymentů, podů atd.; spotřebu zdrojů a další metriky) v rámci projektů.
- Aktualizované v reálném čase zobrazení stavu clustera a provedených změn (událostí); prohlížení protokolů.
- Prohlížení dat monitorování založeného na Prometheus, Alertmanager a Grafana.
- Správa operatorů, které jsou představeny v .
- Správa sestavení, která probíhají prostřednictvím Dockeru (z uvedeného repozitáře s Dockerfile), nebo libovolných externích nástrojů.
NB: Nerozhodli jsme se zahrnout do srovnání další distribuce Kubernetes (například mnohem méně známé ): i když grafické rozhraní v nich může být velmi pokročilé, obvykle je součástí integrovaného stacku velkého systému. Pokud si však myslíte, že nějaká řešení, plně funkční i ve vanilla instalaci K8s, chybí — dejte nám vědět v komentářích.
Bonus
1. Portainer na Kubernetes v beta verzi
- ;
- (přibližně 100 hvězd GitHub);
- Licence: Zlib(?) (taková má mateřský projekt).
Projekt od týmu Portainer, který vyvinul stejnojmenné populární rozhraní pro práci s Dockerem. Vzhledem k tomu, že projekt je v rané fázi vývoje (první a jediná beta verze 16. dubna 2020), nerozhodli jsme se hodnotit jeho funkce. Může však zajímat mnohé: pokud jste to vy — sledujte vývoj.
2. IcePanel
- ;
- Licence: proprietární;
- Stručně: „Vizuální editor Kubernetes“.

Toto mladé desktopové aplikace má za cíl vizualizovat zdroje Kubernetes v reálném čase a spravovat je prostřednictvím jednoduchého rozhraní ve stylu drag & drop. Momentálně jsou podporovány objekty jako Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap a Secret. V brzké době slibují přidání podpory pro Helm. Hlavní nevýhody — uzavřený kód (očekává se jeho ) a nedostatek podpory pro Linux (zatím jsou dostupné pouze verze pro Windows a macOS, i když to je pravděpodobně také jen otázka času).
3. k9s
- ;
- ;
- (přibližně 7700 hvězd GitHub);
- Licence: Apache 2.0;
- Stručně: „Konzolové rozhraní pro Kubernetes, které umožňuje stylově spravovat cluster.“

Nástroj se objevil pouze v bonusové části recenze, protože nabízí konzolové GUI. Autoři však doslova vytěžili maximum z terminálu, nabízející nejen pohodlné rozhraní, ale také 6 předdefinovaných motivů, rozvinutý systém klávesových zkratek a aliasů pro příkazy. Jejich důkladný přístup se neomezil pouze na vzhled: možnosti k9s příjemně překvapují: správa zdrojů, zobrazování stavu clusteru, výstup zdrojů v hierarchickém zobrazení se závislostmi, prohlížení logů, podpora RBAC, rozšíření možností prostřednictvím pluginů... To vše potěšilo širokou komunitu K8s: počet hvězd na GitHubu projektu se prakticky rovná oficiálnímu Kubernetes Dashboard!
4. Řídicí panely aplikací
Na závěr recenze — samostatná mini-kategorie. Obsahuje dvě webová rozhraní, která nejsou určena pro komplexní správu Kubernetes clusterů, ale pro správu toho, co se v nich nasazuje.
Jak je známo, jedním z nejzralejších a nejrozšířenějších nástrojů pro nasazení komplexních aplikací v Kubernetes je Helm. Během své existence se nahromadilo mnoho balíčků (Helm charts) pro jednoduché nasazení . Proto je zcela logické, že se objevují také odpovídající vizuální nástroje, které umožňují spravovat životní cyklus chartů.
4.1. Monocular
- (1300+ hvězd na GitHubu);
- Licence: Apache 2.0;
- Stručně: „Webová aplikace pro vyhledávání a objevování Helm chartů v mnoha repozitářích. Slouží jako základ pro projekt Helm hub.“

Tato vyvinutá aplikace od autorů Helmu se instaluje v Kubernetes a funguje v rámci jednoho clusteru, plnící stanovený úkol. Aktuálně se však projekt skoro nevyvíjí. Jeho hlavním určením je podpora existence Helm Hub. Pro jiné potřeby autoři doporučují Kubeapps (viz dále) nebo Red Hat Automation Broker (část OpenShift, ale také již není v aktivním vývoji).
4.2. Kubeapps
- ;
- ;
- (~2100 hvězd na GitHubu);
- Licence: Apache 2.0
- Stručně: „Vaše řídicí panel aplikací pro Kubernetes.“

Produkt od Bitnami, který se také instaluje do clusteru Kubernetes, ale na rozdíl od Monocularu se od samého začátku zaměřuje na práci s privátními repozitáři.
Klíčové funkce a vlastnosti Kubeapps:
- Prohlížení a instalace Helm chartů z repozitářů.
- Kontrola, aktualizace a odstraňování aplikací založených na Helmu, které jsou nainstalovány v clusteru.
- Podpora pro práci s vlastními a soukromými repozitáři chartů (podporuje ChartMuseum a JFrog Artifactory).
- Prohlížení a práce s externími službami — ze Service Catalog a Service Brokers.
- Publikování nainstalovaných aplikací pomocí mechanismu Service Catalog Bindings.
- Podpora autentifikace a dělení práv pomocí RBAC.
Konečná tabulka
Níže uvedená souhrnná tabulka se snaží shrnout a agregovat hlavní schopnosti stávajících vizuálních rozhraní pro usnadnění srovnání:
(Online verze tabulky .)
Závěr
Grafická rozhraní pro Kubernetes jsou poměrně specifickou a mladou oblastí. Nicméně se vyvíjejí velmi aktivně: již lze najít jak dostatečně zralá řešení, tak i zcela nová, která ještě mají před sebou dlouhou cestu. Orientují se na různé možnosti použití, nabízejí funkce a vzhled prakticky pro každý vkus. Doufáme, že tento přehled pomůže vybrat nástroj, který nejlépe pokryje aktuální potřeby.
P.S.
Děkujeme za údaje o OpenShift Console pro srovnávací tabulku!
Přečtěte si také náš blog:
- «»;
- «»;
- «»;
- «».
Zdroj: habr.com
