Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

PiezÄ«me. tulk.: OriÄ£inālā materiāla autors ir Henings Džeikobss no Zalando. ViņŔ izveidoja jaunu tÄ«mekļa saskarni darbam ar Kubernetes, kas ir pozicionēta kā "kubectl tÄ«meklim". Kāpēc parādÄ«jās jauns atvērtā pirmkoda projekts un kādiem kritērijiem neatbilda esoÅ”ie risinājumi - lasiet viņa rakstā.

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Å ajā ziņojumā es apskatu dažādas atvērtā koda Kubernetes tÄ«mekļa saskarnes, izklāstu savas prasÄ«bas universālam lietotāja interfeisam un paskaidroju, kāpēc es izstrādāju Kubernetes WebView ā€” saskarne, kas izstrādāta, lai atvieglotu vairāku klasteru atbalstu un problēmu novērÅ”anu vienlaikus.

LietoŔanas gadījumi

Uzņēmumā Zalando mēs apkalpojam lielu skaitu Kubernetes lietotāju (900+) un klasteru (100+). Ir daži izplatÄ«ti lietoÅ”anas gadÄ«jumi, kuros noderētu Ä«paÅ”s tÄ«mekļa rÄ«ks:

  1. komunikācija ar kolēģiem atbalsta sniegÅ”anai;
  2. reaģējot uz incidentiem un izmeklējot to cēloņus.

atbalsts

Pēc manas pieredzes atbalsta saziņa bieži izskatās Ŕādi:

ā€” PalÄ«dziet, mÅ«su pakalpojums XYZ nav pieejams!
ā€” Ko jÅ«s redzat, kad uzstājaties kubectl describe ingress ...?

Vai kaut kas līdzīgs CRD:

ā€” Man ir problēmas ar identifikācijas pakalpojumu...
ā€” Ko komanda rada? kubectl describe platformcredentialsset ...?

Šāda saziņa parasti ir saistÄ«ta ar dažādu komandas variantu ievadÄ«Å”anu kubectl lai identificētu problēmu. Rezultātā abas sarunas puses ir spiestas pastāvÄ«gi pārslēgties starp termināli un tÄ«mekļa tērzÄ“Å”anu, kā arÄ« ievēro atŔķirÄ«gu situāciju.

Tāpēc es vēlos, lai Kubernetes tīmekļa saskarne atļautu tālāk norādīto.

  • lietotāji varētu apmaiņas saites un ievēro to paÅ”u;
  • palÄ«dzētu izvairÄ«ties no cilvēciskām kļūdām atbalstā: piemēram, pieteikÅ”anās nepareizajā klasterÄ« komandrindā, drukas kļūdas CLI komandās utt.;
  • atļautu radÄ«t savus uzskatus nosÅ«tÄ«t kolēģiem, tas ir, pievienot tagu kolonnas, vienā lapā attēlot daudzu veidu resursus;
  • Ideālā gadÄ«jumā Å”im tÄ«mekļa rÄ«kam vajadzētu ļaut iestatÄ«t "dziļās" saites uz konkrētām YAML sadaļām (piemēram, norādot nepareizu parametru, kas izraisa kļūmes).

NegadÄ«jumu reaģēŔana un analÄ«ze

Lai reaģētu uz infrastruktÅ«ras negadÄ«jumiem, ir nepiecieÅ”ama situācijas izpratne, spēja novērtēt ietekmi un meklēt modeļus klasteros. Daži reālās dzÄ«ves piemēri:

  • Kritiskajam ražoÅ”anas pakalpojumam ir problēmas, un jums tas ir jādara atrast visus Kubernetes resursus pēc nosaukuma visos klasterosnovērst problēmas;
  • mezgli sāk krist, kad mērogoÅ”ana un jums ir nepiecieÅ”ams atrast visus aplikumus ar statusu ā€œGaidaā€ visās kopāsnovērtēt problēmas apjomu;
  • atseviŔķi lietotāji ziņo par problēmu, kas saistÄ«ta ar DaemonSet, kas ir izvietota visos klasteros, un viņiem tas ir jānoskaidro Vai problēma ir pilnÄ«ga?.

Mans standarta risinājums Ŕādos gadÄ«jumos ir kaut kas lÄ«dzÄ«gs for i in $clusters; do kubectl ...; done. AcÄ«mredzot varētu izstrādāt rÄ«ku, kas nodroÅ”ina lÄ«dzÄ«gas iespējas.

EsoŔās Kubernetes tīmekļa saskarnes

Kubernetes tīmekļa saskarņu atvērtā koda pasaule nav ļoti liela*, tāpēc es mēģināju iegūt vairāk informācijas, izmantojot Twitter:

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

*Mans skaidrojums par ierobežoto Kubernetes tÄ«mekļa saskarņu skaitu: mākoņpakalpojumi un Kubernetes piegādātāji parasti piedāvā savus priekÅ”galus, tāpēc ā€œlabasā€ bezmaksas Kubernetes lietotāja saskarnes tirgus ir salÄ«dzinoÅ”i mazs.

Izmantojot tvÄ«tu, par kuru es uzzināju K8Dash, Kubernators Šø Oktanta. ApskatÄ«sim tos un citus esoÅ”os Open Source risinājumus, mēģināsim saprast, kas tie ir.

K8Dash

"K8Dash ir vienkārŔākais veids, kā pārvaldīt Kubernetes klasteru."

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

K8Dash Izskatās labi un jÅ«tas ātri, taču tam ir vairāki trÅ«kumi iepriekÅ” minētajos lietoÅ”anas gadÄ«jumos:

  • Darbojas tikai viena klastera robežās.
  • Ir iespējama kārtoÅ”ana un filtrÄ“Å”ana, taču tām nav pastāvÄ«gās saites.
  • Pielāgotas resursu definÄ«cijas (CRD) netiek atbalstÄ«tas.

Kubernators

ā€œKubernator ir alternatÄ«va Kubernetes lietotāja saskarne. AtŔķirÄ«bā no augsta lÄ«meņa Kubernetes informācijas paneļa, tas nodroÅ”ina zema lÄ«meņa vadÄ«bu un lielisku visu klastera objektu redzamÄ«bu ar iespēju izveidot jaunus, rediģēt tos un atrisināt konfliktus. Tā kā tai ir pilnÄ«bā klienta puses lietojumprogramma (piemēram, kubectl), tai nav nepiecieÅ”ama cita aizmugursistēma, izņemot paÅ”u Kubernetes API serveri, un tā arÄ« ievēro klasteru piekļuves noteikumus.

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Šis ir diezgan precīzs apraksts Kubernators. Diemžēl tai trūkst dažu funkciju:

  • Apkalpo tikai vienu kopu.
  • Nav saraksta skata režīma (t.i., jÅ«s nevarat parādÄ«t visus aplikumus ar statusu ā€œGaidaā€).

Kubernetes informācijas panelis

ā€œKubernetes Dashboard ir universāla tÄ«mekļa saskarne Kubernetes klasteriem. Tas ļauj lietotājiem pārvaldÄ«t un novērst lietojumprogrammas, kas darbojas klasterÄ«, kā arÄ« pārvaldÄ«t paÅ”u klasteru.

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Diemžēl, Kubernetes informācijas panelis Ä«sti nepalÄ«dz manām atbalsta un reaģēŔanas darbÄ«bām, jo ā€‹ā€‹tas:

  • nav pastāvÄ«gu saiÅ”u, piemēram, kad es filtrēju resursus vai mainu kārtoÅ”anas secÄ«bu;
  • nav vienkārÅ”s veids, kā filtrēt pēc statusa - piemēram, skatiet visus aplikumus ar statusu ā€œGaidaā€;
  • tiek atbalstÄ«ts tikai viens klasteris;
  • CRD netiek atbalstÄ«ti (Ŕī funkcija tiek izstrādāta);
  • nav pielāgotu kolonnu (piemēram, kolonnas, kas marķētas pēc veida kubectl -L).

Kubernetes darbības skats (kube-ops-view)

"Sistēmas informācijas paneļa novērotājs K8s klasteru telpai."

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Š£ Kubernetes operatÄ«vais skats PilnÄ«gi atŔķirÄ«ga pieeja: Å”is rÄ«ks parāda tikai klasteru mezglus un pākstis, izmantojot WebGL, bez teksta teksta detaļām. Tas ir lieliski piemērots ātrai klastera stāvokļa pārskatam (vai pāksti krÄ«t?)*, taču tas nav piemērots iepriekÅ” aprakstÄ«tajiem atbalsta un reaģēŔanas gadÄ«jumiem.

* Piezīme. tulk.: Šajā ziņā jūs varētu interesēt arī mūsu spraudnis grafana-statusa karte, par kuru mēs runājām sīkāk Šis raksts.

Kubernetes resursu pārskats (kube-resource-report)

"Apkopojiet pod un Kubernetes klasteru resursu pieprasījumus, salīdziniet tos ar resursu patēriņu un ģenerējiet statisku HTML."

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Kubernetes resursu pārskats Ä£enerē statiskus HTML pārskatus par resursu izmantoÅ”anu un izmaksu sadalÄ«jumu pa komandām/lietojumprogrammām klasteros. Pārskats ir nedaudz noderÄ«gs atbalstam un reaģēŔanai uz incidentiem, jo ā€‹ā€‹tas ļauj ātri atrast kopu, kurā lietojumprogramma ir izvietota.

PiezÄ«me. tulk.: pakalpojums un rÄ«ks var bÅ«t noderÄ«gs arÄ« informācijas skatÄ«Å”anai par resursu sadali un to izmaksām starp mākoņpakalpojumu sniedzējiem. Kubecost, kuru mēs pārskatām nesen publicēts.

Oktanta

"PaplaÅ”ināma tÄ«mekļa platforma izstrādātājiem, kas paredzēta, lai nodroÅ”inātu labāku izpratni par Kubernetes klasteru sarežģītÄ«bu."

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Oktanta, ko izveidoja VMware, ir jauns produkts, par kuru es uzzināju salÄ«dzinoÅ”i nesen. Ar tā palÄ«dzÄ«bu ir ērti izpētÄ«t klasteru lokālajā datorā (ir pat vizualizācijas), taču atbalsta un incidentu reaģēŔanas jautājumus tas risina tikai ierobežotā apjomā. Oktanta trÅ«kumi:

  • Nav klasteru meklÄ“Å”anas.
  • Darbojas tikai vietējā maŔīnā (neizvieto klasterÄ«).
  • Nevar kārtot/filtrēt objektus (tiek atbalstÄ«ts tikai etiÄ·eÅ”u atlasÄ«tājs).
  • JÅ«s nevarat norādÄ«t pielāgotas kolonnas.
  • JÅ«s nevarat uzskaitÄ«t objektus pēc nosaukumvietas.

Man arÄ« bija problēmas ar Octant stabilitāti ar Zalando klasteriem: dažos CRD viņŔ krita.

Iepazīstinām ar Kubernetes Web View

"kubectl tīmeklim".

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)

Izanalizējis Kubernetes pieejamās saskarnes opcijas, es nolēmu izveidot jaunu: Kubernetes WebView. Galu galā, patiesÄ«bā man vienkārÅ”i vajag visu spēku kubectl tÄ«meklÄ«, proti:

  • visu (tikai lasāmo) darbÄ«bu pieejamÄ«ba, kurām lietotāji izvēlas izmantot kubectl;
  • visiem URL ir jābÅ«t pastāvÄ«giem un jāatspoguļo lapa tās sākotnējā formā, lai kolēģi varētu tos kopÄ«got un izmantot citos rÄ«kos;
  • atbalsts visiem Kubernetes objektiem, kas ļaus atrisināt jebkura veida problēmas;
  • resursu sarakstiem jābÅ«t lejupielādējamiem turpmākam darbam (izklājlapās, CLI rÄ«kos, piemēram, grep) un uzglabāŔana (piemēram, pēcnāves gadÄ«jumam);
  • atbalsts resursu atlasei pēc etiÄ·etes (lÄ«dzÄ«gi kubectl get .. -l);
  • iespēja izveidot kombinētus dažāda veida resursu sarakstus (lÄ«dzÄ«gi kā kubectl get all) iegÅ«t kopÄ«gu operatÄ«vo priekÅ”statu kolēģu starpā (piemēram, reaģējot uz incidentu);
  • iespēja pievienot pielāgotas viedās dziļās saites citiem rÄ«kiem, piemēram, informācijas paneļiem, reÄ£istrētājiem, lietojumprogrammu reÄ£istriem utt. veicināt traucējummeklÄ“Å”anu/kļūdu risināŔanu un reaģēŔanu uz incidentiem;
  • PriekÅ”galam jābÅ«t pēc iespējas vienkārŔākam (tÄ«ram HTML), lai izvairÄ«tos no nejauŔām problēmām, piemēram, iesaldēta JavaScript;
  • vairāku klasteru atbalsts, lai vienkārÅ”otu mijiedarbÄ«bu attālās konsultācijas laikā (piemēram, lai atcerētos tikai vienu URL);
  • Ja iespējams, situācijas analÄ«ze ir jāvienkārÅ”o (piemēram, ar saitēm, lai lejupielādētu resursus visiem klasteriem/nosaukumvietām);
  • papildu iespējas elastÄ«gu saiÅ”u veidoÅ”anai un teksta informācijas izcelÅ”anai, piemēram, lai varētu kolēģus norādÄ«t uz konkrētu sadaļu resursa aprakstā (rindiņa YAML valodā);
  • iespēja pielāgoties konkrēta klienta prasÄ«bām, piemēram, ļaujot izveidot Ä«paÅ”as displeja veidnes CRD, savus tabulu skatus un mainÄ«t CSS stilus;
  • rÄ«ki tālākai izpētei komandrindā (piemēram, rāda pilnas komandas kubectl, gatavs kopÄ“Å”anai);

Papildus uzdevumiem, kas atrisināti Kubernetes Web View (bez vārtiem) palika:

  • Kubernetes objektu abstrakcija;
  • lietojumprogrammu pārvaldÄ«ba (piemēram, izvietoÅ”anas pārvaldÄ«ba, Helm diagrammas utt.);
  • rakstÄ«Å”anas darbÄ«bas (jāveic, izmantojot droÅ”us CI/CD un/vai GitOps rÄ«kus);
  • skaists interfeiss (JavaScript, motÄ«vi utt.);
  • vizualizācija (sk kube-ops-view);
  • izmaksu analÄ«ze (sk kube-resursa ziņojums).

Kā Kubernetes Web View palīdz sniegt atbalstu un reaģēt uz incidentiem?

atbalsts

  • Visas saites ir pastāvÄ«gas, kas atvieglo informācijas apmaiņu ar kolēģiem.
  • JÅ«s varat izveidot jÅ«su idejas, piemēram, attēlot visus izvietojumus un aplikumus ar noteiktu etiÄ·eti divos konkrētos klasteros (saitē var norādÄ«t vairākus klasteru nosaukumus un resursu veidus, atdalot tos ar komatiem).
  • JÅ«s varat atsaukties uz noteiktas rindas YAML failā objektu, norādot iespējamās problēmas objekta specifikācijā.

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)
Meklēt pēc klasteriem Kubernetes tīmekļa skatā

Negadījuma reakcija

  • Globālā meklÄ“Å”ana (globālā meklÄ“Å”ana) ļauj meklēt objektus visos klasteros.
  • Saraksta skati var attēlot visus objektus ar noteiktu stāvokli/kolonnu visos klasteros (piemēram, mums jāatrod visi podi ar statusu ā€œGaidaā€).
  • Objektu sarakstus var lejupielādēt ar cilnēm atdalÄ«tu vērtÄ«bu (TSV) formātā vēlākai analÄ«zei.
  • Pielāgojamas ārējās saites Ä»auj pārslēgties uz saistÄ«tajiem informācijas paneļiem un citiem rÄ«kiem.

Paziņojums par Kubernetes tīmekļa skatu (un īss pārskats par citām Kubernetes tīmekļa saskarnēm)
Kubernetes Web View: saraksts ar aplikācijām ar statusu ā€œGaidaā€ visās kopās

Ja vēlaties izmēģināt Kubernetes Web View, iesaku to pārbaudÄ«t dokumentācija vai paskaties tieÅ”raides demonstrācija.

Protams, saskarne varētu bÅ«t labāka, taču pagaidām Kubernetes Web View ir rÄ«ks ā€œpieredzējuÅ”iem lietotājiemā€, kuri vajadzÄ«bas gadÄ«jumā nevairās manuāli manipulēt ar URL ceļiem. Ja jums ir kādi komentāri/papildinājumi/ieteikumi, lÅ«dzu sazinieties ar mani Twitter!

Šajā rakstā ir sniegta īsa vēstures vēsture, kuras rezultātā tika izveidots Kubernetes Web View. Vēl sekos! (Piezīme. tulk.: Viņus vajadzētu sagaidīt autora emuārs.)

PS no tulka

Lasi arī mūsu emuārā:

Avots: www.habr.com

Pievieno komentāru