Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Märkus tõlke kohta.: Originaali materjali autor on Henning Jacobs ettevõttest Zalando. Ta on loonud uue veebiliidese Kubernetesega töötamiseks, mida positsioneeritakse kui «kubectl veebis». Miks uus Open Source projekt tekkis ja millistele kriteeriumidele ei vastanud juba olemasolevad lahendused — loe tema artiklist.

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Selles publikatsioonis käsitlen erinevaid avatud lähtekoodiga Kubernetes veebiliideseid, väljendan oma nõudmisi universaalsele kasutajaliidesele ja räägin, miks ma arendasin . Antud artikli ja utiliidi autor on Henning Jacobs ettevõttest Zalando, kes positsioneeris uuenduse kui "kubectl veebis". Ta soovis luua tööriista, mis oleks mugav tehnilise toe vormis (näiteks kiiresti näidata probleem veebilingi kaudu) ning reageerida intsidentidele, otsida probleeme mitmes klastris korraga. Tema looming on endiselt arengus (peamiselt autori enda jõul). — liidese, mis on loodud, et hõlbustada mitme klastrite toetust ja tõrkeotsingut.

Kasutusväärid

Zalandos teenindame suurt hulka Kubernetes kasutajaid (üle 900) ja klastreid (üle 100). On paar tüüpilist kasutusjuhtu, kus spetsialiseeritud veebitööriista abi oleks väga teretulnud:

  1. suhtlemine kolleegidega toe raames;
  2. reaktsioonid intsidentidele ja nende põhjuste uurimine.

Tugi

Oma kogemuste põhjal näeb toetussuhe sageli välja järgmiselt:

— Aita, meie teenus XYZ pole saadaval!
— Mis sa näed, kui teed kubectl describe ingress ...?

Või midagi sarnast CRD jaoks:

— Mul on mingi probleem identifitseerimisteenusega...
— Mida annab käsk kubectl describe platformcredentialsset ...?

Selline suhtlemine seisneb tavaliselt erinevate käskude variatsioonide sisestamises, kubectl et probleemi tuvastada. Seetõttu peavad mõlemad osalised pidevalt vahetama terminali ja veebivestluse vahel ning nad näevad erinevat olukorda.

Seetõttu soovin, et Kubernetes'i veebipool võimaldaks järgmist:

  • kasutajad saaksid jagada linke ja näha sama;
  • aitaks vältida inimlikke vigu toes: näiteks vale klastrisse sisenemine käsurida, trükivead CLI käskudes jms; lubaks
  • luua kohandatud vaateid kaasamiseks kolleegidega, st lisada sildigrupid, kuvada mitut tüüpi ressursse ühel lehel; ideaalis peaks see veebitööriist lubama luua
  • «sügavaid» linke konkreetsetesse YAML sektsioonidesse (nt viidatakse valele parameetrile, mis põhjustab tõrkeid). Intsidentidele reageerimine ja analüüs

Реагирование на инциденты и анализ

Juhtumite reageerimine infrastruktuuris nõuab situatsiooniteadlikkust, võimet hinnata mõju ja mustrite leidmist klastrites. Mõned reaalsed näited:

  • kriitilise production-teenuse probleemide ilmnemisel ja teil on vaja leida kõik Kubernetes'i ressursid nime alusel kõigis klastrites, et tõrkeid kõrvaldata;
  • sõlmed hakkavad skaleerimise käigus langema ja teil on vaja leida kõik pod'id, mille staatus on "Pending", kõigis klastrites, et hinnata probleemi ulatust;
  • üksikud kasutajad teatavad probleemist DaemonSet'iga, mis on paigaldatud kõigis klastrites, ja on vajalik välja selgitada, kas probleem on ulatuslik.

Minu tavapärane lahendus sellistel juhtudel on midagi sellist for i in $clusters; do kubectl ...; done. Ilmselt on võimalik välja töötada tööriist, mis pakub sarnaseid võimalusi.

Olemasolevad Kubernetes'i veebiliidesed

Open Source'i maailmas Kubernetes'i veebiliideste osas ei ole liiga suur*, seega proovisin koguda täiendavat teavet Twitteris:

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

* Minu selgitus Kubernetes'i veebiliideste piiratud arvu kohta: pilveteenused ja Kubernetes'i tarnijad pakuvad tavaliselt oma frontende, seega on "head" vabalt saadaval olevad Kubernetes'i UI-d võrreldes madala konkurentsiga.

Twiidi kaudu sain teada K8Dash, Kubernator ja Octant. Vaatame neid ja teisi olemasolevaid Open Source lahendusi, püüdes mõista, mida need endast kujutavad.

K8Dash

"K8Dash on lihtsaim viis Kubernetes'i klastrit hallata."

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

K8Dash näeb hea välja ja tundub töötavat kiiresti, kuid tal on mitmeid puudusi eespool nimetatud kasutusstsenaariumide jaoks:

  • Töötleb ainult ühte klastrit.
  • Sorteerimine ja filtreerimine on võimalik, kuid püsivat linki ei ole.
  • Puudub Custom Resource Definitions (CRD) tugi.

Kubernator

"Kubernator on alternatiivne UI Kubernetes'i jaoks. Erinevalt kõrgetasemelisest Kubernetes Dashboard'ist, pakub ta madalama taseme kontrolli ja suurepärase ülevaate kõigist klastris olevatest objektidest, võimaldades luua uusi, neid redigeerida ja konflikte lahendada. Olles täielikult kliendipoolne rakendus (nagu kubectl), ei nõua see mingit tagapinda peale Kubernetes'i API-serveri, ja arvestab ka ligipääsureeglitega klastrile."

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

See on üsna täpne kirjeldus Kubernator'ist. Kahjuks puuduvad tal mõned võimalused:

  • Toetab ainult ühte klastrit.
  • Ei ole loendivaadet (st. ei saa kuvada kõiki pod'e staatusega "Pending").

Kubernetesi armatuurlaud

«Kubernetes Dashboard – see on universaalne veebiliides Kubernetes klastrite jaoks. See võimaldab kasutajatel hallata rakendusi, mis töötavad klastris, lahendada probleeme ning hallata ise klastrit.»

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Kahjuks, Kubernetesi armatuurlaud ei aita eriti minu toetuse ja intsidentide lahendamise tegevustes, sest seal on:

  • puuduvad stabiilsed lingid, näiteks, kui filtreerin ressursse või muudan sorteerimise järjekorda;
  • puuduvad lihtsad viisid filtrida staatuse järgi – näiteks näha kõiki pod'e staatusega "Pending";
  • toetatakse ainult ühte klastrit;
  • CRD-sid ei toetata (see funktsioon on arendamisel);
  • puuduvad kohandatud veerud (näiteks veerud nagu kubectl -L).

Kubernetesi operatiivvaade (kube-ops-view)

«Klastri K8s ruumi vaatamiseks süsteemipaneel.»

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Uus Kubernetesi operatiivvaade on täiesti erinev lähenemine: see tööriist näitab ainult klastrinõlvu ja pod'e WebGL abil, ilma objekti tekstiliste detailideta. See sobib suurepäraselt klastrite operatiivse seisundi ülevaatamiseks ("pod'id kukuvad ära?")*, kuid ei sobi ülaltoodud intsidentide lahendamise juhtumiteks.

* Märkus tõlke kohta.: Sellega seoses võiksite olla huvitatud ka meie lisa grafana-statusmap, millest rääkisime põhjalikumalt selles artiklis.

Kubernetesi ressursside aruanne (kube-resource-report)

«Koguge andmeid pod'ide ja Kubernetes klastrite ressursi taotluste kohta, võrrelge neid ressursi tarbimisega ja genereerige staatiline HTML.»

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Kubernetes'i Ressursside Aruanne genereerib staatilisi HTML-aruandeid ressursside kasutamise ja kulude jaotamise kohta meeskondade/rakenduste vahel klastrites. Aruanne on mingil määral kasulik toetuse ja intsidentide lahendamise jaoks, kuna see aitab kiiremini leida klastrit, kuhu rakendus on juurutatud.

Märkus tõlke kohta.: Ressursside ja nende kulude jaotuse andmete vaatamine võib samuti osutuda kasulikuks teenuseks ja tööriistaks Kubecost, mille ülevaate me hiljuti avaldasime.

Octant

«Arendajatele suunatud laiendatav veebiplatvorm, mille eesmärk on tagada parem arusaam Kubernetes klastrite keerukusest.»

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Octant, VMware'is loodud uus toode, millest ma olen suhteliselt hiljuti teada saanud. Selle abil on mugav uurida klastrit kohalikul masinal (seal on isegi visualiseeringud), kuid see käsitleb probleemide lahendamist ja reageerimist juhtumitele vaid piiratud ulatuses. Octanti puudused:

  • Klasside vahel ei ole otsingut.
  • Töötatakse ainult kohalikul masinal (ei juurutata klastri sees).
  • Objekte ei saa sortida/filtreerida (toetatakse ainult märgi valijat).
  • Kohandatud veerge ei saa määrata.
  • Can't display lists of objects by namespaces.

Mul oli ka probleeme Octandi töö usaldusväärsusega Zalando klastritega: mõned CRD-d, langesid välja..

Tutvustan Kubernetes Web View'i.

"kubectl veebis."

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)

Analüüsides saadaval olevaid liideseid Kubernetes'ele, otsustasin luua uue: . Antud artikli ja utiliidi autor on Henning Jacobs ettevõttest Zalando, kes positsioneeris uuenduse kui "kubectl veebis". Ta soovis luua tööriista, mis oleks mugav tehnilise toe vormis (näiteks kiiresti näidata probleem veebilingi kaudu) ning reageerida intsidentidele, otsida probleeme mitmes klastris korraga. Tema looming on endiselt arengus (peamiselt autori enda jõul).. Sest põhimõtteliselt on mul vaja vaid kogu võimsust kubectl veebi kaudu, nimelt:

  • kõik (read-only) toimingud, mida kasutajad eelistavad kubectl'is kasutada;
  • kõik URL-id peavad olema püsivad ja esitama lehte algses vormis, et kolleegid saaksid neid jagada ja kasutada teistes tööriistades;
  • toetada kõiki Kubernetes'i objekte, mis võimaldab lahendada mis tahes tüüpi probleeme;
  • ressursside loendid peaksid olema allalaetavad edasiseks kasutamiseks (nt arvutustabelites, CLI-tööriistades nagu grep) ja salvestamiseks (nt postmortem'ides);
  • toetada ressursside valimist siltide alusel (sarnaselt kubectl get .. -l);
  • võimalus luua erinevat tüüpi ressursside ühendatud loendeid (sarnaselt kubectl get all) kolleegide vahelise operatiivse ülevaate saamiseks (nt reageerimise ajal juhtumile);
  • võimalus lisada kohandatud "nutikaid" sügavaid linke teistele tööriistadele, nagu juhtpaneelid, logijad, rakenduste registrid jne, et hõlbustada otsingut/veaotsingut ja reageerimist juhtumitele;
  • front-end peaks olema maksimaalselt lihtne (puht HTML), et vältida juhuslikke probleeme, nagu näiteks blokeeritud JavaScript;
  • toetada mitmeid klastreid, et lihtsustada koostööd kaugkonsultatsioonil (nt meeles pidada vaid ühte URL-i);
  • kui võimalik, peaks olukorranalüüs lihtsustuma (nt linkide allalaaditud ressursside osas kõikide klastrite/nimede ruumide kaudu);
  • lisavarustuse võimalused paindlike linkide koostamiseks ja tekstiinfo esitlemiseks, näiteks et saaks öelda kolleegidele veebiteenuse kirjelduse teatud jaotisele (rida YAML-is);
  • võimalused kohandada vastavalt konkreetse kliendi nõudmistele, näiteks lubades luua CRD-de jaoks spetsiaalseid kuvamismalle, oma tabelivaateid, muuta CSS-stiile;
  • vahendid edasiseks uurimiseks käsureas (näiteks näidates täiendavaid käske kubectl, mis on kopeerimiseks valmis);

Kubernetes Web View'i raames lahendatud ülesannetest (mitte-eesmärgid) jäänud:

  • Kubernetes'i objektide abstraktsioon;
  • rakenduste haldamine (näiteks kasutuselevõttude, Helm chartide jms haldamine);
  • kirjutamise toimingud (peavad toimuma turvalise CI/CD tööriistade ja/või GitOps kaudu);
  • ilus kasutajaliides (JavaScript, teemad jm);
  • visualiseerimine (vt. kube-ops-view);
  • kulude analüüs (vt. horisontaalne automaatne skaleerimine (HPA),).

Kuidas Kubernetes Web View aitab toetada ja reageerida sündmustele?

Tugi

  • Kõik lingid on püsivad, mis hõlbustab teabe jagamist kolleegidega.
  • Saab luua oma vaateid, näiteks kuvada kõik kasutuselevõtted ja pod'id, mis omavad teatud silti kahe konkreetse klastris (mitu klastrite ja ressursside tüüpi nime saab lingisse sisestada, eraldades need komadega).
  • Saate viidata teatud ridadele YAML-failis objekti, viidates võimalikele probleemidele objekti spetsifikatsioonis.

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)
Klastrite otsing Kubernetes Web View's

Sündmustele reageerimine

  • Globaalne otsing (globaalne otsing) võimaldab otsida objekte kõikidest klastritest.
  • Loendivaatemudelid võivad kuvada kõik objektid, millel on teatav olek/veerg kõikides klastrites (näiteks peame leidma kõik pod'id, mille staatus on 'Pending').
  • Objektide loendeid saab alla laadida tabulaatoriga eraldatud väärtuste (TSV) formaadis edasise analüüsi jaoks.
  • Kohandatavad välised lingid võimaldavad liikuda vastavatesse jälgimisplekkidesse ja teistesse tööriistadesse.

Kubernetes Web View veebiliidese avalikustamine (ja lühike ülevaade muudest Kubernetes'i veebiliidestest)
Kubernetes Web View: pod'ide loend, mille staatus on 'Pending' kõikides klastrites

Kui soovite proovida Kubernetes Web View’d, soovitan tutvuda Microsofti dokumentatsioonile. Ainus tähelepanek — Ubuntu distributsiooni oleme juba alla laadinud ja installime selle järgmises etapis. Peaaegu kogu seadistamine seisneb Windowsi Linuxi alamsüsteemi ja Virtuaalmasinate platvormi täiendavate komponentide lubamises ning seejärel arvuti seadete muutuste rakendamiseks taaskäivitamises: või vaadata live demo versiooniga.

Muidugi, liides võiks olla parem, kuid hetkel on Kubernetes Web View tööriist „kogenud kasutajatele“, kes ei pelga URL-ide käsitsi manipuleerimist, kui see on vajalik. Kui teil on ettepanekuid/vääratusi/soove, palun võtke ühendust minuga Twitteris!

See artikkel on lühike jutustus eeldustest, mis viisid Kubernetes Web View loomise juurde. Järgnevad veel teised! (Märkus tõlke kohta.: Neid tuleks oodata autori blogis.)

P.S. tõlkijalt

Lugege ka meie blogist:

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster