Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

Let wel. vertaal.: Die skrywer van die oorspronklike materiaal is Henning Jacobs van Zalando. Hy het 'n nuwe webkoppelvlak geskep om met Kubernetes te werk, wat geposisioneer is as "kubectl vir die web." Waarom 'n nuwe Oopbron-projek verskyn het en aan watter kriteria nie voldoen is deur bestaande oplossings nie - lees sy artikel.

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

In hierdie pos hersien ek die verskillende oopbron-Kubernetes-webkoppelvlakke, lê my vereistes vir 'n universele UI uiteen en verduidelik hoekom ek ontwikkel het Kubernetes WebView - 'n koppelvlak wat ontwerp is om dit makliker te maak om verskeie groepe gelyktydig te ondersteun en op te los.

Gebruik gevalle

By Zalando bedien ons 'n groot aantal Kubernetes-gebruikers (900+) en groepe (100+). Daar is 'n paar algemene gebruiksgevalle wat sal baat by 'n toegewyde webhulpmiddel:

  1. kommunikasie met kollegas vir ondersteuning;
  2. op voorvalle te reageer en die oorsake daarvan te ondersoek.

Ondersteun

In my ervaring lyk ondersteuningskommunikasie dikwels soos volg:

— Help, ons diens XYZ is nie beskikbaar nie!
— Wat sien jy wanneer jy optree kubectl describe ingress ...?

Of iets soortgelyks vir CRD:

— Ek het 'n probleem met die identifikasiediens ...
— Wat lewer die bevel op? kubectl describe platformcredentialsset ...?

Sulke kommunikasie kom gewoonlik neer op die invoer van verskeie variasies van die opdrag kubectl om die probleem te identifiseer. As gevolg hiervan word beide partye tot die gesprek gedwing om voortdurend tussen die terminale en die webklets te wissel, plus hulle neem 'n ander situasie waar.

Daarom wil ek graag hê dat die Kubernetes-webfront die volgende toelaat:

  • gebruikers kon skakels uitruil en dieselfde ding waarneem;
  • sou help vermy menslike foute ter ondersteuning: byvoorbeeld, aanmeld by die verkeerde groep op die opdragreël, tikfoute in CLI-opdragte, ens.;
  • sou toelaat genereer jou eie sienings om aan kollegas te stuur, dit wil sê, voeg kolomme etikette by, vertoon baie soorte hulpbronne op een bladsy;
  • Ideaal gesproke moet hierdie webinstrument jou toelaat om te stel "diep" skakels na spesifieke afdelings van YAML (byvoorbeeld om 'n verkeerde parameter uit te wys wat mislukkings veroorsaak).

Insident reaksie en analise

Reageer op infrastruktuurvoorvalle vereis situasiebewustheid, die vermoë om impak te assesseer en patrone in groepe te soek. Enkele werklike voorbeelde:

  • 'n Kritieke produksiediens het probleme en jy moet vind alle Kubernetes-bronne op naam in alle groepeom probleme op te los;
  • nodusse begin val wanneer skaal en jy nodig het vind alle peule met die status "Hangende" in alle groepeom die omvang van die probleem te assesseer;
  • individuele gebruikers rapporteer 'n probleem met DaemonSet wat oor alle groepe ontplooi is en moet uitvind Is die probleem totaal?.

My standaard oplossing in sulke gevalle is iets soos for i in $clusters; do kubectl ...; done. Uiteraard kan 'n instrument ontwikkel word wat soortgelyke vermoëns bied.

Bestaande Kubernetes-webkoppelvlakke

Die oopbronwêreld van webkoppelvlakke na Kubernetes is nie baie groot nie*, so ek het probeer om meer inligting in te samel deur Twitter:

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

*My verduideliking vir die beperkte aantal webkoppelvlakke vir Kubernetes: wolkdienste en Kubernetes-verskaffers bied gewoonlik hul eie frontends aan, so die mark vir "goeie" gratis Kubernetes UI is relatief klein.

Deur 'n tweet het ek geleer oor K8Dash, Kubernator и Oktant. Kom ons kyk na hulle en ander bestaande oopbronoplossings, kom ons probeer verstaan ​​wat dit is.

K8Dash

"K8Dash is die eenvoudigste manier om 'n Kubernetes-kluster te bestuur."

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

K8Dash Lyk goed en voel vinnig, maar het 'n aantal nadele vir die gebruiksgevalle hierbo gelys:

  • Werk slegs binne die grense van een groepie.
  • Sortering en filtering is moontlik, maar het nie permaskakels nie.
  • Daar is geen ondersteuning vir Custom Resource Definitions (CRD's) nie.

Kubernator

"Kubernator is 'n alternatiewe UI vir Kubernetes. Anders as die hoëvlak Kubernetes Dashboard, bied dit laevlakbeheer en uitstekende sigbaarheid in alle voorwerpe in die groepering met die vermoë om nuwes te skep, dit te redigeer en konflikte op te los. Aangesien dit 'n heeltemal kliënt-kant toepassing is (soos kubectl), benodig dit geen ander agterkant as die Kubernetes API-bediener self nie, en respekteer ook groeptoegangsreëls.

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

Dit is 'n redelik akkurate beskrywing Kubernator. Ongelukkig ontbreek dit 'n paar kenmerke:

  • Dien slegs een groepie.
  • Daar is geen lysaansigmodus nie (d.w.s. jy kan nie alle peule met die "Hangend"-status vertoon nie).

Kubernetes -dashboard

"Kubernetes Dashboard is 'n universele webkoppelvlak vir Kubernetes-klusters. Dit stel gebruikers in staat om toepassings wat in 'n groepering loop, te bestuur en op te los, asook om die groep self te bestuur."

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

Ongelukkig, Kubernetes -dashboard help nie regtig met my ondersteuning en insident reaksie aktiwiteite nie, want dit:

  • daar is geen permanente skakels nie, byvoorbeeld wanneer ek hulpbronne filter of die sorteervolgorde verander;
  • daar is geen maklike manier om volgens status te filter nie - sien byvoorbeeld alle peule met die status "Hangende";
  • slegs een groepering word ondersteun;
  • CRD's word nie ondersteun nie (hierdie kenmerk is onder ontwikkeling);
  • geen pasgemaakte kolomme nie (soos kolomme gemerk volgens tipe kubectl -L).

Kubernetes Operasionele Aansig (kube-ops-aansig)

"Stelsel Dashboard Observer vir K8s Cluster Space."

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

У Kubernetes Operasionele Aansig 'n Heeltemal ander benadering: hierdie instrument wys slegs cluster nodusse en peule met WebGL, sonder enige teksobjekbesonderhede. Dit is wonderlik vir 'n vinnige oorsig van die groep se gesondheid (val peule?)*, maar dit is nie geskik vir die gebruiksgevalle van ondersteuning en insidentreaksie wat hierbo beskryf is nie.

* Let wel. vertaal.: In hierdie sin stel jy dalk ook belang in ons inprop grafana-statuskaart, waaroor ons in meer besonderhede in Hierdie artikel.

Kubernetes-hulpbronverslag (kube-hulpbronverslag)

"Versamel pod- en Kubernetes-groeperinghulpbronversoeke, vergelyk dit met hulpbronverbruik en genereer statiese HTML."

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

Kubernetes Hulpbronverslag genereer statiese HTML-verslae oor hulpbrongebruik en kosteverspreiding oor spanne/toepassings in groepe. Die verslag is ietwat nuttig vir ondersteuning en insidentreaksie, want dit laat jou toe om vinnig die groep te vind waar die toepassing ontplooi word.

Let wel. vertaal.: 'n Diens en hulpmiddel kan ook nuttig wees om inligting oor die toewysing van hulpbronne en hul koste onder wolkverskaffers te bekyk Kubecost, wat ons hersien onlangs gepubliseer.

Oktant

"'n Uitbreidbare webplatform vir ontwikkelaars wat ontwerp is om 'n groter begrip van die kompleksiteit van Kubernetes-klusters te gee."

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

Oktant, geskep deur VMware, is 'n nuwe produk waaroor ek relatief onlangs geleer het. Met sy hulp is dit gerieflik om die groepering op 'n plaaslike masjien te verken (daar is selfs visualiserings), maar dit spreek die kwessies van ondersteuning en insidentreaksie slegs in 'n beperkte mate aan. Nadele van Oktant:

  • Geen groepsoektog nie.
  • Werk slegs op die plaaslike masjien (ontplooi nie na 'n groepie nie).
  • Kan nie voorwerpe sorteer/filtreer nie (slegs etiketkieser word ondersteun).
  • Jy kan nie gepasmaakte kolomme spesifiseer nie.
  • Jy kan nie voorwerpe volgens naamspasie lys nie.

Ek het ook probleme gehad met die stabiliteit van Octant met Zalando-klusters: op sommige CRD's hy was besig om te val.

Ons stel Kubernetes Web View bekend

"kubectl vir die web".

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)

Nadat ek die beskikbare koppelvlakopsies vir Kubernetes ontleed het, het ek besluit om 'n nuwe een te skep: Kubernetes WebView. Ek het immers net al die krag nodig kubectl op die web, naamlik:

  • beskikbaarheid van alle (leesalleen) bedrywighede waarvoor gebruikers verkies om kubectl te gebruik;
  • alle URL's moet permanent wees en die bladsy in sy oorspronklike vorm verteenwoordig sodat kollegas dit kan deel en in ander nutsgoed gebruik;
  • ondersteuning vir alle Kubernetes-voorwerpe, wat jou sal toelaat om enige tipe probleem op te los;
  • hulpbronlyste moet aflaaibaar wees vir verdere werk (in sigblaaie, CLI-nutsgoed soos grep) en berging (byvoorbeeld vir nadoodse ondersoeke);
  • ondersteuning vir die keuse van hulpbronne volgens etiket (soortgelyk aan kubectl get .. -l);
  • die vermoë om gekombineerde lyste van verskillende soorte hulpbronne te skep (soortgelyk aan kubectl get all) om 'n gemeenskaplike operasionele prentjie onder kollegas te verkry (byvoorbeeld tydens 'n voorvalreaksie);
  • die vermoë om pasgemaakte slim diepskakels by ander instrumente soos dashboards, loggers, toepassingsregisters, ens. om foutopsporing/oplossing van foute en reaksie op insidente te fasiliteer;
  • Die frontend moet so eenvoudig as moontlik wees (suiwer HTML) om ewekansige probleme te vermy, soos gevriesde JavaScript;
  • ondersteuning vir veelvuldige groepe om interaksie tydens afgeleë konsultasie te vereenvoudig (byvoorbeeld om net een URL te onthou);
  • Indien moontlik, moet situasionele analise vereenvoudig word (byvoorbeeld met skakels om hulpbronne vir alle groepe/naamruimtes af te laai);
  • bykomende geleenthede om buigsame skakels te skep en teksinligting uit te lig, byvoorbeeld, sodat jy kollegas na 'n spesifieke afdeling in die hulpbronbeskrywing ('n reël in YAML) kan wys;
  • die vermoë om aan te pas by die vereistes van 'n spesifieke kliënt, byvoorbeeld, sodat jy spesiale vertoonsjablone vir CRD's, jou eie tabelaansigte kan skep en CSS-style kan verander;
  • gereedskap vir verdere verkenning op die opdragreël (byvoorbeeld om volledige opdragte te wys kubectl, gereed vir kopiëring);

Behalwe die take wat in Kubernetes Web View opgelos is (nie-doelwitte) gebly:

  • abstraksie van Kubernetes-objekte;
  • toepassingsbestuur (byvoorbeeld ontplooiingsbestuur, stuurkaarte, ens.);
  • skryfbewerkings (moet deur veilige CI/CD en/of GitOps-nutsgoed gedoen word);
  • pragtige koppelvlak (JavaScript, temas, ens.);
  • visualisering (sien kube-ops-aansig);
  • koste-analise (sien kube-hulpbron-verslag).

Hoe help Kubernetes Web View met ondersteuning en insidentreaksie?

Ondersteun

  • Alle skakels is permanent, wat dit makliker maak om inligting met kollegas uit te ruil.
  • Jy kan skep jou idees, vertoon byvoorbeeld alle Ontplooiings en Peule met 'n spesifieke etiket in twee spesifieke groepe (verskeie groepname en hulpbrontipes kan in die skakel gespesifiseer word, geskei deur kommas).
  • Jy kan verwys na spesifieke lyne in 'n YAML-lêer objek, wat potensiële probleme in die objekspesifikasie aandui.

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)
Soek volgens groepe in Kubernetes Web View

Insident reaksie

  • Wêreldwye soektog (wêreldwye soektog) laat jou toe om na voorwerpe in alle trosse te soek.
  • Lys Views kan alle voorwerpe met 'n sekere toestand/kolom in alle trosse vertoon (byvoorbeeld, ons moet alle peule met die status "Hangende" vind).
  • Lys van voorwerpe kan afgelaai word in tab-geskeide waarde (TSV) formaat vir latere ontleding.
  • Aanpasbare eksterne skakels Laat jou toe om oor te skakel na verwante dashboards en ander gereedskap.

Aankondiging van die Kubernetes-webaansig (en 'n kort oorsig van ander web-UI's vir Kubernetes)
Kubernetes Web View: lys van peule met "Hangende" status in alle trosse

As jy Kubernetes Web View wil probeer, beveel ek aan om uit te gaan dokumentasie of kyk na lewendige demo.

Natuurlik kan die koppelvlak beter wees, maar vir nou is Kubernetes Web View 'n hulpmiddel vir "gevorderde gebruikers" wat nie skroom om URL-paaie met die hand te manipuleer indien nodig nie. Indien u enige kommentaar/byvoegings/voorstelle het, kontak asseblief saam met my op Twitter!

Hierdie artikel is 'n kort geskiedenis van die agtergrond wat gelei het tot die skepping van Kubernetes Web View. Meer sal volg! (Let wel. vertaal.: Hulle moet verwag word in skrywer se blog.)

PS van die vertaler

Lees ook op ons blog:

Bron: will.com

Voeg 'n opmerking