Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Athugið. þýð.: Höfundur frumefnisins er Henning Jacobs frá Zalando. Hann bjó til nýtt vefviðmót til að vinna með Kubernetes, sem er staðsett sem „kubectl fyrir vefinn. Hvers vegna nýtt Open Source verkefni birtist og hvaða skilyrði uppfylltu ekki núverandi lausnir - lestu grein hans.

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Í þessari færslu fer ég yfir hin ýmsu opna Kubernetes vefviðmót, útskýri kröfur mínar fyrir alhliða notendaviðmót og útskýri hvers vegna ég þróaði Kubernetes WebView — viðmót sem er hannað til að gera það auðveldara að styðja og leysa marga klasa í einu.

Notkunartilvik

Hjá Zalando þjónum við fjölda Kubernetes notenda (900+) og klasa (100+). Það eru nokkur algeng notkunartilvik sem myndu njóta góðs af sérstakt veftól:

  1. samskipti við samstarfsmenn til stuðnings;
  2. bregðast við atvikum og rannsaka orsakir þeirra.

Stuðningur

Mín reynsla er að stuðningssamskipti líta oft svona út:

— Hjálp, þjónustan okkar XYZ er ekki tiltæk!
— Hvað sérðu þegar þú kemur fram kubectl describe ingress ...?

Eða eitthvað svipað fyrir CRD:

— Ég á í vandræðum með auðkenningarþjónustuna...
— Hvað gefur skipunin af sér? kubectl describe platformcredentialsset ...?

Slík samskipti snúast venjulega um að slá inn ýmis afbrigði af skipuninni kubectl til að greina vandamálið. Þess vegna neyðast báðir aðilar samtalsins til að skipta stöðugt á milli flugstöðvarinnar og vefspjallsins, auk þess sem þeir fylgjast með mismunandi aðstæðum.

Þess vegna vil ég að Kubernetes vefviðmótið leyfi eftirfarandi:

  • notendur gætu skiptitengla og athugaðu það sama;
  • myndi hjálpa forðast mannleg mistök til stuðnings: til dæmis að skrá sig inn í rangan þyrping á skipanalínunni, innsláttarvillur í CLI skipunum osfrv.;
  • myndi leyfa búa til þínar eigin skoðanir að senda til samstarfsmanna, það er að bæta við dálkum af merkjum, birta margar tegundir af auðlindum á einni síðu;
  • Helst ætti þetta veftól að leyfa þér að stilla „djúpar“ tenglar á tiltekna hluta YAML (til dæmis að benda á ranga færibreytu sem veldur bilun).

Viðbrögð og greining atvika

Viðbrögð við innviðaatvikum krefjast ástandsvitundar, getu til að meta áhrif og leita að mynstrum í klösum. Nokkur dæmi úr raunveruleikanum:

  • Mikilvæg framleiðsluþjónusta er í vandræðum og þú þarft á því að halda finna allar Kubernetes tilföng með nafni í öllum klösumað leysa;
  • hnútar byrja að falla þegar kvarða og þú þarft finna alla belg með stöðunni „Bíður“ í öllum klösumað meta umfang vandans;
  • Einstakir notendur tilkynna um vandamál með DaemonSet sem er notað í öllum klasa og þurfa að finna út úr því Er vandamálið algjört?.

Mín staðlaða lausn í slíkum tilfellum er eitthvað eins og for i in $clusters; do kubectl ...; done. Augljóslega er hægt að þróa tól sem veitir svipaða getu.

Núverandi Kubernetes vefviðmót

Opinn uppspretta heimur vefviðmóta við Kubernetes er ekki mjög stór*, svo ég reyndi að afla frekari upplýsinga með því að nota twitter:

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

*Skýring mín á takmörkuðum fjölda vefviðmóta fyrir Kubernetes: skýjaþjónustur og Kubernetes framleiðendur bjóða venjulega upp á eigin framenda, þannig að markaðurinn fyrir „gott“ ókeypis Kubernetes notendaviðmót er tiltölulega lítill.

Í gegnum tíst sem ég lærði um K8Dash, Kubernator и Oktant. Við skulum skoða þær og aðrar núverandi Open Source lausnir, við skulum reyna að skilja hvað þær eru.

K8Dash

„K8Dash er einfaldasta leiðin til að stjórna Kubernetes klasa.

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

K8Dash Lítur vel út og líður hratt, en hefur ýmsa ókosti fyrir notkunartilvikin sem talin eru upp hér að ofan:

  • Virkar aðeins innan marka eins klasa.
  • Flokkun og síun eru möguleg, en hafa ekki permalinks.
  • Það er enginn stuðningur við sérsniðnar auðlindaskilgreiningar (CRD).

Kubernator

„Kubernator er annað notendaviðmót fyrir Kubernetes. Ólíkt Kubernetes mælaborðinu á háu stigi veitir það stjórn á lágu stigi og framúrskarandi sýnileika í alla hluti í þyrpingunni með getu til að búa til nýja, breyta þeim og leysa árekstra. Þar sem það er algjörlega viðskiptavinahlið forrit (eins og kubectl), þarf það ekki neinn bakenda annan en Kubernetes API þjóninn sjálfan og virðir einnig aðgangsreglur fyrir klasa.

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Þetta er nokkuð nákvæm lýsing Kubernator. Því miður skortir það nokkra eiginleika:

  • Þjónar aðeins einn klasa.
  • Það er engin listaskoðunarstilling (þ.e. þú getur ekki birt alla belg með stöðunni „Biður“).

Mælaborð Kubernetes

„Kubernetes Mælaborð er alhliða vefviðmót fyrir Kubernetes klasa. Það gerir notendum kleift að stjórna og leysa úr forritum sem keyra í klasa, sem og stjórna klasanum sjálfum.

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Því miður, Mælaborð Kubernetes hjálpar í raun ekki við stuðning minn og viðbrögð við atvikum vegna þess að það:

  • það eru engir varanlegir tenglar, til dæmis þegar ég sía tilföng eða breyti röðun;
  • það er engin auðveld leið til að sía eftir stöðu - sjáðu til dæmis alla belg með stöðunni „Í bið“;
  • aðeins einn þyrping er studdur;
  • CRD eru ekki studd (þessi eiginleiki er í þróun);
  • engir sérsniðnir dálkar (eins og dálkar merktir eftir gerð kubectl -L).

Kubernetes rekstrarsýn (kube-ops-view)

"System Mashboard Observer fyrir K8s Cluster Space."

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

У Rekstrarsýn Kubernetes Allt önnur nálgun: þetta tól sýnir aðeins klasahnúta og fræbelg með WebGL, án nokkurra textahlutaupplýsinga. Það er frábært til að fá fljótt yfirlit yfir heilsu klasans (eru fræbelgir að detta?)*, en það er ekki hentugur fyrir stuðnings- og atviksviðbrögð sem lýst er hér að ofan.

* Athugið. þýð.: Í þessum skilningi gætirðu líka haft áhuga á viðbótinni okkar grafana-stöðukort, sem við ræddum nánar í Þessi grein.

Kubernetes Resource Report (kube-resource-report)

"Safnaðu beiðnum um hólf og Kubernetes klasaauðlindir, berðu þær saman við auðlindanotkun og búðu til fastan HTML."

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Kubernetes auðlindaskýrsla býr til kyrrstæðar HTML skýrslur um auðlindanotkun og dreifingu kostnaðar milli teyma/forrita í klösum. Skýrslan er nokkuð gagnleg fyrir stuðning og viðbrögð við atvikum vegna þess að hún gerir þér kleift að finna fljótt þyrpinguna þar sem forritið er notað.

Athugið. þýð.: Þjónusta og tól geta einnig verið gagnleg til að skoða upplýsingar um úthlutun fjármagns og kostnað þeirra meðal skýjaveitenda Kubecost, sem við endurskoðum nýlega birt.

Oktant

"Stækkanlegur vefvettvangur fyrir forritara sem er hannaður til að veita meiri skilning á því hversu flókin Kubernetes klasar eru."

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Oktant, búin til af VMware, er ný vara sem ég lærði um tiltölulega nýlega. Með hjálp þess er þægilegt að kanna þyrpinguna á staðbundinni vél (það eru jafnvel sjónmyndir), en það tekur aðeins á stuðningi og viðbrögðum við atvikum að takmörkuðu leyti. Ókostir Octant:

  • Engin klasaleit.
  • Virkar aðeins á staðbundinni vél (dreifist ekki í klasa).
  • Ekki er hægt að flokka/sía hluti (aðeins merkivali er studdur).
  • Þú getur ekki tilgreint sérsniðna dálka.
  • Þú getur ekki skráð hluti eftir nafnrými.

Ég átti líka í vandræðum með stöðugleika Octant með Zalando klösum: á sumum CRD hann var að detta.

Við kynnum Kubernetes Web View

"kubectl fyrir vefinn".

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)

Eftir að hafa greint tiltæka viðmótsvalkosti fyrir Kubernetes ákvað ég að búa til nýjan: Kubernetes WebView. Enda þarf ég í rauninni bara allan kraftinn kubectl á vefnum, nefnilega:

  • aðgengi að öllum (skrifvarandi) aðgerðum sem notendur kjósa að nota kubectl fyrir;
  • allar vefslóðir verða að vera varanlegar og tákna síðuna í upprunalegri mynd svo að samstarfsmenn geti deilt þeim og notað þær í öðrum verkfærum;
  • stuðningur við alla Kubernetes hluti, sem gerir þér kleift að leysa hvers kyns vandamál;
  • tilfangalistar ættu að vera hægt að hlaða niður til frekari vinnu (í töflureiknum, CLI verkfærum eins og grep) og geymsla (til dæmis fyrir skurðaðgerðir);
  • stuðningur við að velja tilföng eftir merki (svipað og kubectl get .. -l);
  • getu til að búa til sameinaða lista yfir ýmsar gerðir af auðlindum (svipað og kubectl get all) til að fá sameiginlega rekstrarmynd meðal samstarfsmanna (til dæmis við viðbrögð við atviki);
  • möguleikinn á að bæta sérsniðnum snjöllum djúpum tenglum við önnur verkfæri eins og mælaborð, skógarhöggsmenn, forritaskrár osfrv. til að auðvelda úrræðaleit/leysa villur og bregðast við atvikum;
  • Framendinn ætti að vera eins einfaldur og mögulegt er (hreint HTML) til að forðast tilviljunarkennd vandamál, svo sem frosið JavaScript;
  • stuðningur við marga klasa til að einfalda samskipti við fjarráðgjöf (til dæmis til að muna aðeins eina vefslóð);
  • Ef mögulegt er ætti að einfalda aðstæðugreiningu (til dæmis með tenglum til að hlaða niður tilföngum fyrir alla klasa/nafnarými);
  • viðbótartækifæri til að búa til sveigjanlega tengla og auðkenna textaupplýsingar, til dæmis, svo að þú getir bent samstarfsfólki á tiltekinn hluta í auðlindalýsingunni (lína í YAML);
  • hæfileikinn til að sérsníða að kröfum tiltekins viðskiptavinar, til dæmis, sem gerir þér kleift að búa til sérstök skjásniðmát fyrir CRD, þína eigin töflusýn og breyta CSS stíl;
  • verkfæri til frekari könnunar á skipanalínunni (til dæmis að sýna allar skipanir kubectl, tilbúinn til afritunar);

Fyrir utan verkefnin leyst í Kubernetes Web View (ekki markmið) eftir:

  • útdráttur á Kubernetes hlutum;
  • stjórnun forrita (til dæmis dreifingarstjórnun, stýrikort o.s.frv.);
  • skrifa aðgerðir (verður að fara fram með öruggum CI/CD og/eða GitOps verkfærum);
  • fallegt viðmót (JavaScript, þemu osfrv.);
  • sjónræn (sjá kube-ops-view);
  • kostnaðargreining (sjá kube-auðlindaskýrsla).

Hvernig hjálpar Kubernetes Web View við stuðning og viðbrögð við atvikum?

Stuðningur

  • Allir tenglar eru varanlegir, sem gerir það auðveldara að skiptast á upplýsingum við samstarfsmenn.
  • Þú getur búið til þínum hugmyndum, til dæmis, birta allar dreifingar og hólf með tilteknu merki í tveimur tilteknum þyrpingum (mörg þyrpinganöfn og tilföngsgerðir má tilgreina í hlekknum, aðskilin með kommum).
  • Þú getur vísað til sérstakar línur í YAML skrá hlutur, sem gefur til kynna hugsanleg vandamál í hlutforskriftinni.

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)
Leitaðu eftir klösum í Kubernetes vefsýn

Viðbrögð við atvikum

  • Alþjóðleg leit (alheimsleit) gerir þér kleift að leita að hlutum í öllum klösum.
  • Listaskoðanir getur sýnt alla hluti með ákveðnu ástandi/dálki í öllum klösum (til dæmis þurfum við að finna alla belg með stöðunni "Biður").
  • Hægt er að hlaða niður lista yfir hluti í TSV-sniði (tab-separated value) til síðari greiningar.
  • Sérhannaðar ytri tenglar Gerir þér kleift að skipta yfir í tengd mælaborð og önnur verkfæri.

Tilkynning um Kubernetes vefsýn (og stutt yfirlit yfir önnur vefviðmót fyrir Kubernetes)
Kubernetes vefsýn: listi yfir hólf með stöðuna „Í bið“ í öllum klösum

Ef þú vilt prófa Kubernetes Web View mæli ég með að kíkja skjöl eða skoða lifandi kynningu.

Auðvitað gæti viðmótið verið betra, en í augnablikinu er Kubernetes Web View tæki fyrir „háþróaða notendur“ sem ekki skorast undan að vinna með vefslóðir handvirkt ef þörf krefur. Ef þú hefur einhverjar athugasemdir/viðbætur/tillögur, vinsamlegast hafðu samband með mér á Twitter!

Þessi grein er stutt saga um bakgrunninn sem leiddi til stofnunar Kubernetes Web View. Fleiri munu fylgja! (Athugið. þýð.: Það ætti að búast við þeim inn blogg höfundar.)

PS frá þýðandanum

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd