A Kubernetes grafikus felületeinek áttekintése

A Kubernetes grafikus felületeinek áttekintése

A rendszer teljes körű működéséhez fontos a parancssori segédprogramok ismerete: Kubernetes esetében ez a kubectl. Másrészt, a jól megtervezett, átgondolt grafikus felhasználói felületek el tudják végezni a szokásos feladatok nagy részét és további lehetőségeket nyithatnak meg a rendszerek üzemeltetése során.óA múlt évben kiadtuk a webes felület rövid áttekintésének fordítását,

mely a Kubernetes webes interfész bejelentéséhez kapcsolódott, Kubernetes Web View. A cikk szerzője és a program fejlesztője, Henning Jacobs a Zalando-tól, éppen úgy pozicionálta az újdonságot, mint "kubectl a weben". Olyan eszközt szeretett volna létrehozni, amely lehetővé teszi a technikai támogatás formátumában történő kényelmes interakciót (például gyorsan bemutatni a problémát egy web-linken keresztül) és reagálni aincidensekre, miközben több klaszterben egyszerre keres problémákat. Műve folyamatosan fejlődik (főként a szerző erőfeszítései révén). Számos különböző méretű Kubernetes klaszter kiszolgálása közben mi is érdeklődtünk egy vizuális munkához való eszköz biztosításának lehetősége iránt. A megfelelő felület kiválasztásánál a következő lehetőségek voltak kulcsfontosságúak számunkra:a felhasználói jogok (RBAC) elhatárolásának támogatása;

a Kubernetes névkörök és alapvető primitívek (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC) állapotának vizualizálása;

  • a parancssorhoz való hozzáférés a pod-on belül;
  • a pod-ok naplóinak megtekintése;
  • a pod-ok állapotának megtekintése (
  • status leírás
  • pod-ok törlése.Olyan további funkciók, mint a fogyasztott erőforrások (pod-ok/vezérlők/névterek bontásában) megtekintése, K8s primitívek létrehozása/szerkesztése, nem relevánsak a munkafolyamatunk keretein belül.);
  • Az áttekintést a klasszikus Kubernetes Dashboard-dal kezdjük, melyet nálunk standardként fogadtak el. Mivel a világ nem áll meg (ezért a Kuberneteshez új GUI-k folyamatosan érkeznek), bemutatjuk ezek aktuális alternatíváit is, mindezt egy összehasonlító táblázatba tömörítve a cikk végén.

: Az áttekintés során nem fogunk ismételni a már tárgyalt megoldásokkal kapcsolatban, azonban - a teljesség kedvéért - a releváns opciók (K8Dash, Octant, Kubernetes Web View) bekerülnek a végső táblázatba.

1. Kubernetes Dashboard

NBDokumentáció oldal előző cikkben(8000+ GitHub csillag);

Licenc: Apache 2.0;

  • Dokumentációs oldal;
  • Tárhely (8000+ GitHub csillag);
  • Licenc: Apache 2.0;
  • Röviden: „Univerzális webes felhasználói felület Kubernetes klaszterekhez. Lehetővé teszi a felhasználók számára, hogy kezeljék a klaszterben futó alkalmazásokat és elhárítsák azok hibáit, valamint kezeljék magát a klasztert.”

A Kubernetes grafikus felületeinek áttekintése

Ez egy általános célú panel, amelyet a Kubernetes szerzői az hivatalos dokumentációban tárgyalnak. (bár nem telepíthető alapértelmezés szerint). A mindennapi üzemeltetés és a klaszterben futó alkalmazások hibakeresése céljából készült. Nálunk teljes értékű, könnyű vizuális eszközként használjuk, amely biztosítja a fejlesztők számára a szükséges és elegendő hozzáférést a klaszterhez. Funkciói lefedik minden igényüket, amely a klaszter használata során merül fel. (a cikkben Néhány funkciót bemutattunk a panelből). Ahogy könnyen kitalálható, ez azt jelenti, hogy megfelel minden fent említett követelményünknek.

A Kubernetes Panel főbb lehetőségei:

  • Navigálás: a K8s alapvető objektumainak megtekintése névtartományok szerint.
  • Adminisztrátori jogokkal a panel megmutatja a csomópontokat, névtartományokat és Persistent Volumes-t. A csomópontoknál elérhető statisztikák a memória- és CPU-használatról, az erőforrások kiosztásáról, metrikákról, állapotokról, eseményekről stb.
  • Az adott névtartományban telepített alkalmazások megtekintése típusuk szerint (Deployment, StatefulSet stb.), köztük lévő kapcsolatok (ReplicaSet, Horizontal Pod Autoscaler), összesített és egyéni statisztikák és információk.
  • Szolgáltatások és Ingress-ek megtekintése, valamint kapcsolataik a pod-okkal és endpoint-okkal.
  • Fájlobjektumok és tárolók megtekintése: Persistent Volume és Persistent Volume Claim.
  • ConfigMap és Secret megtekintése és szerkesztése.
  • Naplók megtekintése.
  • Parancssori hozzáférés biztosítása a konténerekben.

Jelentős hátrány (bár nem számunkra) — nem támogatja a multi-cluster működést. A projektet aktívan fejleszti a közösség, és folyamatosan támogatja az új funkciókat a Kubernetes API új verzióinak és specifikációinak megjelenésével: a legfrissebb verzió a panelből — v2.0.1 2020. május 22-i — tesztelve a Kubernetes 1.18 kompatibilitásával.

2. Lens

A Kubernetes grafikus felületeinek áttekintése

A projekt teljes értékű integrált fejlesztői környezetként (IDE) van pozicionálva a Kuberneteshez. Kifejezetten sok klaszter és azokban rengeteg futó pod kezelésére optimalizálva van (25 ezer pod-ra tesztelve).

A Lens főbb jellemzői/kapacitásai:

  • Önálló alkalmazás, amely nem igényel semmiféle telepítést a klaszterben (pontosabban az összes metrika beszerzéséhez szükséges a Prometheus, de ehhez felhasználható a már meglévő telepítés is). A 'fő' telepítés pedig Linux, macOS vagy Windows operációs rendszert használó személyi számítógépre történik.
  • Több klaszter kezelése (százak támogatottak).
  • A klaszter állapotának valós idejű vizualizációja.
  • Erőforrások felhasználásának grafikonjai és a beépített Prometheus alapú trendek történeti adatai.
  • Hozzáférés a konténerek parancssorához és a klaszter csomópontjaihoz.
  • Teljes támogatás a Kubernetes RBAC-hoz.

Aktuális kiadás — 3.5.0 2020. június 16-tól. Az eredeti verziót a Kontena vállalat készítette, és mára a szellemi tulajdon teljes mértékben átkerült egy speciális szervezethez. Lakend Labs, amelyet 'cloud native fejek és technológák szövetsége' néven ismernek, felelős az Open Source szoftverek és a Kontena termékek 'megőrzéséért és elérhetőségéért'.

A Lens a második legnépszerűbb projekt a GitHub-on a Kubernetes GUI kategóriájában, csupán a Kubernetes Dashboardnak van nagyobb népszerűsége. Minden más CLI* nem kategóriába tartozó Open Source megoldás jelentősen alulmarad.

* Lásd a K9s-ról a felülvizsgálat bónusz részében.

3. Kubernetic

A Kubernetes grafikus felületeinek áttekintése

Ez egy zárt forráskódú alkalmazás, amely a személyi számítógépre telepíthető (Linux, macOS, Windows támogatott). Az alkotói teljes körű helyettesítést ígérnek a parancssori segédprogram számára, így nem szükséges megjegyezni a parancsokat, és akár tízszeresére is nőhet a munka sebessége.

Az eszköz egyik érdekes jellemzője a beépített Helm diagram támogatás, míg az egyik hátránya a teljesítménymutatók hiánya az alkalmazásokban.

A Kubernetic főbb funkciói:

  • Kényelmes klaszter állapot megjelenítés. Egy képernyő, ahol az összes kapcsolódó klaszter objektum és azok függőségei megtekinthetők; piros/zöld állapotjelző az összes objektumhoz; valós idejű státusz frissítéssel rendelkező klaszter állapot nézet.
  • Gyors műveleti gombok az alkalmazás eltávolításához és skálázásához.
  • Több klaszter munkájának támogatása.
  • Egyszerű munka a névtérrel.
  • Helm chartok és Helm tárolók (beleértve a privátokat) támogatása. Chartok telepítése és kezelése a webes felületen.

A termék aktuális ára – egyszeri 30 eurós díj annak használatáért egy felhasználó számára bármennyi névtér és klaszter esetén.

4. Kubevious

  • Weboldal;
  • Prezentáció;
  • Tárhely (~500 GitHub csillag);
  • Licenc: Apache 2.0
  • Röviden: "A Kubevious biztonságossá és érthetőbbé teszi a Kubernetes klasztereket, az alkalmazáskonfigurációkat és azok állapotának megtekintését."

A Kubernetes grafikus felületeinek áttekintése

A projekt ötlete egy olyan eszköz létrehozása, amely az alkalmazások klaszterben történő konfigurációinak elemzésére és hibakeresésére szolgál. A szerzők elsősorban ezen funkciók megvalósítására összpontosítottak, a tágabb kérdéseket későbbre hagyva.

A Kubevious főbb jellemzői és funkciói:

  • Az alkalmazásorientált klasztervizualizáció: a kapcsolódó objektumok a felületen csoportosítva hierarchiába rendeződnek.
  • Bonyodalmak szembetűnő megjelenítése a konfigurációkban és azok változásainak következményei.
  • A klaszter konfigurálásának hibáinak megjelenítése: helytelen címkék használata, kihagyott portok stb. (Egy szó mint száz, ha érdekli ez a funkció, figyeljen az Polarisszól, amiről nemrégiben már írtunk.)
  • Az előző ponthoz hozzáadva – elérhető a potenciálisan veszélyes konténerek észlelése, azaz a túl nagy jogosultságokkal rendelkezőké (attribútumok hostPID, hostNetwork, hostIPC, csatolva docker.sock és hasonlók).
  • Fejlett keresési rendszer a klaszterben (nemcsak az objektumok nevei, hanem azok tulajdonságai alapján is).
  • Eszközök a kapacitás tervezésére és az erőforrások optimalizálására.
  • Beépített „időgép” (a korábbi objektumkonfigurációs változások megtekintésének lehetősége).
  • RBAC kezelése a Roles, RoleBindings, ServiceAccounts összefüggő táblázatán keresztül.
  • Csak egy klaszterrel működik.

A projektnek viszonylag rövid története van (az első kiadás 2020. február 11-én volt), és úgy tűnik, hogy stabilizálódás vagy fejlődés lassulása kezdődött. Ha a korábbi verziók gyakran jelentek meg, az utolsó kiadás (v0.5 2020. április 15-én) elmaradt a kezdeti fejlesztési ütemtől. Valószínűleg ez a közreműködők alacsony számával áll összefüggésben: a tároló előzményeiben összesen 4 közreműködő van, és a tényleges munka egy ember által folyik.

5. Kubewise

  • A kiadási tarballok;
  • Licenc: birtokolt (nyílt forráskódúvá válik);
  • Röviden: "Egyszerű, multiplatform Kubernetes kliens."

A Kubernetes grafikus felületeinek áttekintése

A VMware új terméke, amelyet eredetileg egy belső hackathon keretein belül hoztak létre (2019 júniusában). Telepíthető személyi számítógépre, alapja Electron (támogatja a Linuxot, macOS-t és Windows-t), és a kubectl legalább v1.14.0 verzióját igényli.

A Kubewise főbb funkciói:

  • Kapcsolat a Kubernetes leggyakrabban használt entitásaival az interfészen: csomópontok, névtárak stb.
  • Több kubeconfig fájl támogatása különböző klaszterekhez.
  • Terminál környezeti változó beállításának lehetőségével. KUBECONFIG.
  • Egyedi kubeconfig fájlok generálása a megadott névtérhez.
  • Kibővített biztonsági funkciók (RBAC, jelszavak, szolgáltatásfiókok).

A projektnek eddig csak egy kiadása van — a verzió 1.1.0 2019. november 26-tól. Az alkotók eredetileg nyílt forráskódúként szerették volna kiadni, de belső problémák miatt (amelyek nem műszaki jellegűek) ezt nem tudták megtenni. 2020 májusi állapot szerint az alkotók dolgoznak a következő kiadáson, és ezzel párhuzamosan el kell indítaniuk a kód megnyitásának folyamatát.

