Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Shën. përk.: Autori i materialit origjinal është Henning Jacobs nga kompania Zalando. Ai krijoi një ndërfaqe të re uebi për të punuar me Kubernetes, e cila pozicionohet si 'kubectl për web'. Pse u shfaq ky projekt i ri Open Source dhe cilat kritere nuk i përmbushnin zgjidhjet ekzistuese - lexoni në artikullin e tij.

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

NĂ« kĂ«tĂ« publikim, unĂ« shqyrtoj ndĂ«rfaqet e ndryshme tĂ« Kubernetes me kod tĂ« hapur, paraqes kĂ«rkesat e mia pĂ«r njĂ« UI universale dhe tregoj pse e zhvillova Kubernetes Web View — njĂ« ndĂ«rfaqe, e cila synon tĂ« lehtĂ«sojĂ« mbĂ«shtetje dhe diagnostikimin e problemeve nĂ« shumĂ« klasterĂ« njĂ«kohĂ«sisht.

Skenarët e përdorimit

Në Zalando, ne shërbejmë një numër të madh përdoruesish Kubernetes (më shumë se 900) dhe klasterësh (më shumë se 100). Ekzistojnë disa raste tipike përdorimi, ku do të ishte shumë e dobishme një mjet të specializuar në web:

  1. komunikimi me kolegët për mbështetje;
  2. reagimi ndaj incidenteve dhe hetimi i shkaqeve të tyre.

Mbështetje

Nga përvoja ime, komunikimi për mbështetje shpesh duket si më poshtë:

— Ndihmoni, shĂ«rbimi ynĂ« XYZ nuk Ă«shtĂ« nĂ« dispozicion!
— ÇfarĂ« shihni kur ekzekutoni kubectl describe ingress ...?

Ose diçka e ngjashme për CRD:

— Kam ka njĂ« problem me shĂ«rbimin e identifikimit

— ÇfarĂ« ndodh kur ekzekutohet komandĂ«n kubectl describe platformcredentialsset ...?

Të tilla biseda zakonisht reduktohen në futjen e varianteve të ndryshme të komandës kubectl në përpjekje për të identifikuar problemin. Si rezultat, të dyja palët e bisedës detyrohen të kalojnë vazhdimisht midis terminalit dhe bisedës në web, për më tepër ata vërejnë situata të ndryshme.

Prandaj, dëshiroj që frontend-i web për Kubernetes të lejojë këtë:

  • pĂ«rdoruesit tĂ« mund tĂ« ndajnĂ« lidhje dhe tĂ« vĂ«rejnĂ« tĂ« njĂ«jtĂ«n gjĂ«;
  • tĂ« ndihmojĂ« nĂ« shmangien e gabimeve njerĂ«zore nĂ« mbĂ«shtetje: pĂ«r shembull, tĂ« mos hyjĂ« nĂ« klusterin e gabuar nĂ« komandĂ«n e linjĂ«s, gabime nĂ« komandat CLI etj.;
  • tĂ« mundĂ«sonte tĂ« gjenerojĂ« pamje tĂ« pĂ«rshtatura pĂ«r t'u dĂ«rguar kolegĂ«ve, dmth. tĂ« shtojĂ« kolona etiketa, tĂ« shfaqĂ« shumĂ« lloje burimesh nĂ« njĂ« faqe;
  • nĂ« pĂ«rfundim, ky vegĂ«l web duhet tĂ« lejojĂ« vendosjen e lidhjeve 'tĂ« thella' pĂ«r seksione specifike YAML (pĂ«r shembull, tĂ« tregojĂ« pĂ«r njĂ« parametĂ«r tĂ« gabuar qĂ« shkakton dĂ«shtime).

Reagimi ndaj incidenteve dhe analiza

Reagimi ndaj incidenteve në infrastrukturë kërkon një njohuri situatash, aftësi për të vlerësuar ndikimin dhe për të kërkuar modele në klastera. Disa shembuj nga jeta reale:

  • shĂ«rbimi i produksionit kritik ka probleme dhe ju Ă«shtĂ« e nevojshme tĂ« gjeni tĂ« gjitha burimet Kubernetes sipas emrit nĂ« tĂ« gjitha klasterat, pĂ«r tĂ« zgjidhur problemet;
  • nyjet fillojnĂ« tĂ« bien gjatĂ« shkallĂ«zimit, dhe ju duhet tĂ« gjeni tĂ« gjitha pod-et me status «Pending» nĂ« tĂ« gjitha klasterat, pĂ«r tĂ« evaluluar shkallĂ«n e problemit;
  • pĂ«rdorues tĂ« veçantĂ« raportojnĂ« njĂ« problem me DaemonSet, i zhvilluar nĂ« tĂ« gjitha klasterat, dhe Ă«shtĂ« e nevojshme tĂ« kuptohet, nĂ«se problemi ka karakter tĂ« pĂ«rgjithshĂ«m.

Zgjidhja ime standarde në këto raste është diçka si for i in $clusters; do kubectl ...; done. Sigurisht, mund të zhvillohet një instrument që ofron mundësi të ngjashme.

Në ekzistencë janë ndërfaqet e uebit për Kubernetes

Bota Open Source e ndërfaqeve të uebit për Kubernetes nuk është shumë e madhe*, kështu që provoja të mbledh informacion shtesë përmes Twitter:

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

* Shpjegimi im pĂ«r numrin e kufizuar tĂ« ndĂ«rfaqeve tĂ« internetit pĂ«r Kubernetes: shĂ«rbimet cloud dhe furnizuesit e Kubernetes zakonisht ofrojnĂ« interfazet e tyre, kĂ«shtu qĂ« tregu pĂ«r UI tĂ« „mirĂ«â€ tĂ« Kubernetes Ă«shtĂ« relativisht i vogĂ«l.

Me një tweet mësova për K8Dash, Kubernator dhe Octant. Le të shohim ata dhe zgjidhje të tjera Open Source ekzistuese, të përpiqemi të kuptojmë se çfarë përfaqësojnë.

K8Dash

"K8Dash është mënyra më e thjeshtë për të menaxhuar një kluster Kubernetes".

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

K8Dash dukjesh mirë dhe ndjehet i shpejtë në funksionim, por ka disa të meta për skenarët e përdorimit të përmendur më lart:

  • Funksionon vetĂ«m brenda njĂ« klasteri.
  • Grumbullimi dhe filtrimi janĂ« tĂ« mundshme, por nuk kanĂ« lidhje tĂ« pĂ«rhershme.
  • Nuk mbĂ«shtet Custom Resource Definitions (CRDs).

Kubernator

«Kubernator — Ă«shtĂ« njĂ« ndĂ«rfaqe alternative pĂ«r Kubernetes. Ndryshe nga paneli i lartĂ« i Kubernetes Dashboard, ai siguron kontroll mĂ« tĂ« ulĂ«t dhe njĂ« pasqyrĂ« tĂ« shkĂ«lqyer tĂ« tĂ« gjithĂ« objekteve nĂ« klaster me mundĂ«sinĂ« pĂ«r tĂ« krijuar tĂ« reja, pĂ«r t'i redaktuar ato dhe pĂ«r tĂ« zgjidhur konflikte. Duke qenĂ« njĂ« aplikacion krejtĂ«sisht klienti (si kubectl), ai nuk kĂ«rkon ndonjĂ« backend pĂ«rveç API-serverit tĂ« Kubernetes, dhe gjithashtu merr parasysh rregullat e qasjes nĂ« klaster».

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Ky është një përshkrim mjaft i saktë i Kubernator. Fatkeqësisht, i mungojnë disa funksionalitete:

  • ShĂ«rben vetĂ«m pĂ«r njĂ« klaster.
  • Nuk ka njĂ« mod tĂ« shikimit nĂ« formĂ«n e listĂ«s (dmth, nuk mund tĂ« nxjerr tĂ« gjitha pod’tĂ« me status «PĂ«rgjigje»).

Kubernetes Dashboard

«Kubernetes Dashboard — Ă«shtĂ« njĂ« ndĂ«rfaqe universale nĂ« ueb pĂ«r klasterĂ«t Kubernetes. Ai u mundĂ«son pĂ«rdoruesve tĂ« menaxhojnĂ« aplikacionet qĂ« funksionojnĂ« nĂ« klaster dhe tĂ« zgjidhin problemet e tyre, si dhe tĂ« menaxhojnĂ« vetĂ« klasterin».

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Fatkeqësisht, Kubernetes Dashboard nuk ndihmon shumë në aktivitete të mia për mbështetje dhe reagim ndaj incidenteve, sepse në të:

  • nuk ka lidhje tĂ« qĂ«ndrueshme, pĂ«r shembull, kur filtroj burimet ose ndryshoj renditjen;
  • Nuk ka njĂ« mĂ«nyrĂ« tĂ« thjeshtĂ« pĂ«r tĂ« filtruar sipas statusit — pĂ«r shembull, pĂ«r tĂ« parĂ« tĂ« gjitha pod’ët me statusin «Pending»;
  • mbĂ«shtetet vetĂ«m njĂ« klaster;
  • CRD-tĂ« nuk mbĂ«shteten (kjo funksion Ă«shtĂ« nĂ« zhvillim);
  • nuk ka kolona tĂ« personalizuara (pĂ«r shembull, kolona me etiketa si kubectl -L).

Pamja Operative e Kubernetes (kube-ops-view)

«Pjesa e Kontrollit për hapësirën e klasterëve K8s».

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Tek Pamja Operative e Kubernetes njĂ« qasje krejtĂ«sisht tjetĂ«r: ky mjet tregon vetĂ«m nodet e klasterit dhe pod’ët duke pĂ«rdorur WebGL, pa asnjĂ« detaj tekstual tĂ« objekteve. Ai Ă«shtĂ« ideal pĂ«r njĂ« pĂ«rmbledhje operative tĂ« gjendjes sĂ« klasterit («pod’ët po bien?»)*, por nuk Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r rastet e pĂ«rmendura mĂ« sipĂ«r nĂ« mbĂ«shtetje dhe reagim ndaj incidenteve.

* Shën. përk.: Në këtë kuptim, mund t'ju interesojë gjithashtu plugini ynë grafana-statusmap, për të cilin kemi folur më në detaje në këtë artikull.

Raporti mbi Burimet e Kubernetes (kube-resource-report)

«Merrni tĂ« dhĂ«na nĂ« lidhje me kĂ«rkesat pĂ«r burime tĂ« pod’ëve dhe klasterit Kubernetes, krahasojini ato me konsumimin e burimeve dhe gjeneroni HTML statik».

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Raporti mbi Burimet e Kubernetes genera raporte statike HTML mbi përdorimin e resurseve dhe shpërndarjen e kostove sipas ekipeve/aplikacioneve në klasterë. Raporti është në një farë mënyre i dobishëm për mbështetje dhe reagim ndaj incidenteve, pasi ndihmon në gjetjen më të shpejtë të klasterit ku është vendosur aplikacioni.

Shën. përk.: Në shikimin e informacionit për shpërndarjen e resurseve dhe kostot e tyre, mund të jetë gjithashtu e dobishme shërbimi dhe mjeti Kubecost, të cilin ne e publikuan së fundmi.

Octant

«Një platformë e zgjerueshme në web për zhvilluesit, e cila ka për qëllim të ofrojë një kuptim më të mirë të kompleksitetit të klasterëve Kubernetes».

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Octant, e krijuar në VMware, është një produkt i ri për të cilin unë kam mësuar relativisht së fundmi. Ajo lejon që të eksploroni klasterin në makinë lokale (ka madje edhe vizualizime), megjithatë, ajo trajton problemin e mbështetjes dhe reagimit ndaj incidenteve vetëm në një shkallë të kufizuar. Disavantazhet e Octant:

  • Nuk ka kĂ«rkesa pĂ«r klasterĂ«t.
  • Funksionon vetĂ«m nĂ« makinĂ« lokale (nuk vendoset nĂ« klaster).
  • Nuk Ă«shtĂ« e mundur tĂ« renditen/filtrohen objektet (mbĂ«shtetet vetĂ«m selektori i etiketave).
  • Nuk mund tĂ« caktohen kolonat e personalizuara.
  • Nuk Ă«shtĂ« e mundur tĂ« nxjerrĂ«sh njĂ« listĂ« objektesh sipas hapĂ«sirave tĂ« emrit.

Po ashtu, kam pasur probleme me qëndrueshmërinë e punës së Octant me klasterët Zalando: në disa CRD ai ka rënë.

Po paraqes Pamjen e Uebit Kubernetes

"kubectl për uebin".

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)

Pasi analizova opsionet e disponueshme për ndërfaqet e Kubernetes, vendosa të krijoj një të re: Kubernetes Web View. Sepse, në thelb, më nevojitet të gjithë fuqia kubectl në ueb, dhe konkretisht:

  • disponueshmĂ«ria e tĂ« gjitha operacioneve (lexim vetĂ«m), nĂ« tĂ« cilat pĂ«rdoruesit preferojnĂ« tĂ« pĂ«rdorin kubectl;
  • tĂ« gjithĂ« URL-tĂ« duhet tĂ« jenĂ« tĂ« pĂ«rhershme dhe tĂ« pĂ«rfaqĂ«sojnĂ« faqen nĂ« formĂ«n origjinale, nĂ« mĂ«nyrĂ« qĂ« kolegĂ«t tĂ« mund tĂ« ndajnĂ« ato dhe t’i pĂ«rdorin nĂ« mjete tĂ« tjera;
  • mbĂ«shtetje pĂ«r tĂ« gjitha objektet e Kubernetes, qĂ« do tĂ« lejojĂ« zgjidhjen e problemeve tĂ« çdo lloji;
  • listat e burimeve duhet tĂ« jenĂ« tĂ« shkarkueshme pĂ«r pĂ«rdorim tĂ« mĂ«tejshĂ«m (nĂ« tabelat elektronike, mjete CLI si grep) dhe ruajtje (pĂ«r shembull, pĂ«r postmortemĂ«);
  • mbĂ«shtetje pĂ«r filtrimin e burimeve sipas etiketimeve (sipas analogjisĂ« me kubectl get .. -l);
  • mundĂ«sia pĂ«r tĂ« krijuar lista tĂ« bashkuara tĂ« llojeve tĂ« ndryshme tĂ« burimeve (sipĂ«r analogjisĂ« me kubectl get all) pĂ«r tĂ« marrĂ« njĂ« pamje tĂ« pĂ«rgjithshme operative ndĂ«rmjet kolegĂ«ve (pĂ«r shembull, nĂ« procesin e reagimit ndaj njĂ« incidenti);
  • mundĂ«si pĂ«r tĂ« shtuar lidhje tĂ« thella "inteligjente" tĂ« personalizuara nĂ« mjete tĂ« tjera si panelet e monitorimit, regjistrat, regjistrat e aplikacioneve etj., pĂ«r tĂ« lehtĂ«suar gjetjen/pĂ«rdorimin e burimeve dhe reagimin ndaj incidenteve;
  • frontend-i duhet tĂ« jetĂ« sa mĂ« i thjeshtĂ« (HTML i pastĂ«r) pĂ«r tĂ« shmangur probleme tĂ« rastĂ«sishme, si JavaScript-i qĂ« ngec;
  • mbĂ«shtetje pĂ«r shumĂ« grupe pĂ«r tĂ« lehtĂ«suar ndĂ«rveprimin gjatĂ« konsultimeve nĂ« distancĂ« (pĂ«r shembull, pĂ«r tĂ« mbajtur mend vetĂ«m njĂ« URL);
  • nĂ«se Ă«shtĂ« e mundur, analitika situative duhet tĂ« thjeshtohet (p.sh., me lidhje pĂ«r shkarkimin e burimeve nga tĂ« gjitha grupet/hapĂ«sirat e emrave);
  • mundĂ«si shtesĂ« pĂ«r krijimin e lidhjeve fleksibĂ«l dhe nxjerrjen e informacionit tekstual, pĂ«r shembull, pĂ«r tĂ« mundĂ«suar t'ju referoheni kolegĂ«ve nĂ« njĂ« pjesĂ« tĂ« caktuar nĂ« pĂ«rshkrimin e burimit (rreshti nĂ« YAML);
  • mundĂ«sia pĂ«r t'u pĂ«rshtatur me kĂ«rkesat e klientĂ«ve specifikĂ«, pĂ«r shembull, duke lejuar krijimin e ĆĄabloneve tĂ« veçanta pĂ«r shfaqje pĂ«r CRD, pamje tabelash tĂ« veta, ndryshimin e stileve CSS;
  • mjetet pĂ«r studime tĂ« mĂ«tejshme nĂ« linjĂ«n e komandĂ«s (p.sh., duke treguar komanda tĂ« plota kubectl, tĂ« gatshme pĂ«r kopjim);

Jashtë detyrave të zgjidhura në Kubernetes Web View (qëllime jo) ndërtuan:

  • abstraksioni i objekteve Kubernetes;
  • menaxhimi i aplikacioneve (p.sh., menaxhimi i deployment-eve, Helm chart-eve etj.);
  • operacione tĂ« shkruar (duhet tĂ« kryhen pĂ«rmes mjeteve tĂ« sigurta CI/CD dhe/ose GitOps);
  • interfaci i bukur (JavaScript, tema etj.);
  • visualizimet (shih. kube-ops-view);
  • analiza e kostove (shih. kube-resource-report).

Si ndihmon Kubernetes Web View në mbështetje dhe reagim ndaj incidenteve?

Mbështetje

  • TĂ« gjitha lidhjet janĂ« tĂ« pĂ«rhershme, qĂ« e lehtĂ«son ndarjen e informacionit me kolegĂ«t.
  • Mund tĂ« krijoni pamjet tuaja, pĂ«r shembull, tĂ« nxirrni tĂ« gjitha Deployment-et dhe Pod-at me njĂ« etiketĂ« tĂ« caktuar nĂ« dy klastera specifikĂ« (emrat e disa klasterĂ«ve dhe llojeve tĂ« burimeve mund tĂ« specifikohen nĂ« lidhje, duke i ndarĂ« ato me pika).
  • Mund tĂ« referoheni nĂ« rreshta tĂ« caktuar nĂ« skedarin YAML tĂ« objektit, duke treguar pĂ«r probleme tĂ« mundshme nĂ« specifikimin e objektit.

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)
Kërkimi në klasterat në Kubernetes Web View

Reagimi ndaj incidenteve

  • KĂ«rkimi global (kĂ«rkimi global) lejon kĂ«rkimin e objekteve nĂ« tĂ« gjitha klasterat.
  • Pamjet nĂ« formĂ«n e listave mund tĂ« shfaqin tĂ« gjitha objektet me njĂ« gjendje/shtyllĂ« tĂ« caktuar nĂ« tĂ« gjitha klasterĂ«t (p.sh. na nevojitet tĂ« gjejmĂ« tĂ« gjitha pod-et me statusin "Pending").
  • Listat e objekteve mund tĂ« shkarkohen nĂ« formatin e vlerave tĂ« ndara me tabulator (TSV), pĂ«r analizĂ« tĂ« mĂ«tejshme.
  • Linqet e jashtme tĂ« personalizuara lejojnĂ« kalimin nĂ« panelet e monitorimit pĂ«rkatĂ«se dhe mjete tĂ« tjera.

Ankandi i ndërfaqes në web të Kubernetes Web View (dhe një përmbledhje e shkurtër e UI-ve të tjera për Kubernetes)
Pamja Web e Kubernetes: lista e pod-eve me statusin "Pending" në të gjithë klasterët

Nëse dëshironi të provoni Pamjen Web të Kubernetes, rekomandoj të shihni dokumentacionin ose të shihni demonstrimin e drejtpërdrejtë.

Sigurisht, ndërfaqja mund të ishte më e mirë, për momentin Pamja Web e Kubernetes është një mjet për " përdorues të avancuar" që nuk ngurron të manipulojë me rrugët URL manualisht, nëse është e nevojshme. Nëse keni komente/shtesa/dëshira, ju lutem kontaktoni me mua në Twitter!

Ky artikull është një përmbledhje e arsyetimit që çoi në krijimin e Pamjes Web të Kubernetes. Do pasojnë të tjera! (Shën. përk.: Pritet që ato të dalin në blogun e autorit.)

P.S. nga përkthyesi

Lexoni gjithashtu në blogun tonë:

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster