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

ShĂ«n. pĂ«rkth.: Autor i materialit origjinal — Henning Jacobs nga kompania Zalando. Ai krijoi njĂ« ndĂ«rfaqe tĂ« re nĂ« web pĂ«r tĂ« punuar me Kubernetes, e cila pozicionohet si "kubectl pĂ«r webin". Pse u shfaq ky projekt i ri Open Source dhe cilave kritere nuk iu pĂ«rgjigjĂ«n zgjidhjet ekzistuese — lexoni nĂ« artikullin e tij.

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

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

Scenarët e përdorimit

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

  1. komunikimi me kolegët në mbështetje;
  2. reagimi ndaj incidenteve dhe hetimi i shkakëve të tyre.

Mbështetje

Nga përvoja ime, komunikimi në mbështetje shpesh duket kështu:

— MĂ« ndihmoni, shĂ«rbimi ynĂ« XYZ Ă«shtĂ« i paarritshĂ«m!
— ÇfarĂ« shihni kur ekzekutoni kubectl describe ingress ...?

Ose diçka të ngjashme për CRD:

— Kam njĂ« problem me shĂ«rbimin e identifikimit...
— ÇfarĂ« nxjerr komanda kubectl describe platformcredentialsset ...?

Ky komunikim zakonisht reduktohet në futjen e variacioneve të ndryshme të komandës kubectl me qëllim të vendosim problemin. Si rezultat, të dy palët e bisedës janë të detyruara të kalojnë vazhdimisht midis terminalit dhe bisedës në web, plus ata vëzhgojnë situata të ndryshme.

Prandaj dëshirojmë që frontend-i web për Kubernetes të lejojë të siguiente:

  • pĂ«rdoruesit tĂ« mund tĂ« ndajnĂ« lidhje dhe tĂ« shohin tĂ« njĂ«jtĂ«n gjĂ«;
  • tĂ« ndihmojĂ« tĂ« shmangin gabimet njerĂ«zore nĂ« mbĂ«shtetje: pĂ«r shembull, mos tĂ« hyjnĂ« nĂ« klasterin e gabuar nĂ« komandĂ«n e linjĂ«s, gabime nĂ« komandat CLI etj.;
  • tĂ« lejojĂ« tĂ« gjenerojnĂ« pĂ«rfytyrime tĂ« tyre pĂ«r t'ua dĂ«rguar kolegĂ«ve, dmth. tĂ« shtojnĂ« kolona etiketash, tĂ« shfaqin shumĂ« lloje burimesh nĂ« njĂ« faqe;
  • nĂ« mĂ«nyrĂ« ideale ky instrument web duhet tĂ« lejojĂ« vendosjen e "lidhjeve tĂ« thella" nĂ« pjesĂ« specifike tĂ« YAML (pĂ«r shembull, t'iu referohet njĂ« parametri tĂ« gabuar qĂ« shkakton dĂ«shtime).

Reagimi ndaj incidenteve dhe analiza

Reagimi ndaj incidenteve në infrastrukturë kërkon njohuri situative, aftësi për të vlerësuar ndikimin dhe kërkimin e tendencave në klasterë. Disa shembuj nga jeta reale:

  • njĂ« shĂ«rbimi kritike production i ndodhin probleme dhe ju duhet tĂ« gjeni tĂ« gjitha resurset Kubernetes sipas emrit nĂ« tĂ« gjitha klasterĂ«t, pĂ«r tĂ« riparuar defektin;
  • nodalĂ«t fillojnĂ« tĂ« bien gjatĂ« shkallĂ«zimit, dhe ju duhet tĂ« gjeni tĂ« gjitha pod’ët me status "Pending" nĂ« tĂ« gjitha klasterĂ«t, pĂ«r tĂ« vlerĂ«suar shkallĂ«n e problemit;
  • pĂ«rdoruesit e veçantĂ« raportojnĂ« njĂ« problem me DaemonSet, i implementuar nĂ« tĂ« gjitha klasterĂ«t, dhe duhet tĂ« speedy nĂ«se problemi Ă«shtĂ« i 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ë mjet që ofron mundësi të ngjashme.

Ndërfaqet e web-it ekzistuese të Kubernetes

Bota Open Source e ndërfaqeve të web-it për Kubernetes nuk është shumë e madhe, kështu që provova të grumbulloj informacion shtesë përmes Twitter:

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

* Shpjegimi im për numrin e kufizuar të ndërfaqeve të web-it për Kubernetes: shërbimet cloud dhe furnizuesit e Kubernetes zakonisht ofrojnë front-endet e veta, prandaj tregu për UI të "mirë" falas për Kubernetes është relativisht i vogël.

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

K8Dash

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

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

K8Dash dukjet mirë dhe ndjehet shpejt në punë, por ka disa disavantazhe për skenarët e përdorimit të përmendur më sipër:

  • Punon vetĂ«m brenda njĂ« klasteri.
  • Renditja dhe filtrimi janĂ« tĂ« mundshme, por nuk kanĂ« lidhje tĂ« pĂ«rhershme.
  • Nuk mbĂ«shtet Definicione tĂ« Burimeve tĂ« Personalizuara (CRD).

Kubernator

"Kubernator është një UI alternativ për Kubernetes. Në kundërshtim me panelin e nivelit të lartë Kubernetes Dashboard, ai ofron kontroll të nivelit të ulët dhe një përmbledhje 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 tërësisht klientesh (si kubectl), ai nuk kërkon ndonjë backend përveç vetë API-serverit Kubernetes, dhe merr parasysh rregullat e aksesit në klaster."

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

Kjo është një përshkrim mjaft i saktë i Kubernatorit.Fatkeqësisht, atij i mungojnë disa funksionalitete:

  • ShĂ«rben vetĂ«m njĂ« klaster.
  • Nuk ka mĂ«nyrĂ« shikimi nĂ« formĂ«n e listĂ«s (domethĂ«nĂ«, nuk Ă«shtĂ« e mundur tĂ« tregoni tĂ« gjithĂ« podĂ«t me status 'Pending').

Kubernetes Dashboard

«Kubernetes Dashboard është një ndërfaqe e barkut e universale për klasterët Kubernetes. Ajo u lejon 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 Kubernetes Web View (dhe një përmbledhje e shkurtër e ndërfaqeve të tjera web për Kubernetes)

Pështu Kubernetes Dashboard nuk ndihmon shumë në aktivitetet e mia të mbështetjes dhe reagimit ndaj incidenteve, sepse:

  • nuk ka lidhje tĂ« vazhdueshme, pĂ«r shembull, kur filtroj burimet ose ndryshoj renditjen;
  • nuk ka asnjĂ« mĂ«nyrĂ« tĂ« thjeshtĂ« pĂ«r tĂ« filtruar sipas statusit - pĂ«r shembull, pĂ«r tĂ« parĂ« tĂ« gjithĂ« podĂ«t me status 'Pending';
  • mbĂ«shtetet vetĂ«m njĂ« klaster;
  • nuk mbĂ«shteten CRD (kjo veçori Ă«shtĂ« nĂ« proces zhvillimi);
  • nuk ka kolona tĂ« personnalisuara (pĂ«r shembuj, kolona me etiketat si kubectl -L).

Kubernetes Operational View (kube-ops-view)

«Panairi i sistemit për vëzhgimin e hapësirave të klasterit K8s».

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

Me Kubernetes Operational View ka një qasje tërësisht ndryshe: ky mjet tregon vetëm nyjet e klasterit dhe podët duke përdorur WebGL, pa detaje tekstuale të objekteve. Ai është shumë efektiv për një pasqyrë operative të gjendjes së klasterit ('podët po bien?')*, por nuk i përshtatet rasteve të përdorimit të përmendura më sipër në mbështetje dhe reagim ndaj incidenteve.

* Shën. përkth.: Në këtë kuptim, mund të ju interesojë edhe plugini ynë grafana-statusmap, për të cilin folëm më gjërë në këto artikuj.

Kubernetes Resource Report (kube-resource-report)

«Mblidhni informacione mbi 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 Kubernetes Web View (dhe një përmbledhje e shkurtër e ndërfaqeve të tjera web për Kubernetes)

Kubernetes Resource Report gjeneron raporte HTML statike mbi përdorimin e burimeve dhe shpërndarjen e kostove midis ekipeve/aplikacioneve në klastere. Raporti është në një farë mënyre i dobishëm për mbështetje dhe reagim ndaj incidenteve, pasi lejon gjetjen më të shpejtë të klasterit në të cilin është vendosur aplikacioni.

Shën. përkth.: Në shikimin e informacionit mbi shpërndarjen e burimeve dhe kostot e tyre, shërbimi dhe mjeti Kubecost, për të cilin kemi publikuar së fundmi.

Octant

«Një platformë e zgjerueshme për zhvilluesit, e destinuar për të ofruar një kuptim më të mirë të kompleksitetit të klasterëve Kubernetes.»

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

Octant, i krijuar në VMware, është një produkt i ri që e kam mësuar relativisht së fundmi. Me të është e lehtë të eksplorosh klasterin në makinë lokale (ka edhe vizualizime), megjithatë ai preku problemin e mbështetjes dhe reagimit ndaj incidenteve vetëm në një masë të kufizuar. Disavantazhet e Octant:

  • Nuk ka kĂ«rkim pĂ«r klasterat.
  • Punon vetĂ«m nĂ« makinĂ« lokale (nuk implementohet nĂ« klaster).
  • Nuk Ă«shtĂ« e mundur tĂ« renditen/filterohen objektet (mbĂ«shtetet vetĂ«m selektori i etiketave).
  • Nuk mund tĂ« pĂ«rcaktohen kolona tĂ« personalizuara.
  • Nuk Ă«shtĂ« e mundur tĂ« shfaqet lista e objekteve sipas hapĂ«sirave emĂ«r.

Gjithashtu kam pasur probleme me stabilitetin e punës së Octant me klasterat Zalando: në disa CRD ai ka rënë.

Paraqes Kubernetes Web View

«kubectl për web».

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

Pas analizimit të mundësive të disponueshme të ndërfaqeve për Kubernetes, vendosa të krijoj një të re: Kubernetes Web View. Sepse në thelb, unë kam nevojë vetëm për gjithë fuqinë kubectl në web, dhe konkretisht:

  • disponueshmĂ«rinĂ« e tĂ« gjitha operacioneve (read-only), nĂ« tĂ« cilat pĂ«rdoruesit preferojnĂ« tĂ« pĂ«rdorin kubectl;
  • tĂ« gjitha URL-tĂ« duhet tĂ« jenĂ« tĂ« pĂ«rhershme dhe tĂ« paraqesin faqen nĂ« formatin origjinal, 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Ă« tabela elektronike, mjetet CLI si grep) dhe ruajtje (p.sh., pĂ«r postmortem’ë);
  • mbĂ«shtetje pĂ«r selektimin e burimeve sipas etiketave (analogjia me kubectl get .. -l);
  • mundĂ«sia pĂ«r tĂ« krijuar lista tĂ« bashkuara tĂ« llojeve tĂ« ndryshme tĂ« burimeve (analogjia me kubectl get all) pĂ«r tĂ« marrĂ« njĂ« pamje tĂ« pĂ«rgjithshme operative mes kolegĂ«ve (p.sh., gjatĂ« reagimit ndaj njĂ« incidenti);
  • mundĂ«sia pĂ«r tĂ« shtuar lidhje tĂ« thella «tĂ« mençura» tĂ« personalizuara nĂ« mjete tĂ« tjera si panelet e monitorimit, logguesit, regjistrat e aplikacioneve, etj. pĂ«r lehtĂ«simin e kĂ«rkimit/zhbllokimit tĂ« problemeve dhe reagimit ndaj incidenteve;
  • frontend duhet tĂ« jetĂ« sa mĂ« i thjeshtĂ« (HTML i pastĂ«r), pĂ«r tĂ« shmangur problemet e rastĂ«sishme, pĂ«r shembull, JavaScript tĂ« ngrirĂ«;
  • mbĂ«shtetje pĂ«r shumĂ« klastera pĂ«r tĂ« lehtĂ«suar ndĂ«rveprimin gjatĂ« konsulencĂ«s nĂ« distancĂ« (p.sh., pĂ«r tĂ« mbajtur mend vetĂ«m njĂ« URL);
  • nĂ«se Ă«shtĂ« e mundur, duhet tĂ« thjeshtohet analiza situative (p.sh., me lidhje pĂ«r shkarkimin e burimeve nga tĂ« gjithĂ« klasterat/hapĂ«sirat emĂ«r);
  • mundĂ«si tĂ« shtuar pĂ«r krijimin e lidhjeve fleksibile dhe nxjerrjen e informacionit tekstor, pĂ«r shembull, pĂ«r tĂ« lejuar qĂ« tĂ« tjerĂ«t tĂ« shpjegojnĂ« njĂ« seksion tĂ« caktuar nĂ« pĂ«rshkrimin e burimit (njĂ« rresht nĂ« YAML);
  • mundĂ«si pĂ«r t'u pĂ«rshtatur me kĂ«rkesat e klientĂ«ve konkretĂ«, pĂ«r shembull, duke lejuar krijimin e templative speciale pĂ«r shfaqjen nĂ« CRD, pamje tĂ« personalizuara tĂ« tabelave, tĂ« ndryshoni stilin CSS;
  • mjetet pĂ«r hulumtime tĂ« mĂ«tejshme nĂ« komandĂ«n e linjĂ«s (pĂ«r shembull, duke treguar komandat e plota kubectl, tĂ« gatshme pĂ«r kopjim);

Përveç detyrave të zgjidhura në Kubernetes Web View (non-goals) kanë mbetur:

  • abstraktimi i objekteve Kubernetes;
  • menaxhimi i aplikacioneve (pĂ«r shembull, menaxhimi i deployment-eve, Helm-chart-eve, etj.);
  • operacione tĂ« shkrimit (duhet tĂ« realizohen pĂ«rmes mjeteve tĂ« sigurta CI/CD dhe/ose GitOps);
  • njĂ« ndĂ«rfaqe e bukur (JavaScript, tema, etj.);
  • vizualizime (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Ă« qĂ«ndrueshme, e cila lehtĂ«son shkĂ«mbimin e informacionit me kolegĂ«t.
  • Mund tĂ« krijoni pamje tĂ« personalizuara, pĂ«r shembull, tĂ« tregoni tĂ« gjitha deployment-et dhe pod-et me njĂ« etiketĂ« tĂ« caktuar nĂ« dy klastera tĂ« veçantĂ« (emrat e disa klasterĂ«ve dhe llojeve tĂ« burimeve mund tĂ« vendosen nĂ« lidhje, duke i ndarĂ« ato me presje).
  • Mund tĂ« referoheni nĂ« rreshta tĂ« caktuar nĂ« skedarin YAML tĂ« objektit, duke treguar pĂ«r probleme potenciale nĂ« specifikimin e objektit.

Ankandi i ndërfaqes në web Kubernetes Web View (dhe një përmbledhje e shkurtër e ndërfaqeve të tjera web për Kubernetes)
Kërkoni në klasterët në Kubernetes Web View

Reagimi ndaj incidenteve

  • KĂ«rkimi global (global search) lejon kĂ«rkimin e objekteve nĂ« tĂ« gjitha klasterĂ«t.
  • Pamjet nĂ« formĂ« liste mund tĂ« tregojnĂ« tĂ« gjitha objektet me njĂ« gjendje/shtyllĂ« tĂ« caktuar nĂ« tĂ« gjitha klasterĂ«t (pĂ«r shembull, na nevojitet tĂ« kĂ«rkojmĂ« tĂ« gjithĂ« pod-et me status «Pending»).
  • Listat e objekteve mund tĂ« shkarkohen nĂ« formatin e vlerave tĂ« ndara me tab (TSV), pĂ«r analizĂ« tĂ« mĂ«tejshme.
  • Lidhje tĂ« personalizuara tĂ« jashtme mundĂ«sojnĂ« kalimin nĂ« panelet pĂ«rkatĂ«se tĂ« monitorimit dhe mjete tĂ« tjera.

Ankandi i ndërfaqes në web Kubernetes Web View (dhe një përmbledhje e shkurtër e ndërfaqeve të tjera web për Kubernetes)
Kubernetes Web View: lista e pod-eve me status «Pending» në të gjitha klasterët

Nëse dëshironi të provoni Kubernetes Web View, rekomandoj të njiheni me dokumentacionin ose të shihni versionin e demo-së në kohë reale.

Sigurisht, ndërfaqja mund të ishte edhe më e mirë, ndërsa Kubernetes Web View është një mjet për "përdoruesit e avancuar" që nuk hezitojnë të manovrojnë manualisht me rrugët URL, nëse është e nevojshme. Nëse keni komente/sugjerime/dëshira, ju lutem kontaktoni me mua në Twitter!

Ky artikull është një tregim i shkurtër mbi parakushtet që çuan në krijimin e Kubernetes Web View. Ndjekin artikuj të tjerë! (Shën. përkth.: Pritet të dalin në blogun e autorit.)

P.S. nga përkthyesi

Lexoni gjithashtu në blogun tonë:

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster