Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

Note. iwwersat.: Den Auteur vum Originalmaterial ass den Henning Jacobs aus Zalando. Hien huet eng nei Web-Interface erstallt fir mat Kubernetes ze schaffen, déi als "kubectl fir de Web" positionéiert ass. Firwat en neien Open Source Projet erschéngt a wéi eng Critèren net vun existente Léisungen erfëllt goufen - liest säin Artikel.

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

An dësem Post iwwerpréiwen ech déi verschidde Open Source Kubernetes Web Interfaces, leeën meng Ufuerderunge fir eng universell UI aus, an erkläre firwat ech entwéckelt hunn Kubernetes WebView - en Interface entwéckelt fir et méi einfach ze maachen fir verschidde Cluster gläichzäiteg z'ënnerstëtzen an ze léisen.

Benotzen Fäll

Bei Zalando servéiere mir eng grouss Zuel vu Kubernetes Benotzer (900+) a Cluster (100+). Et ginn e puer allgemeng Benotzungsfäll déi vun engem dedizéierten Web-Tool profitéieren:

  1. Kommunikatioun mat Kollegen fir Ënnerstëtzung;
  2. op Tëschefäll reagéieren an hir Ursaachen ënnersichen.

Ënnerstëtzung

A menger Erfahrung gesäit Ënnerstëtzungskommunikatioun dacks esou aus:

- Hëllef, eise Service XYZ ass net verfügbar!
- Wat gesitt Dir wann Dir Leeschtung kubectl describe ingress ...?

Oder eppes ähnleches fir CRD:

- Ech hunn e Problem mam Identifikatiounsservice ...
- Wat produzéiert de Kommando? kubectl describe platformcredentialsset ...?

Esou Kommunikatioun kënnt normalerweis erof op verschidde Variatiounen vum Kommando aginn kubectl fir de Problem z'identifizéieren. Als Resultat si béid Parteien am Gespréich gezwongen stänneg tëscht dem Terminal an dem Webchat ze wiesselen, plus si beobachten eng aner Situatioun.

Dofir hätt ech gär datt de Kubernetes Web Frontend déi folgend erlaabt:

  • Benotzer kéint Austausch Linken an observéiert déi selwecht Saach;
  • géif hëllefen vermeiden mënschlech Feeler an Ënnerstëtzung: Zum Beispill, aloggen an de falsche Stärekoup op der Kommando Linn, Tippfehler an CLI Kommandoen, etc .;
  • géif erlaben generéiert Är eege Meenung fir Kollegen ze schécken, dat heescht, Spalten vun Tags derbäi, vill Aarte vu Ressourcen op enger Säit weisen;
  • Idealerweis soll dëst Web-Tool Iech erlaben ze setzen "déif" Linken op spezifesch Rubriken vun YAML (zum Beispill, e falsche Parameter ze weisen, deen Feeler verursaacht).

Tëschefall Äntwert an Analyse

Reaktioun op Infrastruktur Tëschefäll erfuerdert Situatiounsbewosstsinn, d'Fäegkeet fir Impakt ze bewäerten a Mustere a Cluster ze sichen. E puer Beispiller vum richtege Liewen:

  • E kriteschen Produktiounsservice huet Problemer an Dir musst Fannt all Kubernetes Ressourcen mam Numm an alle Clusterfir Problemer ze léisen;
  • Wirbelen fänken un ze falen beim Skaléieren an Dir braucht Fannt all Pods mam Status "Pending" an alle Clusterden Ëmfang vum Problem ze bewäerten;
  • eenzel Benotzer berichten e Problem mam DaemonSet, deen iwwer all Cluster ofgesat ass a musse erausfannen Ass de Problem total?.

Meng Standardléisung an esou Fäll ass eppes wéi for i in $clusters; do kubectl ...; done. Natierlech ass et méiglech en Tool z'entwéckelen dat ähnlech Fäegkeeten ubitt.

Bestehend Kubernetes Web Interfaces

D'Open Source Welt vu Webinterfaces op Kubernetes ass net ganz grouss *, also hunn ech probéiert méi Informatioun ze sammelen mat Twitter:

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

*Meng Erklärung fir déi limitéiert Zuel vu Webinterfaces fir Kubernetes: Cloud Servicer a Kubernetes Ubidder bidden normalerweis hir eege Frontends, sou datt de Maart fir "gutt" gratis Kubernetes UI relativ kleng ass.

Duerch en Tweet hunn ech geléiert iwwer K8 Daach, Kubernator и Oktant. Loosst eis se an aner existent Open Source Léisunge kucken, loosst eis probéieren ze verstoen wat se sinn.

K8 Daach

"K8Dash ass den einfachste Wee fir e Kubernetes Cluster ze managen."

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

K8 Daach Gesäit gutt aus a fillt sech séier, awer huet eng Rei Nodeeler fir déi uewe genannte Benotzungsfäll:

  • Schafft nëmme bannent de Grenze vun engem Cluster.
  • Sortéieren a Filteren si méiglech, awer hu keng Permalinks.
  • Et gëtt keng Ënnerstëtzung fir Custom Resource Definitions (CRDs).

Kubernator

"Kubernator ass eng alternativ UI fir Kubernetes. Am Géigesaz zum High-Level Kubernetes Dashboard bitt et Low-Level Kontroll an exzellent Visibilitéit an all Objeten am Cluster mat der Fäegkeet fir nei ze kreéieren, se z'änneren a Konflikter ze léisen. Als ganz Client-Säit Applikatioun (wéi kubectl), erfuerdert et kee Backend anescht wéi de Kubernetes API Server selwer, a respektéiert och Cluster Access Reegele.

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

Dëst ass eng zimlech korrekt Beschreiwung Kubernator. Leider feelt et e puer Features:

  • Déngt nëmmen ee Stärekoup.
  • Et gëtt keng Lëscht View Modus (dh, Dir kënnt net all Pods mat dem Status "Pending" weisen).

Kubernetes Dashboard

"Kubernetes Dashboard ass eng universell Webinterface fir Kubernetes Cluster. Et erlaabt d'Benotzer d'Applikatiounen ze managen an ze léisen, déi an engem Cluster lafen, wéi och de Cluster selwer verwalten.

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

Leider ass Kubernetes Dashboard hëlleft net wierklech mat menger Ënnerstëtzung an Tëschefall Äntwert Aktivitéiten well et:

  • et gi keng permanent Linken, zum Beispill wann ech Ressourcen filteren oder d'Sortuerdnung änneren;
  • et gëtt keen einfache Wee fir no Status ze filteren - zum Beispill, kuckt all Pods mam Status "Pending";
  • nëmmen ee Stärekoup gëtt ënnerstëtzt;
  • CRDs ginn net ënnerstëtzt (dës Fonktioun ass ënner Entwécklung);
  • keng personaliséiert Spalten (wéi Spalten no Typ bezeechent kubectl -L).

Kubernetes Operational View (kube-ops-view)

"System Dashboard Observer fir K8s Cluster Space."

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

У Kubernetes operationell Vue Eng komplett aner Approche: dëst Tool weist nëmme Clusternoden a Pods mat WebGL, ouni Textobjekt Detailer. Et ass super fir e séieren Iwwerbléck iwwer d'Gesondheet vum Stärekoup (falen Pods?)*, awer et ass net gëeegent fir d'Ënnerstëtzung an d'Zwëschefall Äntwert Benotzungsfäll uewen beschriwwen.

* Note. iwwersat.: An dësem Sënn kënnt Dir och un eisem Plugin interesséiert sinn grafana-statusmap, iwwer déi mir méi am Detail geschwat hunn dësen Artikel.

Kubernetes Resource Report (kube-resource-report)

"Sammelt Pod a Kubernetes Cluster Ressource Ufroen, vergläicht se mam Ressourceverbrauch, a generéiert statesch HTML."

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

Kubernetes Ressource Rapport generéiert statesch HTML Berichter iwwer Ressourceverbrauch a Käschteverdeelung iwwer Teams / Uwendungen a Cluster. De Bericht ass e bëssen nëtzlech fir Ënnerstëtzung an Tëschefall Äntwert well et erlaabt Iech séier de Cluster ze fannen wou d'Applikatioun ofgebaut gëtt.

Note. iwwersat.: E Service an Tool kann och nëtzlech sinn fir Informatioun iwwer d'Allokatioun vu Ressourcen an hir Käschten vu Cloud Ubidder ze gesinn Kubecost, déi mir iwwerpréiwen kuerzem publizéiert.

Oktant

"Eng erweiterbar Webplattform fir Entwéckler entwéckelt fir méi Verständnis vun der Komplexitéit vu Kubernetes Cluster ze bidden."

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

Oktant, erstallt vu VMware, ass en neit Produkt dat ech relativ viru kuerzem geléiert hunn. Mat senger Hëllef ass et bequem de Stärekoup op enger lokaler Maschinn ze entdecken (et gi souguer Visualiséierungen), awer et adresséiert d'Themae vun der Ënnerstëtzung an der Tëschefall Äntwert nëmmen a limitéierter Ausmooss. Nodeeler vum Octant:

  • Keng Cluster Sich.
  • Schafft nëmmen op der lokaler Maschinn (deployéiert net op e Cluster).
  • Kann Objekter net sortéieren / filteren (nëmme Labelselektor gëtt ënnerstëtzt).
  • Dir kënnt net personaliséiert Kolonnen uginn.
  • Dir kënnt Objekter net no Nummraum oplëschten.

Ech hat och Problemer mat der Stabilitéit vun Octant mat Zalando Stärekéip: op e puer CRDs hie war gefall.

Aféierung Kubernetes Web View

"kubectl fir de Web".

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)

Nodeems ech déi verfügbar Interfaceoptioune fir Kubernetes analyséiert hunn, hunn ech decidéiert en neien ze kreéieren: Kubernetes WebView. Iwwerhaapt brauch ech just all Kraaft kubectl um Internet, nämlech:

  • Disponibilitéit vun all (nëmmen liesen) Operatiounen fir déi Benotzer léiwer kubectl ze benotzen;
  • all URLen mussen permanent sinn an d'Säit a senger ursprénglecher Form vertrieden, sou datt d'Kollegen se kënnen deelen an an aner Tools benotzen;
  • Ënnerstëtzung fir all Kubernetes Objeten, déi Iech erlaben all Zort vu Problem ze léisen;
  • Ressource Lëschte solle fir weider Aarbecht erofgeluede ginn (a Spreadsheets, CLI Tools wéi grep) a Lagerung (zum Beispill fir Postmortems);
  • Ënnerstëtzung fir Ressourcen no Label auswielen (ähnlech wéi kubectl get .. -l);
  • d'Fäegkeet kombinéiert Lëschte vu verschiddenen Aarte vu Ressourcen ze kreéieren (ähnlech wéi kubectl get all) fir e gemeinsamt operationellt Bild tëscht de Kollegen ze kréien (zum Beispill während enger Tëschefallreaktioun);
  • d'Fäegkeet fir personaliséiert Smart Deep Links op aner Tools wéi Dashboards, Logger, Applikatiounsregistratiounen, etc. fir d'Feeler ze erliichteren / Feeler ze léisen an op Tëschefäll ze reagéieren;
  • De Frontend soll sou einfach wéi méiglech sinn (reng HTML) fir zoufälleg Probleemer ze vermeiden, wéi zB gefruerene JavaScript;
  • Ënnerstëtzung fir verschidde Cluster fir d'Interaktioun während der Fernberodung ze vereinfachen (zum Beispill fir nëmmen eng URL ze erënneren);
  • Wa méiglech, soll d'Situatiounsanalyse vereinfacht ginn (zum Beispill mat Linken fir Ressourcen fir all Cluster / Nummraim erofzelueden);
  • zousätzlech Méiglechkeete fir flexibel Linken ze kreéieren an Textinformatioun ze markéieren, zum Beispill, fir datt Dir Kollegen op eng spezifesch Rubrik an der Ressourcebeschreiwung (eng Zeil an YAML) weist;
  • d'Kapazitéit fir un d'Ufuerderunge vun engem spezifesche Client ze personaliséieren, zum Beispill, erlaabt Iech speziell Affichage Templates fir CRDs ze kreéieren, Ären eegene Tabellenvisiounen an CSS Stiler z'änneren;
  • Tools fir weider Exploratioun op der Kommandozeil (zum Beispill voll Kommandoen ze weisen kubectl, prett fir ze kopéieren);

Iwwert d'Aufgaben geléist am Kubernetes Web View (net Ziler) bliwwen:

  • Abstraktioun vu Kubernetes Objeten;
  • Applikatioun Gestioun (zum Beispill, Détachement Gestioun, Helm Charts, etc.);
  • Schreifoperatioune (muss duerch sécher CI / CD an / oder GitOps Tools gemaach ginn);
  • schéin Interface (JavaScript, Themen, etc.);
  • Visualiséierung (kuckt kube-ops-view);
  • Käschtenanalyse (kuckt kube-resource-report).

Wéi hëlleft Kubernetes Web View mat Ënnerstëtzung an Tëschefall Äntwert?

Ënnerstëtzung

  • All Linken sinn permanent, wat et méi einfach mécht, Informatiounen mat de Kollegen auszetauschen.
  • Dir kënnt schafen Är Iddien, zum Beispill, weisen all Deployments a Pods mat engem spezifesche Label an zwee spezifesche Cluster (verschidde Clusternamen a Ressourcentypen kënnen am Link spezifizéiert ginn, duerch Komma getrennt).
  • Dir kënnt op spezifesch Linnen an enger YAML Datei Objet, déi potenziell Problemer an der Objektspezifikatioun uginn.

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)
Sich no Cluster am Kubernetes Web View

Tëschefall Äntwert

  • Global Sich (global Sich) erlaabt Iech no Objeten an alle Cluster ze sichen.
  • Lëscht Views kann all Objete mat engem bestëmmte Staat / Kolonn an all Cluster weisen (zum Beispill, mir mussen all pods mat de Status "Pending") ze fannen.
  • Lëschte vun Objete kënnen erofgeluede ginn am Tab getrennt Wäert (TSV) Format fir spéider Analyse.
  • Customisable extern Linken Erlaabt Iech op verwandte Dashboards an aner Tools ze wiesselen.

Ukënnegung vun der Kubernetes Web View (an e kuerzen Iwwerbléck iwwer aner Web UIs fir Kubernetes)
Kubernetes Web View: Lëscht vun Pods mat "Pending" Status an alle Cluster

Wann Dir wëllt Kubernetes Web View probéieren, empfeelen ech Iech z'iwwerpréiwen Dokumentatioun oder kucken liewen Demo.

Natierlech kéint d'Interface besser sinn, awer fir de Moment ass Kubernetes Web View e Tool fir "fortgeschratt Benotzer", déi sech net schüttelen fir URL-Weeër manuell ze manipuléieren wann néideg. Wann Dir Kommentaren / Ergänzunge / Virschléi hutt, da kontaktéiert Iech mat mir op Twitter!

Dësen Artikel ass eng kuerz Geschicht vum Hannergrond, deen zu der Schafung vu Kubernetes Web View gefouert huet. Méi wäert no! (Note. iwwersat.: Si sollen erwaart ginn an Auteur d'Blog.)

PS vum Iwwersetzer

Liest och op eisem Blog:

Source: will.com

Setzt e Commentaire