6. OpenShift Console

A Kubernetes grafikus felületeinek áttekintése

Bár ez a webes felület az OpenShift disztribúció része (ott speciális operátor segítségével telepítik, különleges operátor), az alkotók lehetővé tették a telepítést / használatot normál (vanilla) Kubernetes installációkon is.

Az OpenShift Console már régóta fejlődik, ezért számos funkciót felölelt. Megemlítjük a legfontosabbakat:

  • Megosztott megközelítés az interfészhez — két „nézőpont” érhető el a Console lehetőségein belül: adminisztrátorok és fejlesztők számára. A Developer perspective a fejlesztők számára érthetőbb módon csoportosítja az objektumokat (alkalmazások szerint), és az interfészt olyan tipikus feladatok megoldására orientálja, mint az alkalmazások telepítése, a build / telepítés állapotának nyomon követése és még a kód szerkesztése az Eclipse Che segítségével.
  • Munkaigények, hálózat, tárolók és jogosultságok kezelése.
  • Logikai megosztás a munkaigények számára projektekre és alkalmazásokra. Az egyik legutolsó kiadásban — v4.3 — és elindult a projektünk; különleges Project dashboard, amely a megszokott adatokat (telepítések, pod-ok számát és állapotait; erőforrás-felhasználás és egyéb mutatók) mutatja be projektek szempontjából.
  • Valós idejű klaszterállapot-megjelenítés és a benne történt változások (események) megtekintése; naplók nézése.
  • Prometheus, Alertmanager és Grafana alapú monitoring adatok megtekintése.
  • A bemutatott operátorok kezelése a OperatorHub.
  • Docker-en futó buildetek kezelése (a megadott Dockerfile-lal rendelkező tárolóból), S2I vagy tetszőleges külső segédprogramok.

NB: Nem neveztük meg másokat a összehasonlításban Kubernetes disztribúciók (például a sokkal kevésbé ismert Kubesphere): bár a grafikus felületük nagyon fejlett lehet, általában egy nagy rendszer integrált stack-jének részeként érkezik. Ha azonban úgy érzi, hogy bizonyos megoldások hiányoznak a teljesen működő v vanilla K8s telepítésből, kérjük, tudassa velünk a megjegyzésekben.

Bónusz

1. Portainer on Kubernetes bétaverzió

  • Weboldal;
  • Tárhely (~100 GitHub csillag);
  • Licenc: Zlib(?) (ez a szülő projektnél van).

A Portainer csapata által kifejlesztett projekt, amely az azonos nevű népszerű Docker interfészt hozta létre. Mivel a projekt még korai fejlesztési szakaszban van (első és egyetlen bétaverziója 1994 nyarán jelent meg a Linux 1.1.18 kernel alapján. 2020. április 16-án), nem értékeltük a funkcióit. Azonban talán sokakat érdekel: ha Ön is közéjük tartozik, kövesse a fejlesztéseket.

2. IcePanel

  • Weboldal;
  • Licenc: zárt forráskódú;
  • Röviden: „Kubernetes vizuális szerkesztő”.

A Kubernetes grafikus felületeinek áttekintése

Ez a fiatal asztali alkalmazás arra hivatott, hogy valós időben vizualizálja a Kubernetes erőforrásokat, és egyszerű drag & drop felületen kezelje azokat. A jelenlegi támogatott objektumok közé tartozik a Pod, Szolgáltatás, Telepítés, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap és Secret. Hamarosan ígérik a Helm támogatásának bevezetését. A legfőbb hátrányok a zárt kód (várhatóan „valamilyen formában” nyitottá válik) és a Linux támogatásának hiánya (jelenleg csak Windows és macOS verziók érhetők el, bár ez is valószínűleg csak idő kérdése).3. k9s

(~7700 GitHub csillag);

  • Weboldal;
  • Demonstráció;
  • Tárhely Röviden: „Kubernetes parancssori interfész, amely lehetővé teszi a klaszter stílusos kezelését“.
  • Licenc: Apache 2.0;
  • Röviden: „Konzol interfész a Kubernetes számára, amely lehetővé teszi a klaszter stílusos kezelését.”

A Kubernetes grafikus felületeinek áttekintése

Az eszköz csak a felülvizsgálat bónusz részében szerepelt, mert konzolos GUI-t kínál. Azonban a készítők szó szerint kihozták a maximumot a terminálból, nemcsak kényelmes interfészt, hanem 6 előre definiált téma kialakítását, valamint kiterjedt billentyűparancs rendszert és parancs-aliasokat is kínálva. Alapos megközelítésük nem csupán a kinézetre korlátozódott: a k9s lehetőségei kellemes meglepetést okoznak: erőforráskezelés, klaszter állapotának megjelenítése, erőforrások hierarchikus nézetben történő megjelenítése a függőségekkel, naplók megtekintése, RBAC támogatása, bővíthetőség pluginekkel… Mindez kedvezően hatott a széles K8s közösségre: a projekt GitHub csillagjainak száma szinte nem marad el az hivatalos Kubernetes Dashboard-tól!

4. Alkalmazáskezelő panelek

A felülvizsgálat befejezéseként - egy külön mini-kategória. Ebbe beletartozik két webes interfész, amely nem a Kubernetes klaszterek átfogó kezelésére, hanem arra szolgál, ami azokban elérhető.

Mint tudják, az egyik legérettebb és legszélesebb körben használt eszköz az összetett alkalmazások Kubernetesbe történő telepítésére a Helm. Mivel létezése alatt számos csomag (Helm chart) halmozódott fel az egyszerű telepítés érdekében sok népszerű alkalmazás. Ezért teljesen logikus a hasonló vizuális eszközök megjelenése is, amelyek lehetővé teszik a chartok életciklusának kezelését.

4.1. Monocular

  • Tárhely (1300+ GitHub csillag);
  • Licenc: Apache 2.0;
  • Röviden: 'Webalkalmazás a Helm chartok keresésére és felfedezésére, számos repóban. A Helm hub projekt alapját képezi.'

A Kubernetes grafikus felületeinek áttekintése

Ez a Helm létrehozóinak fejlesztése telepíthető Kubernetesbe, és egy klaszter keretein belül működik, elvégezve a kitűzött feladatot. Jelenleg azonban a projekt szinte nem fejlődik. Fő célja a Helm Hub fenntartása. Más igények esetén a készítők a Kubeapps-ot (lásd később) vagy a Red Hat Automation Broker-t ajánlják (az OpenShift része, de már ez sem fejlődik).

4.2. Kubeapps

A Kubernetes grafikus felületeinek áttekintése

A Bitnami terméke, amely szintén telepíthető egy Kubernetes klaszterbe, de a Monocularhoz képest kezdetben a privát repók kezelésére összpontosít.

A Kubeapps kulcsfontosságú funkciói és jellemzői:

  • Helm chartok megtekintése és telepítése repókból.
  • Helm alapú alkalmazások ellenőrzése, frissítése és eltávolítása a klaszterben.
  • Testreszabott és privát chart tárolók támogatása (támogatja a ChartMuseum és a JFrog Artifactory).
  • Különféle szolgáltatások megtekintése és használata — a Szolgáltatás katalógus és Szolgáltatás közvetítőn keresztül.
  • Telepített alkalmazások nyilvánossá tétele a Szolgáltatás katalógus kötődési mechanizmusa segítségével.
  • Az RBAC segítségével történő hitelesítés és jogosultságok megosztása.

Összegző táblázat

Az alábbi összegző táblázatban összegeztük és aggregáltuk a meglévő vizuális felületek főbb lehetőségeit, hogy megkönnyítsük az összehasonlítást:

A Kubernetes grafikus felületeinek áttekintése
(Az online táblázat elérhető a Google Docs-ban..)

Zárás

A Kubernetes grafikus felületei meglehetősen specifikus és fiatal niche. Ennek ellenére nagyon aktívan fejlődik: már találhatók elég érett megoldások, és teljesen új, még fejlődő eszközök is. Ezek különböző felhasználási esetekre orientálódnak, funkciókat és megjelenést kínálva gyakorlatilag minden ízlésnek. Reméljük, hogy ez a áttekintés segít a legjobban az aktuális igényeknek megfelelő eszköz kiválasztásában.

P.S.

Köszönjük kvaps az OpenShift Console-ra vonatkozó adatokért a összehasonlító táblázathoz!

Olvasson további információkat a blogunkban:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster