A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

Jegyzet. ford.: Az eredeti anyag szerzője a zalandói Henning Jacobs. Létrehozott egy új webes felületet a Kubernetes-szel való együttműködéshez, amely „kubectl for the web”-ként van elhelyezve. Miért jelent meg egy új nyílt forráskódú projekt, és milyen kritériumoknak nem feleltek meg a meglévő megoldások – olvasható cikkében.

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

Ebben a bejegyzésben áttekintem a különböző nyílt forráskódú Kubernetes webes felületeket, leírom az univerzális felhasználói felületre vonatkozó követelményeimet, és elmagyarázom, miért fejlesztettem Kubernetes WebView — olyan interfész, amely megkönnyíti több fürt egyidejű támogatását és hibaelhárítását.

Használati esetek

A Zalandóban nagyszámú Kubernetes felhasználót (900+) és fürtöt (100+) szolgálunk ki. Van néhány gyakori felhasználási eset, amelyeknek előnyös lenne egy dedikált webes eszköz:

  1. kommunikáció a kollégákkal támogatás céljából;
  2. reagálni az incidensekre és felderíteni azok okait.

támogatás

Tapasztalataim szerint a támogatási kommunikáció gyakran így néz ki:

— Segítség, XYZ szolgáltatásunk nem elérhető!
- Mit látsz, amikor fellépsz kubectl describe ingress ...?

Vagy valami hasonló a CRD-hez:

– Van egy kis problémám az azonosítási szolgáltatással...
— Mit produkál a parancs? kubectl describe platformcredentialsset ...?

Az ilyen kommunikáció általában a parancs különféle variációinak beviteléhez vezet kubectl a probléma azonosítása érdekében. Emiatt a beszélgetés mindkét fele kénytelen folyamatosan váltani a terminál és a webes chat között, ráadásul más helyzetet is megfigyel.

Ezért szeretném, ha a Kubernetes webes frontend engedélyezné a következőket:

  • a felhasználók tehetnék linkek cseréje és ugyanazt figyeld meg;
  • segítene kerülje az emberi hibákat támogatásban: például rossz fürtbe való bejelentkezés a parancssorban, elírások a CLI parancsokban stb.;
  • lehetővé tenné alakítsa ki saját nézeteit küldeni a kollégáknak, azaz címkék oszlopait hozzáadni, sokféle erőforrást megjeleníteni egy oldalon;
  • Ideális esetben ennek a webes eszköznek lehetővé kell tennie a beállítást "mély" hivatkozások a YAML bizonyos szakaszaira (például rámutat egy hibás paraméterre, amely hibákat okoz).

Az incidensre adott válasz és elemzés

Az infrastrukturális incidensekre való reagálás helyzetfelismerést, hatásfelmérési képességet és klaszterekben való minták keresését igényli. Néhány példa az életből:

  • Egy kritikus termelési szolgáltatásnak problémái vannak, és Önnek meg kell tennie megkeresheti az összes Kubernetes-erőforrást név szerint az összes fürtbenhibaelhárításhoz;
  • csomópontok csökkenni kezdenek a méretezés során, és szüksége van rá megkeresi az összes „Függőben” állapotú tömböt az összes klaszterbenfelmérni a probléma hatókörét;
  • Az egyes felhasználók az összes fürtre telepített DaemonSet problémát jelentenek, és ezt ki kell találniuk A probléma teljes?.

Az én standard megoldásom ilyen esetekben valami ilyesmi for i in $clusters; do kubectl ...; done. Nyilvánvalóan lehetséges olyan eszközt fejleszteni, amely hasonló képességeket biztosít.

Meglévő Kubernetes webes felületek

A Kubernetes webes felületeinek nyílt forráskódú világa nem túl nagy*, ezért megpróbáltam több információt gyűjteni a segítségével Twitter:

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

*Az én magyarázatom a Kubernetes webes felületeinek korlátozott számára: a felhőszolgáltatások és a Kubernetes-szállítók általában saját frontendeket kínálnak, így a „jó” ingyenes Kubernetes felhasználói felület piaca viszonylag kicsi.

Egy tweet révén, amiről megtudtam K8Dash, Kubernátor и Oktáns. Nézzük meg őket és a többi létező nyílt forráskódú megoldást, próbáljuk megérteni, mik is ezek.

K8Dash

"A K8Dash a legegyszerűbb módja a Kubernetes-fürt kezelésének."

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

K8Dash Jól néz ki és gyorsnak tűnik, de számos hátránya van a fent felsorolt ​​felhasználási esetekben:

  • Csak egy fürt határain belül működik.
  • Rendezés és szűrés lehetséges, de nincs állandó hivatkozás.
  • Az egyéni erőforrás-definíciók (CRD) nem támogatottak.

Kubernátor

„A Kubernator egy alternatív felhasználói felület a Kubernetes számára. A magas szintű Kubernetes Dashboardtól eltérően alacsony szintű vezérlést és kiváló rálátást biztosít a fürt összes objektumára, új objektumok létrehozására, szerkesztésére és konfliktusok megoldására. Mivel teljesen kliensoldali alkalmazás (mint például a kubectl), nem igényel más háttérrendszert, mint magán a Kubernetes API-kiszolgálón, és tiszteletben tartja a fürt hozzáférési szabályokat is.

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

Ez egy elég pontos leírás Kubernátor. Sajnos hiányzik néhány funkció:

  • Csak egy klasztert szolgál ki.
  • Nincs listanézeti mód (azaz nem jelenítheti meg az összes „Függőben” állapotú sorokat).

Kubernetes műszerfal

„A Kubernetes Dashboard egy univerzális webes felület a Kubernetes-fürtök számára. Lehetővé teszi a felhasználók számára a fürtben futó alkalmazások kezelését és hibaelhárítását, valamint magát a fürt kezelését."

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

Sajnos, Kubernetes műszerfal nem igazán segít a támogatási és incidens-reagálási tevékenységeimben, mert:

  • nincsenek állandó hivatkozások, például amikor szűröm az erőforrásokat vagy módosítom a rendezési sorrendet;
  • nincs egyszerű módja az állapot szerinti szűrésnek – például tekintse meg az összes „Függőben” állapotú sorba rendezést;
  • csak egy klaszter támogatott;
  • A CRD-k nem támogatottak (ez a funkció fejlesztés alatt áll);
  • nincsenek egyéni oszlopok (például típus szerint címkézett oszlopok kubectl -L).

Kubernetes működési nézet (kube-ops-view)

"System Dashboard Observer for K8s Cluster Space."

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

У Kubernetes működési nézet Egy teljesen más megközelítés: ez az eszköz csak a fürtcsomópontokat és podokat jeleníti meg a WebGL használatával, szöveges objektumrészletek nélkül. Kiválóan alkalmas a fürt állapotának gyors áttekintésére (leesnek a tömbök?)*, de nem alkalmas a fent leírt támogatási és incidensreakciós használati esetekre.

* Jegyzet. ford.: Ebben az értelemben a bővítményünk is érdekelheti grafana-státusztérkép, amiről részletesebben is beszéltünk ezt a cikket.

Kubernetes-erőforrás jelentés (kube-resource-report)

"Gyűjtse össze a pod és a Kubernetes-fürt erőforrás-kérelmeket, hasonlítsa össze őket az erőforrás-felhasználással, és állítson elő statikus HTML-t."

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

Kubernetes erőforrásjelentés statikus HTML jelentéseket készít az erőforrás-használatról és a költségeloszlásról a csoportok/alkalmazások között fürtökben. A jelentés némileg hasznos a támogatás és az incidensek kezelésére, mert lehetővé teszi, hogy gyorsan megtalálja azt a fürtöt, ahol az alkalmazás telepítve van.

Jegyzet. ford.: Egy szolgáltatás és eszköz hasznos lehet az erőforrások felhőszolgáltatók közötti elosztásával és költségeivel kapcsolatos információk megtekintésében is. Kubecost, amelyet áttekintünk nemrég megjelent.

Oktáns

"Bővíthető webes platform a fejlesztők számára, hogy jobban megértsék a Kubernetes-fürtök összetettségét."

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

OktánsA VMware által létrehozott új termék, amelyről viszonylag nemrég tudtam meg. Segítségével kényelmes a fürt helyi gépen való feltárása (még vizualizációk is vannak), de a támogatás és az incidensre adott válasz kérdéseivel csak korlátozottan foglalkozik. Az oktáns hátrányai:

  • Nincs fürt keresés.
  • Csak a helyi gépen működik (nem telepíti fürtre).
  • Nem lehet rendezni/szűrni az objektumokat (csak a címkeválasztó támogatott).
  • Nem adhat meg egyéni oszlopokat.
  • Az objektumok nem listázhatók névtér szerint.

Problémám volt az Octant stabilitásával is Zalando fürtökkel: néhány CRD-n zuhant.

A Kubernetes Web View bemutatása

"kubectl for the web".

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)

Miután elemeztem a Kubernetes elérhető interfészlehetőségeit, úgy döntöttem, hogy létrehozok egy újat: Kubernetes WebView. Végül is, valójában csak minden erőre van szükségem kubectl a weben, nevezetesen:

  • minden olyan (csak olvasható) művelet elérhetősége, amelyhez a felhasználók a kubectl-t preferálják;
  • minden URL-nek állandónak kell lennie, és az oldalt eredeti formájában kell képviselnie, hogy a kollégák megoszthassák és más eszközökben is felhasználhassák;
  • az összes Kubernetes objektum támogatása, amely lehetővé teszi bármilyen probléma megoldását;
  • Az erőforráslistáknak letölthetőnek kell lenniük a további munkához (táblázatokban, CLI-eszközökben, mint pl grep) és tárolás (például postmortem esetén);
  • az erőforrások címke szerinti kiválasztásának támogatása (hasonlóan a kubectl get .. -l);
  • különböző típusú erőforrások kombinált listáinak létrehozásának képessége (hasonlóan a kubectl get all) közös működési kép kialakítása a kollégák között (például incidensreagálás során);
  • egyéni intelligens mélyhivatkozások hozzáadásának képessége más eszközökhöz, például irányítópultokhoz, naplózókhoz, alkalmazás-nyilvántartásokhoz stb. a hibaelhárítás/hibaelhárítás és az incidensekre való reagálás megkönnyítése;
  • A frontendnek a lehető legegyszerűbbnek kell lennie (tiszta HTML), hogy elkerüljük a véletlenszerű problémákat, például a lefagyott JavaScriptet;
  • több fürt támogatása a távoli tanácsadás során történő interakció egyszerűsítése érdekében (például, hogy csak egy URL-t jegyezzen meg);
  • Ha lehetséges, a helyzetelemzést egyszerűsíteni kell (például hivatkozásokkal az összes fürt/névtér erőforrásainak letöltésére);
  • további lehetőségek a rugalmas hivatkozások létrehozására és a szöveges információk kiemelésére, például úgy, hogy a kollégákat az erőforrásleírás egy adott szakaszára irányítsa (egy sor a YAML-ben);
  • egy adott ügyfél követelményeihez való testreszabás képessége, például lehetővé teszi speciális megjelenítési sablonok létrehozását a CRD-k számára, saját táblázatnézeteket és CSS-stílusok módosítását;
  • eszközök a további felfedezéshez a parancssorban (például a teljes parancsok megjelenítése). kubectl, másolásra kész);

A Kubernetes Web View-ban megoldott feladatokon túl (nem gól) maradt:

  • Kubernetes objektumok absztrakciója;
  • alkalmazáskezelés (például telepítéskezelés, Helm diagramok stb.);
  • írási műveletek (biztonságos CI/CD és/vagy GitOps eszközökön keresztül kell végrehajtani);
  • gyönyörű felület (JavaScript, témák stb.);
  • vizualizáció (lásd kube-ops-view);
  • költségelemzés (lásd kube-resource-report).

Hogyan segít a Kubernetes Web View a támogatásban és az incidensekre való reagálásban?

támogatás

  • Minden hivatkozás állandó, ami megkönnyíti az információcserét a kollégákkal.
  • Létrehozhatsz az ötleteidetpéldául az összes telepítést és sorba rendezést egy adott címkével két konkrét fürtben jeleníti meg (egy hivatkozásban több fürtnév és erőforrástípus is megadható, vesszővel elválasztva).
  • Lehet hivatkozni adott sorokat egy YAML fájlban objektum, jelezve a lehetséges problémákat az objektum specifikációban.

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)
Keresés fürtök szerint a Kubernetes webnézetben

Incidensre adott válasz

  • Globális keresés (globális keresés) lehetővé teszi az objektumok keresését az összes klaszterben.
  • Nézetek listája meg tudja jeleníteni az összes objektumot egy bizonyos állapottal/oszloppal az összes klaszterben (például meg kell találnunk az összes „Függőben” állapotú pod-ot).
  • Az objektumok listája letölthető tabulátorral elválasztott érték (TSV) formátumban a későbbi elemzéshez.
  • Testreszabható külső hivatkozások Lehetővé teszi, hogy váltson a kapcsolódó irányítópultokra és egyéb eszközökre.

A Kubernetes Web View bejelentése (és a Kubernetes egyéb webes felhasználói felületeinek rövid áttekintése)
Kubernetes Web View: az összes klaszterben „Függőben” állapotú pod-ok listája

Ha szeretné kipróbálni a Kubernetes Web View-t, javasoljuk, hogy nézze meg dokumentáció vagy nézd meg élő demo.

A felület persze lehetne jobb is, de a Kubernetes Web View egyelőre a „haladó felhasználók” eszköze, akik nem riadnak vissza attól, hogy szükség esetén kézzel manipulálják az URL-útvonalakat. Ha bármilyen észrevétele / kiegészítése / javaslata van, forduljon bizalommal velem a Twitteren!

Ez a cikk a Kubernetes Web View létrehozásához vezető háttér rövid története. Továbbiak következnek! (Jegyzet. ford.: Várni kell rájuk szerző blogja.)

PS a fordítótól

Olvassa el blogunkon is:

Forrás: will.com

Hozzászólás