L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

Nota. transl.: L'autore di u materiale originale hè Henning Jacobs da Zalando. Hà creatu una nova interfaccia web per travaglià cù Kubernetes, chì hè posizionatu cum'è "kubectl per u web". Perchè un novu prughjettu Open Source apparsu è chì criteri ùn sò micca stati scontri da e soluzioni esistenti - leghje u so articulu.

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

In questu post, rivederaghju e diverse interfacce web di Kubernetes open source, spiegà i mo bisogni per una UI universale, è spieghendu perchè aghju sviluppatu Kubernetes WebView - una interfaccia pensata per fà più faciule per supportà è risolve i prublemi di più clusters à una volta.

Casi d'usu

In Zalando serve un gran numaru di utilizatori Kubernetes (900+) è clusters (100+). Ci hè un coppiu di casi d'usu cumuni chì benefiziu di un strumentu web dedicatu:

  1. cumunicazione cù i culleghi per u sustegnu;
  2. risponde à l'incidenti è investigà e so cause.

sustegnu

In a mo sperienza, i cumunicazioni di supportu sò spessu cum'è questu:

- Aiutu, u nostru serviziu XYZ ùn hè micca dispunibule!
- Chì vede quandu fate kubectl describe ingress ...?

O qualcosa di simile per CRD:

- Aghju qualchì prublema cù u serviziu d'identificazione ...
- Chì pruduce u cumandamentu ? kubectl describe platformcredentialsset ...?

Tale cumunicazione di solitu vene à entre in diverse variazioni di u cumandamentu kubectl per identificà u prublema. In u risultatu, i dui partiti di a conversazione sò furzati à cambià constantemente trà u terminal è u web chat, in più osservanu una situazione diversa.

Dunque, mi piacerebbe chì u frontend web Kubernetes permette u seguente:

  • l'utilizatori puderanu scambià ligami è osservate a stessa cosa;
  • aiutaria evitari i sbagli umani in supportu: per esempiu, login in u cluster sbagliatu nantu à a linea di cummanda, typos in cumandamenti CLI, etc.;
  • permetteria generà i vostri punti di vista per mandà à i culleghi, vale à dì, aghjunghje culonni di tags, vede parechji tippi di risorse in una pagina;
  • Ideale, stu strumentu web deve permette di stabilisce ligami "profundi" à e sezioni specifiche di YAML (per esempiu, indicà un paràmetru incorrectu chì hè causatu fallimenti).

Risposta di incidente è analisi

A risposta à l'incidenti di l'infrastruttura richiede una cuscenza di a situazione, a capacità di valutà l'impattu, è cercate mudelli in clusters. Alcuni esempi di vita reale:

  • Un serviziu di produzzione critica hè avè prublemi è avete bisognu truvà tutte e risorse Kubernetes per nome in tutti i clustersper risolve i prublemi;
  • i nodi cumincianu à falà quandu scalate è avete bisognu truvà tutti i pods cù u statutu "Pending" in tutti i clustersper valutà u scopu di u prublema;
  • L'utilizatori individuali signalanu un prublema cù DaemonSet implementatu in tutti i clusters è anu bisognu di scopre U prublema hè tutale?.

A mo suluzione standard in questi casi hè qualcosa di simile for i in $clusters; do kubectl ...; done. Ovviamente, hè pussibule di sviluppà un strumentu chì furnisce capacità simili.

Interfacce web Kubernetes esistenti

U mondu open source di interfacce web à Kubernetes ùn hè micca assai grande *, cusì aghju pruvatu à cullà più infurmazione cù Twitter:

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

* A mo spiegazione per u numeru limitatu di interfacce web per Kubernetes: i servizii di nuvola è i venditori di Kubernetes generalmente offrenu u so propiu frontend, cusì u mercatu di "boni" UI gratuiti di Kubernetes hè relativamente chjucu.

Per mezu di un tweet chì aghju amparatu K8 Dash, Kubernator и Octant. Fighjemu à elli è altre soluzioni Open Source esistenti, pruvemu à capisce ciò chì sò.

K8 Dash

"K8Dash hè u modu più simplice per gestisce un cluster Kubernetes".

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

K8 Dash Sembra bè è si sente veloce, ma hà una quantità di svantaghji per i casi d'usu elencati sopra:

  • Funziona solu in i limiti di un cluster.
  • A classificazione è a filtrazione sò pussibuli, ma ùn anu micca permalinks.
  • Ùn ci hè micca supportu per Definizioni di Risorse Personalizzate (CRD).

Kubernator

"Kubernator hè una UI alternativa per Kubernetes. A cuntrariu di u Kubernetes Dashboard d'altu livellu, furnisce un cuntrollu di livellu bassu è una visibilità eccellente in tutti l'uggetti in u cluster cù a capacità di creà novi, edità, è risolve i cunflitti. Essendu una applicazione interamente di u cliente (cum'è kubectl), ùn hà micca bisognu di alcun backend altru ch'è u servitore API Kubernetes stessu, è rispetta ancu e regule d'accessu à u cluster.

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

Questa hè una descrizzione abbastanza precisa Kubernator. Sfortunatamente, manca alcune caratteristiche:

  • Serve solu un cluster.
  • Ùn ci hè micca un modu di vista di lista (vale à dì, ùn pudete micca vede tutti i pods cù u statu "Pending").

Dashboard di Kubernetes

"Kubernetes Dashboard hè una interfaccia web universale per i cluster Kubernetes. Permette à l'utilizatori di gestisce è risolve l'applicazioni in esecuzione in un cluster, è ancu di gestisce u cluster stessu ".

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

Sfurtunatamente, Dashboard di Kubernetes ùn aiuta micca veramente cù u mo supportu è attività di risposta à l'incidentu perchè:

  • ùn ci sò micca ligami permanenti, per esempiu quandu aghju filtratu risorse o cambiate l'ordine di sorte;
  • ùn ci hè micca un modu faciule per filtrà per statutu - per esempiu, vede tutti i podi cù u statu "Pending";
  • solu un cluster hè supportatu;
  • I CRD ùn sò micca supportati (sta funzione hè in sviluppu);
  • nisuna colonna persunalizata (cum'è colonne tichjate per tipu kubectl -L).

Vista operativa di Kubernetes (kube-ops-view)

"System Dashboard Observer per K8s Cluster Space".

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

У Vista operativa di Kubernetes Un approcciu completamente diversu: questu strumentu mostra solu nodi di cluster è pods chì utilizanu WebGL, senza alcunu dettagliu di l'ughjettu testu. Hè fantasticu per una visione rapida di a salute di u cluster (sò i baccelli caduti?) *, ma ùn hè micca adattatu per i casi d'usu di supportu è di risposta à l'incidente descritti sopra.

* Nota. transl.: In questu sensu, pudete ancu esse interessatu à u nostru plugin grafana-statusmap, chì avemu parlatu in più detail in stu articulu.

Rapportu di risorse Kubernetes (kube-resource-report)

"Raccoglie e richieste di risorse di cluster di pod è Kubernetes, paragunate cù u cunsumu di risorse, è genera HTML staticu".

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

Rapportu di risorse Kubernetes genera rapporti HTML statici nantu à l'usu di e risorse è a distribuzione di i costi trà squadre / applicazioni in clusters. U rapportu hè un pocu utile per u supportu è a risposta à l'incidente perchè vi permette di truvà rapidamente u cluster induve l'applicazione hè implementata.

Nota. transl.: Un serviziu è strumentu pò ancu esse utile per vede l'infurmazioni nantu à l'assignazione di risorse è i so costi trà i fornituri di nuvola Kubecost, chì rivisemu publicatu recentemente.

Octant

"Una piattaforma web estensibile per i sviluppatori pensata per furnisce una comprensione più grande di a cumplessità di i cluster Kubernetes".

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

Octant, creatu da VMware, hè un novu pruduttu chì aghju amparatu pocu pocu pocu tempu. Cù u so aiutu, hè cunvenutu per esplurà u cluster in una macchina lucale (ci sò ancu visualizazioni), ma indirizza i prublemi di supportu è risposta incidente solu in una misura limitata. Svantaghji di Octant:

  • Nisuna ricerca di cluster.
  • Funziona solu nantu à a macchina locale (ùn si implementa micca in un cluster).
  • Ùn ponu micca sorte / filtrà l'uggetti (solu u selettore di l'etichetta hè supportatu).
  • Ùn pudete micca specificà colonne persunalizate.
  • Ùn pudete micca listà l'uggetti per namespace.

Aghju avutu ancu prublemi cù l'stabilità di Octant cù clusters Zalando: in certi CRD era cascatu.

Presentazione di Kubernetes Web View

"kubectl per u web".

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)

Dopu avè analizatu l'opzioni di l'interfaccia dispunibili per Kubernetes, aghju decisu di creà una nova: Kubernetes WebView. Dopu tuttu, in fattu, aghju solu bisognu di tuttu u putere kubectl nant'à u web, vale à dì:

  • dispunibilità di tutte l'operazioni (sola lettura) per quale l'utilizatori preferanu aduprà kubectl;
  • tutti l'URL deve esse permanente è rapprisentanu a pagina in a so forma originale per chì i culleghi ponu sparte è l'utilizanu in altri strumenti;
  • supportu per tutti l'uggetti Kubernetes, chì vi permetterà di risolve ogni tipu di prublema;
  • listi di risorse duveranu esse scaricabili per u travagliu ulteriore (in fogli di calculu, strumenti CLI cum'è grep) è u almacenamentu (per esempiu, per l'autopsia);
  • supportu per a selezzione di risorse per etichetta (simile à kubectl get .. -l);
  • l'abilità di creà liste cumminate di varii tipi di risorse (simile à kubectl get all) per ottene una stampa operativa cumuna trà i culleghi (per esempiu, durante una risposta incidente);
  • l'abilità di aghjunghje ligami prufondi intelligenti persunalizati à altri strumenti cum'è dashboards, loggers, registri di applicazioni, etc. per facilità a risoluzione di prublemi / risolve errori è risponde à incidenti;
  • U frontend deve esse simplice quant'è pussibule (puru HTML) per evità prublemi aleatorii, cum'è JavaScript congelatu;
  • supportu per parechji clusters per simplificà l'interazzione durante a cunsultazione remota (per esempiu, per ricurdà solu un URL);
  • Sè pussibule, l'analisi di situazione deve esse simplificatu (per esempiu, cù ligami per scaricà risorse per tutti i clusters / namespaces);
  • Opportunità supplementari per creà ligami flessibili è mette in risaltu l'infurmazioni di testu, per esempiu, per pudè indicà i culleghi à una sezione specifica in a descrizzione di risorse (una linea in YAML);
  • l'abilità di persunalizà à i bisogni di un cliente specificu, per esempiu, chì vi permettenu di creà mudelli di visualizazione speciale per CRD, e vostre viste di tavulinu, è cambià stili CSS;
  • Strumenti per più esplorazione nantu à a linea di cummanda (per esempiu, mostra cumandamenti cumpleti kubectl, pronta per a copia);

Al di là di i travaglii risolti in Kubernetes Web View (non goal) restò :

  • astrazione di l'uggetti Kubernetes;
  • gestione di l'applicazioni (per esempiu, gestione di implementazione, charts Helm, etc.);
  • l'operazioni di scrittura (deve esse fattu per mezu di l'utili CI / CD è / o GitOps sicuri);
  • bella interfaccia (JavaScript, temi, etc.);
  • visualizazione (vede Kube-ops-view);
  • analisi di i costi (vede kube-resource-report).

Cumu Kubernetes Web View aiuta cù u supportu è a risposta di incidente?

sustegnu

  • Tutti i ligami sò permanenti, chì facilita u scambiu d'infurmazioni cù i culleghi.
  • Pudete creà e vostre idee, per esempiu, mostra tutti i Deployments è Pods cù una etichetta specifica in dui clusters specifichi (parechji nomi di cluster è tipi di risorse ponu esse specificati in u ligame, siparati da virgule).
  • Pudete riferite à linee specifiche in un schedariu YAML l'ughjettu, chì indicanu prublemi potenziali in a specificazione di l'ughjettu.

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)
Ricerca per clusters in Kubernetes Web View

Risposta incidente

  • Ricerca globale (ricerca globale) permette di circà l'uggetti in tutti i clusters.
  • Lista di Viste ponu vede tutti l'uggetti cù un certu statu / colonna in tutti i clusters (per esempiu, avemu bisognu di truvà tutti i pods cù u statu "Pending").
  • Listi di l'uggetti ponu esse scaricati in formatu di valori separati da tabulazione (TSV) per analisi più tardi.
  • Ligami esterni persunalizabili Permette di cambià à dashboards cunnessi è altri strumenti.

L'annunziu di a Kubernetes Web View (è una breve panoramica di altre UI web per Kubernetes)
Kubernetes Web View: lista di pods cù status "Pending" in tutti i clusters

Se vulete pruvà Kubernetes Web View, vi cunsigliu di verificà documentazione o fighjate demo live.

Di sicuru, l'interfaccia puderia esse megliu, ma per avà Kubernetes Web View hè un strumentu per "utilizatori avanzati" chì ùn si scurdanu micca di manipulà i percorsi URL manualmente se ne necessariu. Sì avete qualchì cumentu / aghjuntu / suggerimenti, per piacè cuntattate cun mè in Twitter!

Questu articulu hè una breve storia di u fondu chì hà purtatu à a creazione di Kubernetes Web View. Seguirà più! (Nota. transl.: Si deve esse aspittatu in blog di l'autore.)

PS da u traduttore

Leghjite puru nant'à u nostru blog:

Source: www.habr.com

Add a comment