Přehled GUI pro Kubernetes

Přehled GUI pro Kubernetes

Pro plnohodnotnou práci se systémem je důležitá znalost utilit příkazového řádku: v případě Kubernetes je to kubectl. Na druhou stranu dobře navržená a promyšlená grafická rozhraní mohou fungovatоvětšinu obvyklých úkolů a otevírají další možnosti pro provoz systémů.

Minulý rok jsme vydali překlad malý přehled webového uživatelského rozhraní pro Kubernetes, načasované tak, aby se shodovalo s oznámením webového rozhraní Kubernetes WebView. Autor tohoto článku a samotného nástroje, Henning Jacobs ze Zalanda, právě umístil nový produkt jako „kubectl pro web“. Chtěl vytvořit nástroj s uživatelsky přívětivými možnostmi pro interakci ve formátu technické podpory (například rychlé zobrazení problému pomocí webového odkazu) a pro reakci na incidenty, vyhledávání problémů v mnoha clusterech současně. Jeho potomstvo se v současné době rozvíjí (především úsilím samotného autora).

Protože obsluhujeme mnoho clusterů Kubernetes různých velikostí, máme také zájem poskytovat našim zákazníkům vizuální nástroj. Při výběru vhodného rozhraní pro nás byly klíčové následující vlastnosti:

  • podpora diferenciace uživatelských práv (RBAC);
  • vizualizace stavu jmenného prostoru a standardních primitiv Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • získání přístupu k příkazovému řádku uvnitř modulu;
  • prohlížení protokolů lusků;
  • zobrazit stav podů (describe status);
  • odstranění lusků.

Další funkce, jako je prohlížení spotřebovaných zdrojů (v kontextu modulů / ovladačů / jmenných prostorů), vytváření / úpravy primitiv K8s, nejsou v našem pracovním postupu relevantní.

Recenzi začneme klasickým Kubernetes Dashboard, což je náš standard. Vzhledem k tomu, že svět nestojí na místě (což znamená, že Kubernetes má stále více nových GUI), povíme si také o jeho aktuálních alternativách, přičemž vše shrneme do srovnávací tabulky na konci článku.

NB: V recenzi se nebudeme opakovat s těmi řešeními, která již byla zvažována poslední článek, nicméně pro úplnost jsou příslušné možnosti z něj (K8Dash, Octant, Kubernetes Web View) zahrnuty ve výsledné tabulce.

1. Kubernetes Dashboard

  • Stránka dokumentace;
  • úložiště (8000+ hvězd GitHub);
  • Licence: Apache 2.0;
  • Stručně řečeno: „Univerzální webové rozhraní pro clustery Kubernetes. Umožňuje uživatelům spravovat a odstraňovat problémy s aplikacemi běžícími v clusteru a také spravovat cluster samotný.“

Přehled GUI pro Kubernetes

Toto je panel pro obecné použití, který autoři Kubernetes pokrývají v oficiální dokumentaci (ale nenasaditelný výchozí). Je určen pro potřeby každodenního provozu a ladění aplikací v clusteru. Doma jej používáme jako plnohodnotný odlehčený vizuální nástroj, který nám umožňuje poskytnout vývojářům potřebný a dostatečný přístup ke clusteru. Jeho schopnosti pokrývají všechny jejich potřeby, které vznikají v procesu používání clusteru (v tento článek demonstrovali jsme některé funkce panelu). Jak asi tušíte, znamená to, že splňuje všechny naše požadavky uvedené výše.

Mezi hlavní funkce Kubernetes Dashboard:

  • Navigace: zobrazení hlavních objektů K8 v kontextu jmenných prostorů.
  • Pokud máte práva správce, panel zobrazuje uzly, jmenné prostory a trvalé svazky. Pro uzly jsou k dispozici statistiky o využití paměti, procesoru, alokaci zdrojů, metrikách, stavu, událostech atd.
  • Zobrazení aplikací nasazených ve jmenném prostoru podle jejich typu (Deployment, StatefulSet atd.), vztahů mezi nimi (ReplicaSet, Horizontal Pod Autoscaler), obecných a personalizovaných statistik a informací.
  • Zobrazte služby a vstupy a také jejich vztahy s moduly a koncovými body.
  • Zobrazení objektů souborů a úložišť: Trvalý svazek a Trvalý svazek.
  • Prohlížejte a upravujte ConfigMap a Secret.
  • Zobrazit protokoly.
  • Přístup k příkazovému řádku v kontejnerech.

Významnou nevýhodou (ne však pro nás) je, že chybí podpora pro práci s více clustery. Projekt je aktivně vyvíjen komunitou a udržuje relevantní funkce s vydáním nových verzí a specifikací Kubernetes API: nejnovější verze panelu je v2.0.1 22. května 2020 – Testováno na kompatibilitu s Kubernetes 1.18.

2. čočka

Přehled GUI pro Kubernetes

Projekt je umístěn jako kompletní integrované vývojové prostředí (IDE) pro Kubernetes. Navíc je optimalizován pro práci s mnoha clustery a velkým počtem podů, které v nich běží (testováno na 25 XNUMX podech).

Hlavní vlastnosti/schopnosti objektivu:

  • Samostatná aplikace, která nevyžaduje instalaci čehokoli uvnitř clusteru (přesněji bude pro získání všech metrik vyžadován Prometheus, ale lze k tomu použít i existující instalaci). „Hlavní“ instalace se provádí na osobním počítači se systémem Linux, macOS nebo Windows.
  • Správa více clusterů (podporovány stovky clusterů).
  • Vizualizace stavu clusteru v reálném čase.
  • Grafy využití zdrojů a trendy s historií založenou na vestavěném Prometheus.
  • Přístup k příkazovému řádku kontejnerů a na uzlech clusteru.
  • Plná podpora pro Kubernetes RBAC.

Aktuální vydání - 3.5.0 ze dne 16. června 2020 Původně vytvořila Kontena, dnes bylo veškeré duševní vlastnictví převedeno na speciální organizaci Laboratoře Lakend, nazvaný „svaz cloudových nativních geeků a technologů“, který je zodpovědný za „uchování a dostupnost softwaru a produktů s otevřeným zdrojovým kódem společnosti Kontena“.

Lens je druhým nejoblíbenějším projektem na GitHubu z kategorie GUI pro Kubernetes, který „ztratil“ pouze samotný Kubernets Dashboard. Všechna ostatní řešení s otevřeným zdrojovým kódem, která nejsou z kategorie CLI*, jsou v popularitě výrazně nižší.

* Viz o K9 v bonusové části recenze.

3. Kubernetic

Přehled GUI pro Kubernetes

Jedná se o proprietární aplikaci, která se instaluje na osobní počítač (podporovány jsou Linux, macOS, Windows). Jeho autoři slibují kompletní nahrazení nástroje příkazového řádku a s ním - bez nutnosti pamatovat si příkazy a dokonce desetinásobné zvýšení rychlosti.

Jednou ze zajímavých funkcí nástroje je vestavěná podpora Helmových grafů a jednou z nevýhod je chybějící metrika výkonu aplikace.

Hlavní vlastnosti Kubernetic:

  • Pohodlné zobrazení stavu clusteru. Jedna obrazovka pro zobrazení všech souvisejících objektů clusteru a jejich závislostí; červený/zelený stav připravenosti pro všechny objekty; režim zobrazení stavu clusteru s aktualizacemi stavu v reálném čase.
  • Tlačítka rychlých akcí pro odstranění a změnu velikosti aplikace.
  • Podpora provozu s více clustery.
  • Jednoduchá práce s jmennými prostory.
  • Podpora pro Helm grafy a Helm úložiště (včetně soukromých). Instalace a správa grafů ve webovém rozhraní.

Aktuální cena produktu je jednorázová platba 30 eur za jeho použití jednou osobou pro libovolný počet jmenných prostorů a clusterů.

4. Kubevious

  • Site;
  • Prezentace;
  • úložiště (~500 hvězd GitHub);
  • Licence: Apache 2.0
  • Stručně řečeno: "Kubevious dělá clustery Kubernetes, konfiguraci aplikací a zobrazení stavu bezpečnými a snadno pochopitelnými."

Přehled GUI pro Kubernetes

Myšlenkou projektu je vytvořit nástroj určený k analýze a ladění konfigurací aplikací nasazených v clusteru. Autoři se zaměřili především na implementaci těchto funkcí, obecnější věci si nechali na později.

Klíčové vlastnosti a funkce Kubevious:

  • Clusterová vizualizace způsobem zaměřeným na aplikace: související objekty v rozhraní jsou seskupeny a seřazené v hierarchii.
  • Vizuální zobrazení závislostí v konfiguracích a kaskádové důsledky jejich změn.
  • Zobrazení chyb konfigurace clusteru: zneužití štítků, ztracené porty atd. (Mimochodem, pokud vás tato funkce zajímá, věnujte pozornost Polariso kterých my již napsal.)
  • Kromě předchozího bodu je k dispozici detekce potenciálně nebezpečných kontejnerů, tzn. mít příliš mnoho privilegií (atributů hostPID, hostNetwork, hostIPC, namontovat docker.sock atd).
  • Pokročilý vyhledávací systém pro cluster (nejen podle názvů objektů, ale také podle jejich vlastností).
  • Nástroje pro plánování kapacit a optimalizaci zdrojů.
  • Vestavěný "stroj času" (možnost vidět předchozí změny v konfiguraci objektů).
  • Správa RBAC s kontingenční propojenou tabulkou rolí, vazeb rolí, servisních účtů.
  • Pracuje pouze s jedním clusterem.

Projekt má velmi krátkou historii (první vydání proběhlo 11. února 2020) a zdá se, že nastalo období buď stabilizace, nebo zpomalení vývoje. Pokud byly předchozí verze vydávány často, pak nejnovější vydání (v0.5 15. dubna 2020) zaostává za počátečním tempem vývoje. Je to pravděpodobně způsobeno malým počtem přispěvatelů: v historii úložiště jsou pouze 4 a veškerou skutečnou práci dělá jeden člověk.

5. Kubewise

  • Stránka projektu;
  • Licence: proprietární (stane se Open Source);
  • Stručně řečeno: "Jednoduchý multiplatformní klient pro Kubernetes."

Přehled GUI pro Kubernetes

Nový produkt od VMware, původně vytvořený jako součást interního hackathonu (v červnu 2019). Instalováno na osobním počítači, funguje na základě Elektron (Podporovány Linux, macOS a Windows) a vyžaduje kubectl v1.14.0 nebo novější.

Hlavní vlastnosti Kubewise:

  • Interakce rozhraní s nejběžněji používanými entitami Kubernetes: uzly, jmenné prostory atd.
  • Podpora více souborů kubeconfig pro různé clustery.
  • Terminál s možností nastavení proměnné prostředí KUBECONFIG.
  • Vygenerujte vlastní soubory kubeconfig pro daný jmenný prostor.
  • Pokročilé funkce zabezpečení (RBAC, hesla, servisní účty).

Projekt má zatím pouze jedno vydání – verzi 1.1.0 ze dne 26. listopadu 2019. Autoři navíc plánovali jeho okamžité vydání jako Open Source, ale kvůli interním problémům (nesouvisejícím s technickými problémy) to nemohli udělat. Od května 2020 autoři pracují na dalším vydání a zároveň by měli zahájit proces otevírání kódu.

6. Otevřete konzolu Shift

Přehled GUI pro Kubernetes

Navzdory tomu, že toto webové rozhraní je součástí distribuce OpenShift (tam se instaluje pomocí speciální operátor), autoři předpokládané možnost nainstalovat / používat jej v normálních (vanilla) instalacích Kubernetes.

OpenShift Console se vyvíjela dlouhou dobu, takže obsahuje mnoho funkcí. Zmíníme ty hlavní:

  • Přístup ke sdílenému rozhraní – dvě „perspektivy“ možností dostupných v konzole: pro administrátory a pro vývojáře. Režim perspektiva vývojáře seskupuje objekty ve formě, která je srozumitelnější pro vývojáře (podle aplikací) a zaměřuje rozhraní na řešení takových typických úkolů, jako je nasazování aplikací, sledování stavu sestavení/nasazení a dokonce i úpravy kódu prostřednictvím Eclipse Che.
  • Správa zátěže, sítě, úložiště, přístupových práv.
  • Logické rozdělení zátěže na projekty a aplikace. V jedné z nejnovějších verzí - v4.3 - objevil speciální řídicí panel projektu, která zobrazuje obvyklá data (počet a stavy nasazení, podů atd.; spotřeba zdrojů a další metriky) v projektovém řezu.
  • Aktualizováno v reálném čase zobrazení stavu clusteru, změn (událostí), které v něm nastaly; prohlížení protokolů.
  • Prohlédněte si monitorovací data založená na Prometheus, Alertmanager a Grafana.
  • Vedení operátorů zastoupených v operatorhub.
  • Správa sestavení, která běží přes Docker (z určeného úložiště s Dockerfile), S2I nebo libovolné externí nástroje.

NB: Další jsme do srovnání nepřidávali distribuce Kubernetes (například mnohem méně známý Kubesphere): navzdory skutečnosti, že GUI v nich může být velmi pokročilé, obvykle přichází jako součást integrovaného zásobníku velkého systému. Pokud si však myslíte, že v instalaci vanilla K8s není dostatek řešení, která plně fungují, dejte nám vědět v komentářích.

prémie

1. Porttainer na Kubernetes v beta verzi

  • Site;
  • úložiště (~100 hvězd GitHub);
  • Licence: Zlib(?) (totéž pro nadřazený projekt).

Projekt týmu Portainer, který vyvinul oblíbené stejnojmenné rozhraní pro práci s Dockerem. Protože je projekt v rané fázi vývoje (první a jediná beta verze vyjít 16. dubna 2020) jsme jeho vlastnosti nehodnotili. Mnohé to však může zajímat: pokud jde o vás, sledujte vývoj.

2. IcePanel

  • Site;
  • Licence: proprietární;
  • Stručně řečeno: „Visual Kubernetes Editor“.

Přehled GUI pro Kubernetes

Tato mladá desktopová aplikace si klade za cíl vizualizovat a spravovat zdroje Kubernetes v reálném čase pomocí jednoduchého rozhraní drag & drop. Aktuálně podporované objekty jsou Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap a Secret. Brzy slíbí, že přidají podporu pro Helma. Hlavní nevýhodou je blízkost kódu (očekává se otevírání "nějakým způsobem") a chybějící podpora Linuxu (zatím jsou k dispozici pouze verze pro Windows a macOS, i když i to je s největší pravděpodobností jen otázkou času).

3.k9s

  • Site;
  • Ukázka;
  • úložiště (~7700 hvězd GitHub);
  • Licence: Apache 2.0;
  • Stručně řečeno: „Rozhraní konzoly pro Kubernetes, které vám umožní stylově spravovat váš cluster.“

Přehled GUI pro Kubernetes

Utilita byla pouze v bonusové části recenze z toho důvodu, že nabízí konzolové GUI. Autoři však z terminálu doslova vyždímali maximum, nabídli nejen uživatelsky přívětivé rozhraní, ale také 6 předdefinovaných témat a pokročilý systém klávesových zkratek a příkazových aliasů. Jejich důkladný přístup se neomezoval jen na vzhled: funkce k9s jsou příjemně působivé: správa zdrojů, zobrazení stavu clusteru, zobrazení zdrojů v hierarchické reprezentaci se závislostmi, prohlížení logů, podpora RBAC, rozšiřování možností pomocí pluginů... To vše lákalo pro širokou komunitu K8s: číslo Hvězdy projektu GitHub jsou téměř tak dobré jako oficiální Kubernetes Dashboard!

4. Ovládací panely aplikace

A na závěr recenze - samostatná minikategorie. Zahrnoval dvě webová rozhraní určená nikoli pro komplexní správu clusterů Kubernetes, ale pro správu toho, co je v nich nasazeno.

Jak víte, jedním z nejvyspělejších a nejrozšířenějších nástrojů pro nasazování složitých aplikací v Kubernetes je Helm. Za dobu jeho existence se nashromáždilo mnoho balíčků (Helm charts) pro snadné nasazení mnoho populárních aplikací. Proto je vzhled vhodných vizuálních nástrojů, které vám umožní řídit životní cyklus grafů, zcela logický.

4.1. Monokulární

  • úložiště (1300+ hvězd GitHub);
  • Licence: Apache 2.0;
  • Stručně řečeno: „Webová aplikace pro vyhledávání a objevování Helmových diagramů napříč více úložišti. Slouží jako základ pro projekt Helm hub."

Přehled GUI pro Kubernetes

Tento vývoj od autorů Helmu je nainstalován v Kubernetes a funguje v rámci stejného clusteru a plní úlohu. V současné době však není projekt téměř rozpracován. Jeho hlavním účelem je podpořit existenci Helm Hub. Pro další potřeby autoři doporučují Kubeapps (viz níže) nebo Red Hat Automation Broker (součást OpenShift, ale také již nevyvíjená).

4.2. Kubeapps

  • Site;
  • Prezentace;
  • úložiště (~2100 hvězd GitHub);
  • Licence: Apache 2.0
  • Stručně řečeno: "Váš aplikační panel pro Kubernetes."

Přehled GUI pro Kubernetes

Produkt od Bitnami, který je také nainstalován v clusteru Kubernetes, ale od Monocular se liší počátečním zaměřením na práci se soukromými repozitáři.

Klíčové funkce a vlastnosti Kubeapps:

  • Prohlížejte a instalujte grafy Helm z úložišť.
  • Zkontrolujte, aktualizujte a odeberte aplikace založené na Helm nainstalované v clusteru.
  • Podpora vlastních a soukromých úložišť grafů (podporuje ChartMuseum a JFrog Artifactory).
  • Prohlížení a práce s externími službami - z Katalogu služeb a Service Brokers.
  • Publikování nainstalovaných aplikací pomocí mechanismu vazby katalogu služeb.
  • Podpora autentizace a oddělení práv pomocí RBAC.

Souhrnná tabulka

Níže je uvedena souhrnná tabulka, ve které jsme se pokusili shrnout a agregovat hlavní funkce stávajících vizuálních rozhraní, abychom usnadnili srovnání:

Přehled GUI pro Kubernetes
(Online verze tabulky k dispozici v Dokumentech Google.)

Závěr

GUI pro Kubernetes jsou poměrně specifická a mladá nika. Rozvíjí se však velmi aktivně: již nyní je možné nacházet jak zcela vyspělá řešení, tak velmi mladá, která mají stále prostor k růstu. Zaměřují se na různé aplikace a nabízejí funkce a vzhled, aby vyhovovaly téměř každému vkusu. Doufáme, že vám tato recenze pomůže vybrat nástroj, který nejlépe vyhovuje vašim aktuálním potřebám.

PS

Děkuji kvaps pro data na OpenShift Console pro srovnávací tabulku!

Přečtěte si také na našem blogu:

Zdroj: www.habr.com

Přidat komentář