Poznámka. preklad.Pôvodným autorom je Henning Jacobs zo spoločnosti Zalando. Vytvoril nové webové rozhranie pre prácu s Kubernetes, označované ako „kubectl pre web“. Prečítajte si jeho článok a dozviete sa, prečo vznikol tento nový open source projekt a aké kritériá existujúce riešenia nespĺňali.

V tomto príspevku preskúmam rôzne webové rozhrania Kubernetes s otvoreným zdrojovým kódom, načrtnem svoje požiadavky na univerzálne používateľské rozhranie a vysvetlím, prečo som ho vyvinul. — rozhranie určené na uľahčenie podpory a riešenia problémov vo viacerých klastroch naraz.
Prípady použitia
V spoločnosti Zalando obsluhujeme veľký počet používateľov Kubernetes (900+) a klastrov (100+). Existuje niekoľko typických prípadov použitia, ktoré by mohli výrazne profitovať zo špecializovaného webového nástroja:
- komunikácia s kolegami v rámci podpory;
- reagovanie na incidenty a vyšetrovanie ich príčin.
Podpora
Z mojej skúsenosti vyzerá komunikácia s podporou často takto:
— Pomoc, naša služba XYZ nie je k dispozícii!
- Čo vidíte, keď vystupujete kubectl describe ingress ...?
Alebo niečo podobné pre CRD:
— Mám nejaký problém s identifikačnou službou...
— A čo tím produkuje? kubectl describe platformcredentialsset ...?
Takáto komunikácia sa zvyčajne redukuje na zadávanie rôznych variácií príkazu. kubectl aby sa identifikoval problém. V dôsledku toho sú obe strany konverzácie nútené neustále prepínať medzi terminálom a webovým chatom a navyše vidia rôzne situácie.
Preto by sme chceli, aby webové rozhranie Kubernetes umožňovalo nasledovné:
- používatelia by mohli výmena odkazov a pozorujte to isté;
- by pomohlo vyhnúť sa ľudským chybám v rámci podpory: napríklad prihlásenie do nesprávneho klastra na príkazovom riadku, preklepy v príkazoch CLI atď.;
- by umožnilo vytvárať si vlastné názory na odosielanie kolegom, teda pridávanie stĺpcov so štítkami, zobrazovanie viacerých typov zdrojov na jednej stránke;
- V ideálnom prípade by vám tento webový nástroj mal umožniť nastaviť „hlboké“ odkazy na konkrétne sekcie YAML (napríklad poukázanie na nesprávny parameter, ktorý spôsobuje zlyhania).
Reakcia na incidenty a analýza
Reakcia na infraštruktúrne incidenty si vyžaduje situačné povedomie, schopnosť posúdiť dopad a schopnosť identifikovať vzorce v rámci klastrov. Niekoľko príkladov z reálneho sveta:
- kritická produkčná služba má problémy a vy potrebujete Nájsť všetky zdroje Kubernetes podľa názvu vo všetkých klastrochriešiť problémy;
- uzly začnú pri škálovaní klesať a vy musíte Nájsť všetky pody so stavom „Čakajúce“ vo všetkých klastrochposúdiť rozsah problému;
- Jednotliví používatelia hlásia problém s DaemonSet nasadeným vo všetkých klastroch a je potrebné ho prešetriť. Je problém univerzálny?.
Moje štandardné riešenie v týchto prípadoch je niečo ako for i in $clusters; do kubectl ...; doneJe zrejmé, že by bolo možné vyvinúť nástroj, ktorý by poskytoval podobné funkcie.
Existujúce webové rozhrania Kubernetes
Svet webových rozhraní Kubernetes s otvoreným zdrojovým kódom nie je veľmi veľký*, preto som sa pokúsil zhromaždiť nejaké ďalšie informácie pomocou :

*Moje vysvetlenie obmedzeného počtu webových rozhraní pre Kubernetes: cloudové služby a dodávatelia Kubernetes zvyčajne ponúkajú vlastné frontendy, takže trh s „dobrými“ open-source používateľskými rozhraniami Kubernetes je relatívne malý.
Dozvedel som sa o tom z tweetu , и Pozrime sa na ne a ďalšie existujúce open source riešenia a pokúsime sa pochopiť, čo predstavujú.
K8Dash
„K8Dash je najjednoduchší spôsob, ako spravovať klaster Kubernetes.“

Vyzerá to dobre a je to rýchle, ale má to niekoľko nevýhod pre vyššie uvedené prípady použitia:
- Funguje iba v rámci hraníc jedného klastra.
- Triedenie a filtrovanie je možné, ale neexistujú žiadne trvalé odkazy.
- Neexistuje žiadna podpora pre vlastné definície zdrojov (CRD).
Kubernator
„Kubernator je alternatívne používateľské rozhranie pre Kubernetes. Na rozdiel od Kubernetes Dashboard na vysokej úrovni poskytuje kontrolu na nízkej úrovni a vynikajúci prehľad o všetkých objektoch v klastri s možnosťou vytvárať nové, upravovať existujúce a riešiť konflikty. Keďže ide o úplne klientsku aplikáciu (ako kubectl), nevyžaduje žiadny iný backend ako samotný Kubernetes API server a rešpektuje pravidlá prístupu do klastra.“

Toto je celkom presný popis. Bohužiaľ, chýbajú mu niektoré funkcie:
- Obsluhuje iba jeden klaster.
- Neexistuje režim zobrazenia zoznamu (t. j. nie je možné zobraziť všetky pody so stavom „Čaká sa“).
Dashboard Kubernetes
„Kubernetes Dashboard je univerzálne webové rozhranie pre klastre Kubernetes. Umožňuje používateľom spravovať a riešiť problémy s aplikáciami spustenými v klastri, ako aj spravovať samotný klaster.“

Bohužiaľ, Vôbec mi to nepomáha s aktivitami podpory a reakcie na incidenty, pretože:
- neexistujú žiadne trvalé odkazy, napríklad keď filtrujem zdroje alebo zmením poradie zoradenia;
- neexistuje jednoduchý spôsob filtrovania podľa stavu – napríklad na zobrazenie všetkých podov so stavom „Čaká sa“;
- podporovaný je iba jeden klaster;
- CRD súbory nie sú podporované (táto funkcia je vo vývoji);
- nie sú k dispozícii žiadne vlastné stĺpce (napríklad stĺpce s popismi podľa typu
kubectl -L).
Prevádzkové zobrazenie Kubernetes (kube-ops-view)
„Prístrojová doska systému pozorovania klastra K8s“.

У Úplne odlišný prístup: tento nástroj zobrazuje iba uzly a pody klastra pomocou WebGL bez akýchkoľvek textových podrobností o objektoch. Je skvelý na rýchly prehľad o stave klastra („Padajú pody?“)*, ale nie je vhodný pre prípady použitia v oblasti podpory a reakcie na incidenty opísané vyššie.
* Poznámka. preklad.V tomto ohľade by vás mohol zaujímať aj náš plugin , o ktorých sme podrobnejšie hovorili v .
Správa o zdrojoch Kubernetes (kube-resource-report)
Zbierajte požiadavky na zdroje podov a klastra Kubernetes, porovnávajte ich so spotrebou zdrojov a generujte statický HTML kód.

Generuje statické HTML správy o využívaní zdrojov a rozdelení nákladov medzi tímy/aplikácie v klastroch. Táto správa je do istej miery užitočná pre podporu a reakciu na incidenty, pretože umožňuje rýchlo nájsť klaster, v ktorom je aplikácia nasadená.
Poznámka. preklad.Pri prezeraní informácií o alokácii zdrojov a ich nákladoch od poskytovateľov cloudových služieb môže byť táto služba a nástroj užitočný. , ktoré si prejdeme .
oktant
„Rozšíriteľná webová platforma pre vývojárov navrhnutá tak, aby poskytovala lepší prehľad o komplexnosti klastrov Kubernetes.“

Octant, vytvorený spoločnosťou VMware, je nový produkt, o ktorom som sa dozvedel pomerne nedávno. Je vhodný na skúmanie klastra na lokálnom počítači (dokonca má aj vizualizácie), ale problémy s podporou a reakciou na incidenty rieši len v obmedzenej miere. Nevýhody Octantu:
- Žiadne vyhľadávanie klastrov.
- Funguje iba na lokálnom počítači (nie je nasadené v klastri).
- Nie je možné triediť/filtrovať objekty (podporovaný je iba selektor označení).
- Vlastné stĺpce nie je možné definovať.
- Objekty nie je možné zobraziť podľa menného priestoru.
Tiež som mal problémy so stabilitou Octantu s klastrami Zalando: na niektorých CRD .
Predstavujeme webové zobrazenie Kubernetes
„kubectl pre web“.

Po preskúmaní dostupných možností rozhrania pre Kubernetes som sa rozhodol vytvoriť nové: Pretože v podstate potrebujem všetku tú energiu kubectl na webe, konkrétne:
- dostupnosť všetkých operácií (iba na čítanie), pre ktoré používatelia uprednostňujú kubectl;
- Všetky URL adresy by mali byť trvalé a mali by reprezentovať stránku v jej pôvodnej podobe, aby ich kolegovia mohli zdieľať a používať v iných nástrojoch.
- podpora všetkých objektov Kubernetes, ktorá vám umožní vyriešiť akýkoľvek typ problému;
- zoznamy zdrojov by mali byť stiahnuteľné pre ďalšiu prácu (v tabuľkách, nástrojoch CLI ako
grep) a uchovávanie (napríklad na účely posmrtných vyšetrení); - podpora výberu zdrojov podľa označení (podobne ako
kubectl get .. -l); - možnosť vytvárať kombinované zoznamy rôznych typov zdrojov (podobne ako
kubectl get all) získať spoločný operačný obraz medzi kolegami (napríklad počas reakcie na incident); - možnosť pridania prispôsobiteľných „inteligentných“ priamych odkazov na iné nástroje, ako sú dashboardy, loggery, registre aplikácií atď., s cieľom uľahčiť riešenie problémov a reakciu na incidenty;
- Frontend by mal byť čo najjednoduchší (čistý HTML), aby sa predišlo náhodným problémom, ako je zasekávanie JavaScriptu;
- podpora viacerých klastrov na zjednodušenie interakcie počas vzdialených konzultácií (napríklad na zapamätanie si iba jednej URL adresy);
- Ak je to možné, situačná analýza by sa mala zjednodušiť (napr. s odkazmi na stiahnutie zdrojov vo všetkých klastroch/menných priestoroch);
- ďalšie možnosti na vytváranie flexibilných odkazov a zvýrazňovanie textových informácií, napríklad aby kolegovia mohli poukázať na konkrétnu sekciu v popise zdroja (reťazec v YAML);
- možnosť prispôsobenia požiadavkám konkrétneho klienta, napríklad možnosť vytvárať špeciálne šablóny zobrazenia pre CRD, vlastné tabuľkové zobrazenia a meniť štýly CSS;
- nástroje na ďalšie skúmanie v príkazovom riadku (napríklad zobrazenie úplných príkazov
kubectl, pripravené na kopírovanie);
Úlohy nad rámec tých, ktoré sa riešia v Kubernetes Web View (ne-góly) zostalo:
- abstrakcia objektov Kubernetes;
- správa aplikácií (napr. správa nasadení, Helm grafov atď.);
- operácie zápisu (musia sa vykonávať prostredníctvom zabezpečených nástrojov CI/CD a/alebo GitOps);
- krásne rozhranie (JavaScript, témy atď.);
- vizualizácie (pozri );
- analýza nákladov (pozri ).
Ako pomáha Kubernetes Web View s podporou a reakciou na incidenty?
Podpora
- Všetky odkazy sú trvalé, čo uľahčuje výmenu informácií s kolegami.
- Môžete vytvoriť ich nápady, napríklad na zobrazenie všetkých nasadení a podov s konkrétnym označením v dvoch konkrétnych klastroch (v odkaze je možné zadať viacero názvov klastrov a typov zdrojov oddelených čiarkami).
- Môžete sa odvolať na konkrétne riadky v súbore YAML objekt, čo naznačuje potenciálne problémy v špecifikácii objektu.

Vyhľadávanie klastrov v Kubernetes Web View
Reakcia na incident
- Globálne vyhľadávanie (globálne vyhľadávanie) Umožňuje vyhľadávať objekty vo všetkých klastroch.
- Zobrazenia zoznamu dokáže zobraziť všetky objekty s určitým stavom/stĺpcom vo všetkých klastroch (napríklad potrebujeme nájsť všetky pody so stavom „Čaká sa na spracovanie“).
- Zoznamy objektov si môžete stiahnuť vo formáte hodnôt oddelených tabulátormi (TSV) pre ďalšiu analýzu.
- umožňujú vám prepínať na relevantné dashboardy a ďalšie nástroje.

Webové zobrazenie Kubernetes: Zoznam podov so stavom „Čaká sa na spracovanie“ vo všetkých klastroch
Ak si chcete vyskúšať Kubernetes Web View, odporúčam vám pozrieť si alebo sa pozrite na .
Samozrejme, rozhranie by mohlo byť lepšie, ale zatiaľ je Kubernetes Web View nástrojom pre „pokročilých používateľov“, ktorí sa neboja manuálne manipulovať s URL cestami, ak je to potrebné. Ak máte akékoľvek komentáre, doplnenia alebo návrhy, kontaktujte nás. !
Tento článok je stručným prehľadom pozadia Kubernetes Web View. Ďalšie informácie budú čoskoro k dispozícii! (Poznámka. preklad.Mali by sa očakávať v .)
PS od prekladateľa
Prečítajte si aj na našom blogu:
- «»;
- «»;
- «»;
- «".
Zdroj: hab.com
