{"id":38369,"date":"2019-10-31T22:23:18","date_gmt":"2019-10-31T19:23:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes\/"},"modified":"2019-10-31T22:23:18","modified_gmt":"2019-10-31T19:23:18","slug":"anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","title":{"rendered":"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota traduc\u0103torului.<\/b>: Autorul materialului original este Henning Jacobs de la Zalando. El a creat o nou\u0103 interfa\u021b\u0103 web pentru lucrul cu Kubernetes, care se pozi\u021bioneaz\u0103 ca \u201ekubectl pentru web\u201d. De ce a ap\u0103rut acest nou proiect Open Source \u0219i ce criterii nu au fost \u00eendeplinite de solu\u021biile existente - citi\u021bi \u00een articolul s\u0103u.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/82abbfbfaeb30adb000b749cc97809e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen aceast\u0103 publica\u021bie, analizez diferite interfe\u021be web Kubernetes cu surs\u0103 deschis\u0103, stabilesc cerin\u021bele mele pentru o interfa\u021b\u0103 utilizator universal\u0103 \u0219i explic de ce am dezvoltat <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/hjacobs\/kube-web-view\/\">. Autorul acelui articol \u0219i al utilit\u0103rii este Henning Jacobs de la compania Zalando, care a pozi\u021bionat noutatea ca \"kubectl pentru web\". El a dorit s\u0103 creeze un instrument cu func\u021bionalit\u0103\u021bi convenabile pentru interac\u021biunea \u00een format de suport tehnic (de exemplu, pentru a ar\u0103ta rapid o problem\u0103 printr-un link web) \u0219i pentru reac\u021bia la incidente, c\u0103ut\u00e2nd probleme \u00een multe clustere simultan. Creatura sa este \u00een dezvoltare \u0219i \u00een prezent (\u00een principal, datorit\u0103 autorului \u00eensu\u0219i).<\/a><\/noindex> \u2014 o interfa\u021b\u0103 menit\u0103 s\u0103 faciliteze suportul \u0219i solu\u021bionarea problemelor \u00een mai multe clustere simultan.<\/p>\n<h2>Scenarii de utilizare<\/h2>\n<p>\n\u00cen Zalando, servim un num\u0103r mare de utilizatori Kubernetes (peste 900) \u0219i clustere (peste 100). Exist\u0103 c\u00e2teva cazuri tipice de utilizare, \u00een care ar fi foarte util ajutorul unui instrument web specializat:<\/p>\n<ol>\n<li> comunicarea cu colegii \u00een cadrul suportului;<\/li>\n<li> reac\u021bionarea la incidente \u0219i investigarea cauzelor acestora.<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Asisten\u021b\u0103<\/h3>\n<p>\nDin experien\u021ba mea, comunicarea \u00een cadrul suportului arat\u0103 adesea astfel:<\/p>\n<p><i>\u2014 Ajuta\u021bi, serviciul nostru XYZ nu este disponibil!<br \/>\n\u2014 Ce vede\u021bi c\u00e2nd rula\u021bi <code>kubectl describe ingress ...<\/code>?<\/i><\/p>\n<p>Sau ceva similar pentru CRD:<\/p>\n<p><i>\u2014 Am o problem\u0103 cu serviciul de identificare...<br \/>\n\u2014 \u0218i ce returneaz\u0103 comanda <code>kubectl describe platformcredentialsset ...<\/code>?<\/i><\/p>\n<p>Aceast\u0103 comunicare se reduce de obicei la introducerea diferitelor varia\u021bii ale comenzii <code>kubectl<\/code> pentru a stabili problema. Ca urmare, ambele p\u0103r\u021bi ale conversa\u021biei trebuie s\u0103 comute constant \u00eentre terminal \u0219i chat-ul web, plus c\u0103 observ\u0103 situa\u021bii diferite.<\/p>\n<p>A\u0219adar, ar fi bine ca frontend-ul web pentru Kubernetes s\u0103 permit\u0103 urm\u0103toarele:<\/p>\n<ul>\n<li> utilizatorii ar putea <b>schimba link-uri<\/b> \u0219i s\u0103 observe acela\u0219i lucru;<\/li>\n<li> ar ajuta s\u0103 <b>evite erorile umane<\/b> \u00een suport: de exemplu, conectarea la clusterul gre\u0219it \u00een linia de comand\u0103, gre\u0219elile de tipar \u00een comenzile CLI etc.;<\/li>\n<li> ar permite <b>generarea de viziuni proprii<\/b> pentru a le trimite colegilor, adic\u0103 s\u0103 adauge coloane de etichete, s\u0103 afi\u0219eze mai multe tipuri de resurse pe aceea\u0219i pagin\u0103;<\/li>\n<li> \u00een ideal, acest instrument web ar trebui s\u0103 permit\u0103 setarea <b>link-uri \"ad\u00e2nci\" c\u0103tre sec\u021biuni specifice YAML<\/b> (de exemplu, s\u0103 indice un parametru gre\u0219it care cauzeaz\u0103 e\u0219ecuri).<\/li>\n<\/ul>\n<p><\/p>\n<h3>Reac\u021bionarea la incidente \u0219i analiza<\/h3>\n<p>\nReac\u021bia la incidente \u00een infrastructur\u0103 necesit\u0103 con\u0219tientizare situa\u021bional\u0103, abilitatea de a evalua impactul \u0219i c\u0103utarea de tipare \u00een clustere. Iat\u0103 c\u00e2teva exemple din via\u021ba real\u0103:<\/p>\n<ul>\n<li> un serviciu de produc\u021bie critic \u00eent\u00e2mpin\u0103 probleme \u0219i trebuie s\u0103 <b>g\u0103se\u0219ti toate resursele Kubernetes dup\u0103 nume \u00een toate clusterele<\/b>, pentru a remedia defec\u021biunile;<\/li>\n<li> nodurile \u00eencep s\u0103 cad\u0103 \u00een timpul scal\u0103rii, \u0219i trebuie s\u0103 <b>g\u0103si\u021bi toate pod-urile cu statutul \u201ePending\u201d \u00een toate clusterele<\/b>, pentru a evalua amploarea problemei;<\/li>\n<li> utilizatorii individuali raporteaz\u0103 o problem\u0103 cu DaemonSet-ul desf\u0103\u0219urat \u00een toate clusterele, \u0219i este necesar s\u0103 stabilim <b>dac\u0103 problema este total\u0103<\/b>.<\/li>\n<\/ul>\n<p>\nSolu\u021bia mea standard \u00een astfel de cazuri este ceva de genul <code>for i in $clusters; do kubectl ...; done<\/code>. Evident, putem dezvolta un instrument care ofer\u0103 func\u021bionalit\u0103\u021bi similare.<\/p>\n<h2>Interfe\u021bele web existente pentru Kubernetes<\/h2>\n<p>\nLumea Open Source a interfe\u021belor web pentru Kubernetes nu este foarte mare*, a\u0219a c\u0103 am \u00eencercat s\u0103 adun informa\u021bii suplimentare prin <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\/status\/1153543128365850625\">Twitter<\/a><\/noindex>:<\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/75c26a70ec886700db2a81b57d672538.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>* Explica\u021bia mea pentru num\u0103rul limitat de interfe\u021be web pentru Kubernetes: servicii cloud \u0219i furnizori de Kubernetes ofer\u0103 de obicei front-end-uri proprii, a\u0219a c\u0103 pia\u021ba pentru \u201ebune\u201d interfe\u021be UI Kubernetes gratuite este relativ mic\u0103.<\/i><\/p>\n<p>Printr-un tweet am aflat despre <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/herbrandson\/k8dash\">K8Dash<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smpio\/kubernator\">Kubernator<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\">Octant<\/a><\/noindex>. S\u0103 ne uit\u0103m la ele \u0219i la alte solu\u021bii Open Source existente, s\u0103 \u00eencerc\u0103m s\u0103 \u00een\u021belegem ce reprezint\u0103.<\/p>\n<h2>K8Dash<\/h2>\n<p>\n<i>\u201eK8Dash este cel mai simplu mod de a gestiona un cluster Kubernetes\u201d.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/112e362486a294a1a39706fc32124889.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/herbrandson\/k8dash\">K8Dash<\/a><\/noindex> arat\u0103 destul de bine \u0219i, din impresie, func\u021bioneaz\u0103 rapid, dar are c\u00e2teva dezavantaje pentru scenariile de utilizare men\u021bionate mai sus:<\/p>\n<ul>\n<li> Func\u021bioneaz\u0103 doar \u00een limitele unui singur cluster.<\/li>\n<li> Sortarea \u0219i filtrarea sunt posibile, dar nu au linkuri permanente.<\/li>\n<li> Lipsa suportului pentru Custom Resource Definitions (CRDs).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernator<\/h2>\n<p>\n<i>\u201eKubernator este o interfa\u021b\u0103 alternativ\u0103 pentru Kubernetes. Spre deosebire de panoul de control high-level Kubernetes Dashboard, ofer\u0103 control low-level \u0219i o vedere excelent\u0103 asupra tuturor obiectelor din cluster, cu posibilitatea de a crea noi, a le edita \u0219i a rezolva conflicte. Fiind o aplica\u021bie complet client-side (ca kubectl), nu necesit\u0103 un backend \u00een afar\u0103 de serverul API Kubernetes, \u0219i ia \u00een considerare regulile de acces la cluster.\u201d<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/230115c88206d57443067a5b44ee9f31.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEste o descriere destul de exact\u0103 a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smpio\/kubernator\">Kubernator<\/a><\/noindex>. Din p\u0103cate, \u00eei lipsesc unele func\u021bionalit\u0103\u021bi:<\/p>\n<ul>\n<li> Serveste un singur cluster.<\/li>\n<li> Nu exist\u0103 mod de vizualizare sub form\u0103 de list\u0103 (de exemplu, nu se pot afi\u0219a toate pod-urile cu statutul \u201ePending\u201d).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Dashboard<\/h2>\n<p>\n<i>\u201eKubernetes Dashboard este o interfa\u021b\u0103 web universal\u0103 pentru clusterele Kubernetes. Permite utilizatorilor s\u0103 gestioneze aplica\u021biile care ruleaz\u0103 \u00een cluster \u0219i s\u0103 le depaneze, precum \u0219i s\u0103 administreze \u00eensu\u0219i clusterul.\u201d<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/10b37d00ed4c6cbb05a0eb9069a4371f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDin p\u0103cate, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\">Kubernetes Dashboard<\/a><\/noindex> nu ajut\u0103 prea mult \u00een activit\u0103\u021bile mele de suport \u0219i r\u0103spuns la incidente, deoarece:<\/p>\n<ul>\n<li> nu exist\u0103 link-uri permanente, de exemplu, atunci c\u00e2nd filtrez resursele sau schimb ordinea de sortare;<\/li>\n<li> nu exist\u0103 o modalitate simpl\u0103 de a filtra dup\u0103 statut \u2014 de exemplu, de a vedea toate pod-urile cu statutul \u201ePending\u201d;<\/li>\n<li> se sus\u021bine doar un singur cluster;<\/li>\n<li> nu se sus\u021bin CRD (aceast\u0103 func\u021bionalitate este \u00een curs de dezvoltare);<\/li>\n<li> nu exist\u0103 coloane personalizate (de exemplu, coloane cu etichete de tipul <code>kubectl -L<\/code>).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Operational View (kube-ops-view)<\/h2>\n<p>\n<i>\u201ePanou sistem de monitorizare pentru spa\u021biile cluster-ului K8s.\u201d<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/0d63fcce4d54fbf5b40b15ad195e8ba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">Kubernetes Operational View<\/a><\/noindex> o abordare complet diferit\u0103: acest instrument arat\u0103 doar nodurile clusterului \u0219i pod-urile folosind WebGL, f\u0103r\u0103 detalii textuale despre obiecte. Este excelent pentru o revizuire operativ\u0103 a st\u0103rii clusterului (\u201epod-urile se pr\u0103bu\u0219esc?\u201d)*, dar nu este potrivit pentru cazurile de utilizare descrise mai sus \u00een suportul \u0219i r\u0103spunsul la incidente.<\/p>\n<p><i>* <b>Nota traduc\u0103torului.<\/b>: \u00cen acest sens, s-ar putea s\u0103 fi\u021bi interesat \u0219i de plugin-ul nostru <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/grafana-statusmap\">grafana-statusmap<\/a><\/noindex>, despre care am discutat mai detaliat \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/423851\/\">aceast\u0103 articole<\/a><\/noindex>.<\/i><\/p>\n<h2>Kubernetes Resource Report (kube-resource-report)<\/h2>\n<p>\n<i>\u201eColecta\u021bi informa\u021bii despre cererile de resurse ale pod-urilor \u0219i clusterei Kubernetes, compara\u021bi-le cu consumul de resurse \u0219i genera\u021bi HTML static\u201d.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/11e64094ca3fb317959ab03ec7c07e0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-resource-report\/\">Raport de Resurse Kubernetes<\/a><\/noindex> genereaz\u0103 rapoarte HTML statice despre utilizarea resurselor \u0219i distribu\u021bia costurilor pe echipe\/aplica\u021bii \u00een clustere. Rapoartele sunt oarecum utile pentru suport \u0219i r\u0103spuns la incidente, deoarece permit identificarea rapid\u0103 a cluster-ului \u00een care este desf\u0103\u0219urat\u0103 aplica\u021bia.<\/p>\n<p><i><b>Nota traduc\u0103torului.<\/b>: \u00cen vizionarea informa\u021biilor despre distribu\u021bia resurselor \u0219i costul acestora, serviciul \u0219i instrumentul <noindex><a rel=\"nofollow\" href=\"https:\/\/kubecost.com\/\">Kubecost<\/a><\/noindex>ar putea fi, de asemenea, utile <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/466659\/\">, despre care am<\/a><\/noindex>.<\/i><\/p>\n<h2>Octant<\/h2>\n<p>\n<i>publicat recent un articol despre \u201eO platform\u0103 web extensibil\u0103 pentru dezvoltatori, menit\u0103 s\u0103 asigure o \u00een\u021belegere mai bun\u0103 a complexit\u0103\u021bii clusterele Kubernetes.\u201d<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/0f949ec05a6b403e7093ee38648eb493.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\">Octant<\/a><\/noindex>, creat \u00een VMware, este un nou produs de care am aflat relativ recent. Cu ajutorul s\u0103u, este convenabil s\u0103 explorez cluster-ul pe un computer local (exist\u0103 chiar \u0219i vizualiz\u0103ri), totu\u0219i abordeaz\u0103 problema suportului \u0219i a reac\u021biei la incidente doar \u00eentr-o m\u0103sur\u0103 limitat\u0103. Disadvantagele Octant:<\/p>\n<ul>\n<li> F\u0103r\u0103 c\u0103utare \u00een clustere.<\/li>\n<li> Func\u021bioneaz\u0103 doar pe computerul local (nu este implementat \u00een cluster).<\/li>\n<li> Nu este posibil s\u0103 sortezi\/filtrezi obiectele (se suport\u0103 doar selectorul de etichete).<\/li>\n<li> Nu po\u021bi defini coloane personalizate.<\/li>\n<li> Nu po\u021bi lista obiectele pe spa\u021bii de nume.<\/li>\n<\/ul>\n<p>\nDe asemenea, am avut probleme cu stabilitatea Octant-ului cu clusterele Zalando: \u00een unele CRD <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\/issues\/72\">a c\u0103zut<\/a><\/noindex>.<\/p>\n<h2>Prezint Kubernetes Web View<\/h2>\n<p>\n<i>\u201ekubectl pentru web\u201d.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/e7b0eb0650de76516bbe05305b9dea9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnaliz\u00e2nd op\u021biunile disponibile de interfe\u021be pentru Kubernetes, am decis s\u0103 creez un nou: <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/hjacobs\/kube-web-view\/\">. Autorul acelui articol \u0219i al utilit\u0103rii este Henning Jacobs de la compania Zalando, care a pozi\u021bionat noutatea ca \"kubectl pentru web\". El a dorit s\u0103 creeze un instrument cu func\u021bionalit\u0103\u021bi convenabile pentru interac\u021biunea \u00een format de suport tehnic (de exemplu, pentru a ar\u0103ta rapid o problem\u0103 printr-un link web) \u0219i pentru reac\u021bia la incidente, c\u0103ut\u00e2nd probleme \u00een multe clustere simultan. Creatura sa este \u00een dezvoltare \u0219i \u00een prezent (\u00een principal, datorit\u0103 autorului \u00eensu\u0219i).<\/a><\/noindex>. De fapt, am nevoie doar de toat\u0103 puterea <code>kubectl<\/code> \u00een web, adic\u0103:<\/p>\n<ul>\n<li> disponibilitatea tuturor opera\u021biunilor (doar citire) \u00een care utilizatorii prefer\u0103 s\u0103 foloseasc\u0103 kubectl;<\/li>\n<li> toate URL-urile trebuie s\u0103 fie permanente \u0219i s\u0103 reprezinte pagina \u00een forma original\u0103, astfel \u00eenc\u00e2t colegii s\u0103 le poat\u0103 \u00eemp\u0103rt\u0103\u0219i \u0219i utiliza \u00een alte instrumente;<\/li>\n<li> suport pentru toate obiectele Kubernetes, ceea ce va permite rezolvarea problemelor de orice tip;<\/li>\n<li> listelor de resurse trebuie s\u0103 fie desc\u0103rcabile pentru prelucrarea ulterioar\u0103 (\u00een foi de calcul, instrumente CLI precum <code>grep<\/code>) \u0219i stocare (de exemplu, pentru postmortem-uri);<\/li>\n<li> suport pentru filtrarea resurselor dup\u0103 etichete (\u00een mod similar cu <code>kubectl get .. -l<\/code>);<\/li>\n<li> posibilitatea de a crea liste combinate de diferite tipuri de resurse (\u00een mod similar cu <code>kubectl get all<\/code>) pentru a ob\u021bine o imagine general\u0103 opera\u021bional\u0103 \u00eentre colegi (de exemplu, \u00een timpul reac\u021biei la un incident);<\/li>\n<li> posibilitatea de a ad\u0103uga linkuri profunde \u201einteligente\u201d personalizabile c\u0103tre alte instrumente, cum ar fi panouri de monitorizare, logger-e, registre de aplica\u021bii etc., pentru a facilita c\u0103utarea\/solu\u021bionarea problemelor \u0219i reac\u021bia la incidente;<\/li>\n<li> frontend-ul trebuie s\u0103 fie c\u00e2t mai simplu (HTML curat), pentru a evita problemele accidentale, cum ar fi JavaScript-ul blocat;<\/li>\n<li> suport pentru multiple clustere pentru a simplifica interac\u021biunile \u00een consultan\u021ba la distan\u021b\u0103 (de exemplu, pentru a memora doar un URL);<\/li>\n<li> dac\u0103 este posibil, analiza situa\u021bional\u0103 trebuie simplificat\u0103 (de exemplu, cu linkuri pentru desc\u0103rcarea resurselor din toate clustere\/ spa\u021bii de nume);<\/li>\n<li> func\u021bii suplimentare pentru crearea de linkuri flexibile \u0219i extragerea de informa\u021bii textuale, de exemplu, pentru a putea indica colegilor o anumit\u0103 sec\u021biune din descrierea resursei (linie \u00een YAML);<\/li>\n<li> capabilitatea de a se adapta cerin\u021belor unui client specific, de exemplu, permi\u021b\u00e2nd crearea de \u0219abloane speciale de afi\u0219are pentru CRD, propriile vizualiz\u0103ri tabelare, modificarea stilurilor CSS;<\/li>\n<li> instrumente pentru studiul ulterior \u00een linia de comand\u0103 (de exemplu, ar\u0103t\u00e2nd comenzi complete <code>kubectl<\/code>, gata de copiat);<\/li>\n<\/ul>\n<p>\nDincolo de sarcinile abordate \u00een Kubernetes Web View <i>(non-obiective)<\/i> au r\u0103mas:<\/p>\n<ul>\n<li> abstrarea obiectelor Kubernetes;<\/li>\n<li> managementul aplica\u021biilor (de exemplu, gestionarea deployment-urilor, chart-urilor Helm etc.);<\/li>\n<li> opera\u021biuni de scriere (care trebuie realizate prin instrumente CI\/CD \u0219i\/sau GitOps securizate);<\/li>\n<li> interfa\u021b\u0103 atractiv\u0103 (JavaScript, teme etc.);<\/li>\n<li> vizualiz\u0103ri (vezi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">kube-ops-view<\/a><\/noindex>);<\/li>\n<li> analiza costurilor (vezi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-resource-report\/\">kube-resource-report<\/a><\/noindex>).<\/li>\n<\/ul>\n<p>\nCum ajut\u0103 Kubernetes Web View \u00een suportul \u0219i reac\u021bia la incidente?<\/p>\n<h3>Asisten\u021b\u0103<\/h3>\n<p><\/p>\n<ul>\n<li> <b>Toate linkurile sunt permanente<\/b>, ceea ce faciliteaz\u0103 schimbul de informa\u021bii cu colegii.<\/li>\n<li> Se pot crea <b>vizualiz\u0103ri proprii<\/b>, de exemplu, de a afi\u0219a toate Deployment-urile \u0219i Pod-urile cu o etichet\u0103 specific\u0103 \u00een dou\u0103 clustere concrete (mai multe nume de clustere \u0219i tipuri de resurse pot fi specificate \u00een link, separ\u00e2ndu-le prin virgule).<\/li>\n<li> Se poate face referire la <b>linii specifice din fi\u0219ierul YAML<\/b> al obiectului, indic\u00e2nd problemele poten\u021biale \u00een specifica\u021bia obiectului.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/9e0b3ab31181f8d93323c413d9185888.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>C\u0103utare \u00een clustere \u00een Kubernetes Web View<\/i><\/p>\n<h3>Reac\u021bie la incidente<\/h3>\n<p><\/p>\n<ul>\n<li> <b>C\u0103utare global\u0103<\/b> <i>(cautare global\u0103)<\/i> permite c\u0103utarea de obiecte \u00een toate clusterele.<\/li>\n<li> <b>Vizualiz\u0103ri sub form\u0103 de liste<\/b> pot afi\u0219a toate obiectele cu un anumit statut\/coloan\u0103 \u00een toate clusterele (de exemplu, trebuie s\u0103 g\u0103sim toate pod-urile cu statutul \u201ePending\u201d).<\/li>\n<li> <b>Listele de obiecte pot fi desc\u0103rcate<\/b> \u00een format tab-separated values (TSV) pentru o analiz\u0103 ulterioar\u0103.<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/en\/latest\/customization.html#external-links\">Linkuri externe personalizabile<\/a><\/noindex> permit trecerea la panourile de monitorizare corespunz\u0103toare \u0219i la alte instrumente.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Anun\u021b privind interfa\u021ba web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor interfe\u021be web pentru Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/ac275aa6b234988f40a2d0cde2ac4870.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes Web View: lista pod-urilor cu statutul \u201ePending\u201d \u00een toate clusterele<\/i><\/p>\n<p>Dac\u0103 dori\u021bi s\u0103 \u00eencerca\u021bi Kubernetes Web View, v\u0103 recomand s\u0103 consulta\u021bi <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/\">documenta\u021bia<\/a><\/noindex> sau s\u0103 v\u0103 uita\u021bi la <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.demo.j-serv.de\/\">o versiune demo live<\/a><\/noindex>.<\/p>\n<p>Desigur, interfa\u021ba ar putea fi mai bun\u0103, dar deocamdat\u0103 Kubernetes Web View este un instrument pentru \"utilizatori avansa\u021bi\" care nu ezit\u0103 s\u0103 manipuleze manual c\u0103ile URL, dac\u0103 este necesar. Dac\u0103 ave\u021bi sugestii\/comentarii\/dorinte, v\u0103 rog s\u0103 m\u0103 contacta\u021bi <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\">pe Twitter<\/a><\/noindex>!<\/p>\n<p>Acest articol este o scurt\u0103 poveste despre premisele care au dus la crearea Kubernetes Web View. Vor urma altele! <i>(<b>Nota traduc\u0103torului.<\/b>: Acestea sunt de a\u0219teptat \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/\">blogul autorului<\/a><\/noindex>.)<\/i><\/p>\n<h2>P.S. de la translator<\/h2>\n<p>\nCiti\u021bi \u0219i \u00een blogul nostru:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox \u0219i alte shell-uri console pentru Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">Instrumente pentru dezvoltatori de aplica\u021bii, care ruleaz\u0103 \u00een Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/467433\/\">A ap\u0103rut utilitarul de consol\u0103 kubelive pentru a lucra interactiv cu Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/330198\/\">Utilitare utile pentru lucrul cu Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u043e\u0432\u044b\u0439 Open Source-\u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0438 \u043a\u0430\u043a\u0438\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u043b\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2014 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0435\u0433\u043e \u0441\u0442\u0430\u0442\u044c\u0435. \u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b Kubernetes \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28800,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u043d\u043e\u043d\u0441 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Kubernetes Web View (\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u0440\u0443\u0433\u0438\u0445 web UI \u0434\u043b\u044f Kubernetes) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:23:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:23:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Anun\u021bul interfe\u021bei web Kubernetes Web View (\u0219i o scurt\u0103 prezentare a altor UI web pentru Kubernetes) | ProHoster","description":"Not\u0103 de traducere: Autorul materialului original este Henning Jacobs de la Zalando. El a creat o nou\u0103 interfa\u021b\u0103 web pentru a lucra cu Kubernetes, care este pozi\u021bionat\u0103 ca \"kubectl pentru web\".","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u043d\u043e\u043d\u0441 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Kubernetes Web View (\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u0440\u0443\u0433\u0438\u0445 web UI \u0434\u043b\u044f Kubernetes) | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:23:18+00:00","article:modified_time":"2019-10-31T19:23:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38369","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 21:44:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:10:24","updated":"2026-01-23 21:44:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=38369"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38369\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/28800"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=38369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=38369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=38369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}