Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Nota. transl.: Ang tagsulat sa orihinal nga materyal mao si Henning Jacobs gikan sa Zalando. Naghimo siya usa ka bag-ong interface sa web alang sa pagtrabaho kauban ang Kubernetes, nga gipahimutang ingon "kubectl para sa web." Ngano nga ang usa ka bag-ong proyekto sa Open Source mitungha ug unsa nga mga pamatasan ang wala matuman sa mga naglungtad nga solusyon - basaha ang iyang artikulo.

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Niini nga post, girepaso nako ang lain-laing open source nga Kubernetes nga mga web interface, gibutang ang akong mga kinahanglanon alang sa usa ka unibersal nga UI, ug gipatin-aw kung nganong naugmad nako Kubernetes WebView β€” usa ka interface nga gidisenyo aron mapadali ang pagsuporta ug pag-troubleshoot sa daghang mga cluster sa usa ka higayon.

Paggamit sa mga kaso

Sa Zalando nagserbisyo kami sa daghang mga Kubernetes nga tiggamit (900+) ug mga cluster (100+). Adunay duha ka sagad nga mga kaso sa paggamit nga makabenepisyo gikan sa usa ka gipahinungod nga himan sa web:

  1. komunikasyon sa mga kauban alang sa suporta;
  2. pagtubag sa mga insidente ug pag-imbestigar sa ilang mga hinungdan.

suporta

Sa akong kasinatian, ang mga komunikasyon sa suporta kanunay nga ingon niini:

β€” Tabang, dili magamit ang among serbisyo nga XYZ!
β€” Unsay imong makita sa dihang mopasundayag ka kubectl describe ingress ...?

O susama sa CRD:

β€” Naa koy problema sa serbisyo sa pag-ila...
β€” Unsay gipatungha sa sugo? kubectl describe platformcredentialsset ...?

Ang ingon nga komunikasyon kasagaran moabut sa pagsulod sa lainlaing mga kalainan sa mando kubectl aron mailhan ang problema. Ingon usa ka sangputanan, ang duha nga mga partido sa panag-istoryahanay napugos nga kanunay nga magbalhin tali sa terminal ug sa web chat, dugang nga naobserbahan nila ang lahi nga kahimtang.

Busa, gusto ko nga ang Kubernetes web frontend tugotan ang mosunod:

  • ang mga tiggamit mahimo exchange links ug bantayi ang samang butang;
  • makatabang unta paglikay sa mga sayop sa tawo sa suporta: pananglitan, pag-log in sa sayop nga cluster sa command line, typo sa CLI commands, ug uban pa;
  • motugot paghimo sa imong kaugalingon nga mga panan-aw aron ipadala sa mga kauban, nga mao, pagdugang mga kolum sa mga tag, ipakita ang daghang mga lahi sa mga kapanguhaan sa usa ka panid;
  • Sa tinuud, kini nga himan sa web kinahanglan magtugot kanimo sa pag-set Ang "lawom" nga mga link sa piho nga mga seksyon sa YAML (pananglitan, pagtudlo sa usa ka sayup nga parameter nga hinungdan sa mga kapakyasan).

Tubag ug pagtuki sa insidente

Ang pagtubag sa mga insidente sa imprastraktura nanginahanglan ug kaamgohan sa sitwasyon, ang katakus sa pagtimbang-timbang sa epekto, ug pagpangita sa mga sumbanan sa mga cluster. Pipila ka tinuod nga mga ehemplo sa kinabuhi:

  • Ang usa ka kritikal nga serbisyo sa produksiyon adunay mga problema ug kinahanglan nimo pangitaa ang tanang Kubernetes resources pinaagi sa ngalan sa tanang clusterssa pag-troubleshoot;
  • node magsugod sa pagkahulog sa diha nga scaling ug kamo kinahanglan pangitaa ang tanan nga mga pod nga adunay status nga "Pending" sa tanan nga mga clusteraron masusi ang gilapdon sa problema;
  • Ang mga indibidwal nga tiggamit nagreport sa usa ka isyu sa DaemonSet nga gipakatap sa tanan nga mga kumpol ug kinahanglan nga mahibal-an Total ba ang problema?.

Ang akong sumbanan nga solusyon sa ingon nga mga kaso sama sa for i in $clusters; do kubectl ...; done. Dayag, posible nga makahimo og usa ka himan nga naghatag parehas nga kapabilidad.

Anaa na nga mga web interface sa Kubernetes

Ang open source nga kalibutan sa mga web interface sa Kubernetes dili kaayo dako*, mao nga misulay ko sa pagtigom ug dugang impormasyon gamit Twitter:

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

*Ang akong katin-awan alang sa limitado nga gidaghanon sa mga web interface para sa Kubernetes: cloud services ug Kubernetes vendors kasagarang nagtanyag sa ilang kaugalingong frontends, mao nga ang merkado alang sa "maayo" nga libre nga Kubernetes UI medyo gamay.

Pinaagi sa usa ka tweet nga akong nahibal-an K8Dash, Kubernator ΠΈ Octant. Atong tan-awon sila ug uban pang kasamtangan nga mga solusyon sa Open Source, atong sulayan nga masabtan kung unsa sila.

K8Dash

"Ang K8Dash mao ang pinakasimple nga paagi sa pagdumala sa usa ka Kubernetes cluster."

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

K8Dash Nindot tan-awon ug paspas nga gibati, apan adunay daghang mga disbentaha alang sa mga kaso sa paggamit nga gilista sa ibabaw:

  • Naglihok lamang sulod sa mga utlanan sa usa ka cluster.
  • Posible ang paghan-ay ug pagsala, apan walay mga permalink.
  • Walay suporta alang sa Custom Resource Definition (CRDs).

Kubernator

"Ang Kubernator usa ka alternatibong UI para sa Kubernetes. Dili sama sa taas nga lebel sa Kubernetes Dashboard, naghatag kini og ubos nga lebel nga kontrol ug maayo kaayo nga visibility sa tanang mga butang sa cluster nga adunay abilidad sa paghimo og mga bag-o, pag-edit niini, ug pagsulbad sa mga panagbangi. Ingon usa ka bug-os nga aplikasyon sa kilid sa kliyente (sama sa kubectl), wala kini magkinahanglan bisan unsang backend gawas sa server mismo sa Kubernetes API, ug girespeto usab ang mga lagda sa pag-access sa cluster.

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Kini usa ka tukma nga paghulagway Kubernator. Ikasubo, kini kulang sa pipila ka mga bahin:

  • Nag-alagad lamang sa usa ka cluster.
  • Walay list view mode (pananglitan, dili nimo mapakita ang tanang pod nga adunay status nga "Pending").

Kubernetes Dashboard

"Ang Kubernetes Dashboard usa ka unibersal nga interface sa web alang sa mga kumpol sa Kubernetes. Gitugotan niini ang mga tiggamit sa pagdumala ug pag-troubleshoot sa mga aplikasyon nga nagdagan sa usa ka cluster, ingon man pagdumala sa cluster mismo.

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Makasubo Kubernetes Dashboard dili gyud makatabang sa akong suporta ug mga kalihokan sa pagtubag sa insidente tungod kay kini:

  • walay permanente nga mga sumpay, pananglitan kon ako magsala sa mga kahinguhaan o mag-usab sa han-ay sa paghan-ay;
  • wala'y sayon ​​​​nga paagi sa pagsala pinaagi sa status - pananglitan, tan-awa ang tanan nga mga pod nga adunay status nga "Pending";
  • usa lang ka cluster ang gisuportahan;
  • Ang mga CRD wala gisuportahan (kini nga bahin gipauswag);
  • walay custom nga mga kolum (sama sa mga kolum nga gimarkahan sa tipo kubectl -L).

Kubernetes Operational View (kube-ops-view)

"System Dashboard Observer alang sa K8s Cluster Space."

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Π£ Kubernetes Operational View Usa ka hingpit nga lahi nga pamaagi: kini nga himan nagpakita lamang sa mga cluster node ug pod gamit ang WebGL, nga wala’y bisan unsang mga detalye sa teksto nga butang. Maayo kini alang sa usa ka dali nga pagtan-aw sa kahimsog sa cluster (nahulog ba ang mga pod?) *, apan dili kini angay alang sa suporta ug mga kaso sa paggamit sa pagtubag sa insidente nga gihulagway sa taas.

* Nota. transl.: Niini nga diwa, mahimo ka usab nga interesado sa among plugin grafana-statusmap, nga among gihisgutan sa mas detalyado sa kini nga artikulo.

Kubernetes Resource Report (kube-resource-report)

"Pagkolekta pod ug Kubernetes cluster resource requests, itandi kini sa resource consumption, ug paghimo og static HTML."

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Kubernetes Resource Report nagmugna og static nga HTML nga mga taho sa paggamit sa kahinguhaan ug pag-apod-apod sa gasto sa mga team/aplikasyon sa mga cluster. Ang report medyo mapuslanon alang sa suporta ug pagtubag sa insidente tungod kay kini nagtugot kanimo nga dali nga makit-an ang cluster diin ang aplikasyon gi-deploy.

Nota. transl.: Ang usa ka serbisyo ug himan mahimo usab nga mapuslanon sa pagtan-aw sa impormasyon mahitungod sa alokasyon sa mga kahinguhaan ug sa ilang mga gasto taliwala sa mga cloud providers Kubecost, nga atong girepaso bag-o lang gimantala.

Octant

"Usa ka gipalapdan nga plataporma sa web alang sa mga nag-develop nga gidisenyo aron mahatagan ang labi nga pagsabut sa pagkakomplikado sa mga kumpol sa Kubernetes."

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Octant, nga gihimo sa VMware, usa ka bag-ong produkto nga akong nahibal-an bahin sa bag-o lang. Uban sa tabang niini, sayon ​​​​ang pag-usisa sa cluster sa usa ka lokal nga makina (adunay bisan mga visualization), apan kini nagtubag sa mga isyu sa suporta ug pagtubag sa insidente sa limitado nga gidak-on. Mga disadvantages sa Octant:

  • Walay cluster search.
  • Nagtrabaho lamang sa lokal nga makina (wala mag-deploy sa usa ka cluster).
  • Dili ma-sort/filter ang mga butang (label selector lang ang gisuportahan).
  • Dili nimo matino ang naandan nga mga kolum.
  • Dili nimo malista ang mga butang pinaagi sa namespace.

Adunay usab ako mga problema sa kalig-on sa Octant sa mga cluster sa Zalando: sa pipila ka mga CRD nahulog siya.

Pagpaila sa Kubernetes Web View

"kubectl para sa web".

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)

Pagkahuman sa pag-analisar sa magamit nga mga kapilian sa interface alang sa Kubernetes, nakahukom ko nga maghimo usa ka bag-o: Kubernetes WebView. Tuod man, sa pagkatinuod, gikinahanglan lang nako ang tanang gahom kubectl sa web, nga mao ang:

  • pagkaanaa sa tanan (read-only) nga mga operasyon nga gusto sa mga tiggamit sa paggamit sa kubectl;
  • ang tanan nga mga URL kinahanglan nga permanente ug nagrepresentar sa panid sa orihinal nga porma niini aron ang mga kauban makapaambit niini ug magamit kini sa ubang mga himan;
  • suporta alang sa tanan nga mga butang sa Kubernetes, nga magtugot kanimo sa pagsulbad sa bisan unsang matang sa problema;
  • Ang mga lista sa kapanguhaan kinahanglan nga ma-download alang sa dugang nga trabaho (sa mga spreadsheet, mga gamit sa CLI sama sa grep) ug pagtipig (pananglitan, alang sa postmortem);
  • suporta alang sa pagpili sa mga kapanguhaan pinaagi sa label (sama sa kubectl get .. -l);
  • ang abilidad sa paghimo og hiniusa nga mga lista sa nagkalain-laing matang sa mga kahinguhaan (susama sa kubectl get all) aron makakuha og komon nga operational nga hulagway sa mga kauban (pananglitan, atol sa pagtubag sa insidente);
  • ang abilidad sa pagdugang sa naandan nga smart deep links sa ubang mga himan sama sa dashboards, loggers, application registries, etc. aron mapadali ang pag-troubleshoot/pagsulbad sa mga sayop ug pagtubag sa mga insidente;
  • Ang frontend kinahanglan nga yano kutob sa mahimo (pure HTML) aron malikayan ang mga random nga problema, sama sa frozen JavaScript;
  • suporta alang sa daghang mga pungpong aron pasimplehon ang interaksyon sa panahon sa hilit nga pagkonsulta (pananglitan, paghinumdom sa usa lamang ka URL);
  • Kung mahimo, ang pag-analisa sa sitwasyon kinahanglan nga pasimplehon (pananglitan, adunay mga link aron ma-download ang mga kapanguhaan alang sa tanan nga mga clusters/namespaces);
  • dugang nga mga kapabilidad alang sa pagmugna og flexible links ug pag-highlight sa impormasyon sa teksto, pananglitan, aron imong matudlo ang mga kauban sa usa ka piho nga seksyon sa paghulagway sa kapanguhaan (usa ka linya sa YAML);
  • ang abilidad sa pagpahiangay sa mga kinahanglanon sa usa ka piho nga kliyente, pananglitan, nagtugot kanimo sa paghimo og espesyal nga mga template sa pagpakita alang sa mga CRD, imong kaugalingon nga pagtan-aw sa lamesa, ug pagbag-o sa mga istilo sa CSS;
  • mga himan alang sa dugang nga eksplorasyon sa command line (pananglitan, pagpakita sa bug-os nga mga sugo kubectl, andam alang sa pagkopya);

Labaw sa mga buluhaton nga nasulbad sa Kubernetes Web View (dili mga tumong) nagpabilin:

  • abstraction sa Kubernetes nga mga butang;
  • pagdumala sa aplikasyon (pananglitan, pagdumala sa deployment, Helm chart, ug uban pa);
  • pagsulat sa mga operasyon (kinahanglan buhaton pinaagi sa luwas nga CI/CD ug/o mga himan sa GitOps);
  • nindot nga interface (JavaScript, tema, ug uban pa);
  • visualization (tan-awa kube-ops-view);
  • pagtuki sa gasto (tan-awa kube-resource-report).

Giunsa pagtabang sa Kubernetes Web View sa suporta ug tubag sa insidente?

suporta

  • Ang tanan nga mga link permanente, nga nagpasayon ​​sa pagbayloay og impormasyon sa mga kauban.
  • Makahimo ka imong mga ideya, pananglitan, ipakita ang tanang Deployment ug Pods nga adunay espesipikong label sa duha ka espesipikong mga pungpong (daghang mga ngalan sa cluster ug mga matang sa kahinguhaan mahimong espesipiko sa link, gibulag sa mga koma).
  • Mahimo nimong i-refer sa piho nga mga linya sa usa ka YAML file butang, nga nagpakita sa posibleng mga problema sa detalye sa butang.

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)
Pangita pinaagi sa mga cluster sa Kubernetes Web View

Tubag sa Insidente

  • Pangkalibutanon nga pagpangita (global nga pagpangita) nagtugot kanimo sa pagpangita sa mga butang sa tanan nga mga cluster.
  • Mga Panglantaw sa Listahan mahimong ipakita ang tanan nga mga butang nga adunay usa ka piho nga estado / kolum sa tanan nga mga cluster (pananglitan, kinahanglan naton pangitaon ang tanan nga mga pod nga adunay status nga "Pending").
  • Ang mga lista sa mga butang mahimong ma-download sa tab-separated value (TSV) nga format para sa ulahi nga pagtuki.
  • Napasibo nga external links Nagtugot kanimo sa pagbalhin sa mga may kalabutan nga dashboard ug uban pang mga himan.

Pagpahibalo sa Kubernetes Web View (ug usa ka mubo nga kinatibuk-ang paglantaw sa ubang mga web UI para sa Kubernetes)
Kubernetes Web View: lista sa mga pod nga adunay status nga β€œPending” sa tanang cluster

Kung gusto nimo sulayan ang Kubernetes Web View, girekomenda nako nga susihon dokumentasyon o tan-awa live nga demo.

Siyempre, ang interface mahimong mas maayo, apan sa pagkakaron ang Kubernetes Web View usa ka himan alang sa "advanced users" nga dili molikay sa pagmaniobra sa URL nga mano-mano kung gikinahanglan. Kung naa kay komento/dugang/sugyot, palihog kontaka kauban nako sa Twitter!

Kini nga artikulo usa ka mubo nga kasaysayan sa background nga misangpot sa paghimo sa Kubernetes Web View. Daghan pa ang mosunod! (Nota. transl.: Sila kinahanglan nga gipaabut sa blog sa tagsulat.)

PS gikan sa tighubad

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment