{"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\/da\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","title":{"rendered":"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI'er til Kubernetes)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Bem. overs.<\/b>: Forfatteren af det originale materiale er Henning Jacobs fra Zalando. Han har skabt et nyt webinterface til arbejde med Kubernetes, der pr\u00e6senteres som 'kubectl til weben'. L\u00e6s i hans artikel, hvorfor dette nye open source-projekt er blevet udviklet, og hvilke kriterier eksisterende l\u00f8sninger ikke lever op til.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/82abbfbfaeb30adb000b749cc97809e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI denne publikation unders\u00f8ger jeg forskellige open source webinterfaces til Kubernetes, pr\u00e6senterer mine krav til et universelt UI og forklarer, hvorfor jeg udviklede <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/hjacobs\/kube-web-view\/\">Kubernetes Web View<\/a><\/noindex> \u2014 et interface designet til at lette support og fejlretning p\u00e5 tv\u00e6rs af mange klynger.<\/p>\n<h2>Brugsomr\u00e5der<\/h2>\n<p>\nHos Zalando betjener vi et stort antal Kubernetes-brugere (900+) og klynger (100+). Der er et par typiske brugsomr\u00e5der, hvor en specialiseret webv\u00e6rkt\u00f8j ville v\u00e6re meget nyttigt:<\/p>\n<ol>\n<li> kommunikation med kolleger i forbindelse med support;<\/li>\n<li> reaktion p\u00e5 h\u00e6ndelser og unders\u00f8gelse af deres \u00e5rsager.<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Support<\/h3>\n<p>\nEfter min erfaring ser kommunikationen i forbindelse med support ofte s\u00e5dan ud:<\/p>\n<p><i>\u2014 Hj\u00e6lp, vores service XYZ er nede!<br \/>\n\u2014 Hvad ser du, n\u00e5r du k\u00f8rer <code>kubectl describe ingress ...<\/code>?<\/i><\/p>\n<p>Eller noget lignende for CRD:<\/p>\n<p><i>\u2014 Jeg har et problem med identitetstjenesten...<br \/>\n\u2014 Hvad viser kommandoen <code>kubectl describe platformcredentialsset ...<\/code>?<\/i><\/p>\n<p>S\u00e5dan kommunikation f\u00f8rer normalt til indtastning af forskellige variationer af kommandoen <code>kubectl<\/code> for at fors\u00f8ge at fastsl\u00e5 problemet. Resultatet er, at begge parter i samtalen konstant skal skifte mellem terminalen og webchatten, og de observerer desuden forskellige situationer.<\/p>\n<p>Derfor \u00f8nsker man, at webfrontend'et til Kubernetes skal muligg\u00f8re f\u00f8lgende:<\/p>\n<ul>\n<li> brugerne kan <b>dele links<\/b> og se det samme;<\/li>\n<li> det skulle hj\u00e6lpe med <b>at undg\u00e5 menneskelige fejl<\/b> i supporten: for eksempel at logge ind i den forkerte klynge i kommandolinjen, tastefejl i CLI-kommandoer osv.;<\/li>\n<li> det skulle give mulighed for <b>at generere egne visninger<\/b> til at sende til kolleger, dvs. tilf\u00f8je labelkolonner, vise mange ressourcetyper p\u00e5 \u00e9n side;<\/li>\n<li> ideelt set skal dette webv\u00e6rkt\u00f8j muligg\u00f8re at lave <b>\"dybe\" links til specifikke sektioner af YAML<\/b> (for eksempel at pege p\u00e5 en forkert parameter, der for\u00e5rsager fejl).<\/li>\n<\/ul>\n<p><\/p>\n<h3>Reaktion p\u00e5 h\u00e6ndelser og analyse<\/h3>\n<p>\nAt reagere p\u00e5 h\u00e6ndelser i infrastrukturen kr\u00e6ver situational awareness, evnen til at vurdere p\u00e5virkningen og at finde m\u00f8nstre i klynger. Nogle eksempler fra den virkelige verden:<\/p>\n<ul>\n<li> et kritisk produktionsservice oplever problemer, og du skal <b>finde alle Kubernetes-ressourcer efter navn p\u00e5 tv\u00e6rs af alle klynger<\/b>, for at fejls\u00f8ge;<\/li>\n<li> noder begynder at falde om ved skalering, og du skal <b>find alle pods med status \u00abPending\u00bb i alle klynger<\/b>, for at vurdere omfanget af problemet;<\/li>\n<li> enkeltbrugere rapporterer om et problem med DaemonSet, der er implementeret i alle klynger, og det er n\u00f8dvendigt at finde ud af, <b>om problemet er omfattende<\/b>.<\/li>\n<\/ul>\n<p>\nMin standardl\u00f8sning i s\u00e5danne tilf\u00e6lde er noget i retning af <code>for i in $clusters; do kubectl ...; done<\/code>. Det er klart, at man kan udvikle et v\u00e6rkt\u00f8j, der giver lignende muligheder.<\/p>\n<h2>Eksisterende webgr\u00e6nseflader til Kubernetes<\/h2>\n<p>\nOpen Source-verdenen af webgr\u00e6nseflader til Kubernetes er ikke s\u00e6rlig stor*, s\u00e5 jeg pr\u00f8vede at samle yderligere information ved hj\u00e6lp af <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\/status\/1153543128365850625\">Twitter<\/a><\/noindex>:<\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/75c26a70ec886700db2a81b57d672538.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>* Min forklaring p\u00e5 det begr\u00e6nsede antal webgr\u00e6nseflader til Kubernetes: cloud-tjenester og Kubernetes-leverand\u00f8rer tilbyder normalt deres egne frontend-l\u00f8sninger, s\u00e5 markedet for \"gode\" gratis Kubernetes-UI'er er relativt lille.<\/i><\/p>\n<p>Ved hj\u00e6lp af et tweet l\u00e6rte jeg om <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> og <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\">Octant<\/a><\/noindex>. Lad os kigge p\u00e5 dem og andre eksisterende Open Source-l\u00f8sninger og fors\u00f8ge at forst\u00e5, hvad de indeb\u00e6rer.<\/p>\n<h2>K8Dash<\/h2>\n<p>\n<i>\"K8Dash er den nemmeste m\u00e5de at administrere et Kubernetes-klynge p\u00e5.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til 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> ser godt ud og f\u00f8les hurtigt, men har nogle mangler til de ovenfor n\u00e6vnte anvendelsesscenarier:<\/p>\n<ul>\n<li> Fungerer kun inden for en enkelt klynge.<\/li>\n<li> Sortering og filtrering er mulige, men har ikke permanente links.<\/li>\n<li> Manglende underst\u00f8ttelse af Custom Resource Definitions (CRDs).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernator<\/h2>\n<p>\n<i>\"Kubernator er en alternativ UI til Kubernetes. I mods\u00e6tning til den h\u00f8j-niveau panel Kubernetes Dashboard, giver det lav-niveau kontrol og en fremragende oversigt over alle objekter i klyngen med mulighed for at oprette nye, redigere dem og l\u00f8se konflikter. Da det er en fuldst\u00e6ndig klient-applikation (ligesom kubectl), kr\u00e6ver det ikke en backend undtagen selve API-serveren for Kubernetes, og det tager ogs\u00e5 h\u00f8jde for adgangsreglerne i klyngen.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/230115c88206d57443067a5b44ee9f31.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet er en ret pr\u00e6cis beskrivelse af <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smpio\/kubernator\">Kubernetes<\/a><\/noindex>Desv\u00e6rre mangler det nogle funktioner:<\/p>\n<ul>\n<li> Betjener kun en enkelt klynge.<\/li>\n<li> Der er ingen listevisning (dvs. det er ikke muligt at vise alle pods med status \u00abPending\u00bb).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Dashboard<\/h2>\n<p>\n<i>\"Kubernetes Dashboard er et alsidigt webinterface til Kubernetes-klynger. Det giver brugerne mulighed for at administrere applikationer, der k\u00f8rer i klyngen, og fejlfinde dem samt administrere selve klyngen.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/10b37d00ed4c6cbb05a0eb9069a4371f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesv\u00e6rre, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\">Kubernetes Dashboard<\/a><\/noindex> det hj\u00e6lper ikke meget med mine aktiviteter inden for support og h\u00e6ndelsesrespons, fordi det har:<\/p>\n<ul>\n<li> ingen permanente links, f.eks. n\u00e5r jeg filtrerer ressourcer eller \u00e6ndrer sorteringsr\u00e6kkef\u00f8lgen;<\/li>\n<li> der er ingen nem m\u00e5de at filtrere efter status p\u00e5 \u2014 for eksempel at se alle pods med status \u00abPending\u00bb;<\/li>\n<li> kun \u00e9n klynge underst\u00f8ttes;<\/li>\n<li> CRD underst\u00f8ttes ikke (denne funktion er under udvikling);<\/li>\n<li> ingen brugerdefinerede kolonner (f.eks. kolonner med etiketter som <code>kubectl -L<\/code>).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Operational View (kube-ops-view)<\/h2>\n<p>\n<i>\"Systemoversigt over K8s-klusteromr\u00e5det.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/0d63fcce4d54fbf5b40b15ad195e8ba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVed <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">Kubernetes Operational View<\/a><\/noindex> en helt anden tilgang: dette v\u00e6rkt\u00f8j viser kun klyngeknudepunkter og pods ved hj\u00e6lp af WebGL, uden nogen tekstuelle detaljer om objekterne. Det er fremragende til en hurtig oversigt over klyngens tilstand (\u00abfaldende pods?\u00bb)*, men ikke velegnet til de n\u00e6vnte anvendelsestilf\u00e6lde i support og h\u00e6ndelsesreaktion.<\/p>\n<p><i>* <b>Bem. overs.<\/b>: I denne forbindelse kan du ogs\u00e5 v\u00e6re interesseret i vores plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/grafana-statusmap\">grafana-statusmap<\/a><\/noindex>, som vi har beskrevet n\u00e6rmere i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/423851\/\">denne artikel<\/a><\/noindex>.<\/i><\/p>\n<h2>Kubernetes Resource Report (kube-resource-report)<\/h2>\n<p>\n<i>\u00abIndsaml oplysninger om ressourceanmodninger fra pods og Kubernetes-klyngen, sammenlign dem med ressourceforbruget og generer statisk HTML.\u00bb<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til 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\/\">Kubernetes Ressourcerapport<\/a><\/noindex> genererer statiske HTML-rapporter om ressourceforbrug og omkostningsfordeling p\u00e5 tv\u00e6rs af teams\/applikationer i klynger. Rapporten er i nogen grad nyttig til support og h\u00e6ndelsesrespons, da det muligg\u00f8r hurtigere at finde den klynge, hvor applikationen er implementeret.<\/p>\n<p><i><b>Bem. overs.<\/b>: Ved visningen af oplysninger om ressourcefordeling og deres omkostninger kan der ogs\u00e5 vise sig at v\u00e6re nyttigt en tjeneste og et v\u00e6rkt\u00f8j <noindex><a rel=\"nofollow\" href=\"https:\/\/kubecost.com\/\">Kubecost<\/a><\/noindex>, hvis oversigt vi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/466659\/\">for nylig offentliggjorde<\/a><\/noindex>.<\/i><\/p>\n<h2>Octant<\/h2>\n<p>\n<i>\"En udvidelig webplatform for udviklere, designet til at give bedre forst\u00e5else af kompleksiteten i Kubernetes-klynger.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til 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>, skabt i VMware, \u2014 et nyt produkt, som jeg f\u00f8rst har l\u00e6rt om for nylig. Det er praktisk at udforske klyngen p\u00e5 en lokal maskine (der er endda visualiseringer), men det adresserer kun begr\u00e6nset problematikken omkring support og reaktion p\u00e5 h\u00e6ndelser. Ulemper ved Octant:<\/p>\n<ul>\n<li> Ingen s\u00f8gning p\u00e5 klynger.<\/li>\n<li> Fungerer kun p\u00e5 en lokal maskine (kan ikke implementeres i klyngen).<\/li>\n<li> Det er ikke muligt at sortere\/filtere objekter (kun labels-selektor underst\u00f8ttes).<\/li>\n<li> Mulighed for at angive brugerdefinerede kolonner mangler.<\/li>\n<li> Det er ikke muligt at vise objektlister efter navnerum.<\/li>\n<\/ul>\n<p>\nJeg har ogs\u00e5 haft problemer med stabiliteten af Octant med Zalando-klynger: med nogle CRD <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\/issues\/72\">den faldt.<\/a><\/noindex>.<\/p>\n<h2>Jeg pr\u00e6senterer Kubernetes Web View<\/h2>\n<p>\n<i>\u00abkubectl til web\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/e7b0eb0650de76516bbe05305b9dea9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEfter at have analyseret de tilg\u00e6ngelige interface muligheder for Kubernetes, besluttede jeg at skabe en ny: <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/hjacobs\/kube-web-view\/\">Kubernetes Web View<\/a><\/noindex>. For i bund og grund har jeg kun brug for al kraften <code>kubectl<\/code> i web, nemlig:<\/p>\n<ul>\n<li> tilg\u00e6ngelighed af alle (l\u00e6se-only) operationer, hvor brugerne foretr\u00e6kker at bruge kubectl;<\/li>\n<li> alle URL'er skal v\u00e6re permanente og repr\u00e6sentere siden i original form, s\u00e5 kolleger kan dele dem og bruge dem i andre v\u00e6rkt\u00f8jer;<\/li>\n<li> underst\u00f8ttelse af alle Kubernetes-objekter, s\u00e5 enhver type problem kan l\u00f8ses;<\/li>\n<li> ressourcelister skal v\u00e6re downloadbare til videre bearbejdning (i regneark, CLI-v\u00e6rkt\u00f8jer som <code>grep<\/code>) og opbevaring (for eksempel til postmortems);<\/li>\n<li> underst\u00f8ttelse af filtrering af ressourcer efter labels (som i <code>kubectl get .. -l<\/code>);<\/li>\n<li> mulighed for at oprette sammenlagte lister over forskellige typer ressourcer (som i <code>kubectl get all<\/code>) for at f\u00e5 et samlet operativt billede blandt kolleger (f.eks. i forbindelse med h\u00e6ndelsesreaktion);<\/li>\n<li> mulighed for at tilf\u00f8je tilpassede \u00absmarte\u00bb dybe links til andre v\u00e6rkt\u00f8jer som dashboards, loggere, applikationsregistre osv. for at lette s\u00f8gning\/fejlfinding og h\u00e6ndelsesreaktion;<\/li>\n<li> frontend skal v\u00e6re ekstremt simpel (ren HTML) for at undg\u00e5 utilsigtede problemer, f.eks. h\u00e6ngende JavaScript;<\/li>\n<li> underst\u00f8ttelse af mange klynger for at g\u00f8re interaktionen lettere ved fjernr\u00e5dgivning (f.eks. for kun at skulle huske \u00e9n URL);<\/li>\n<li> situationsanalyse skal forenkles, hvis muligt (f.eks. med links til download af ressourcer p\u00e5 tv\u00e6rs af alle klynger\/navnerum);<\/li>\n<li> yderligere funktioner til at danne fleksible links og fremh\u00e6ve tekstinformation, for eksempel s\u00e5 man kan pege kolleger mod et bestemt afsnit i ressourcebeskrivelsen (en r\u00e6kke i YAML);<\/li>\n<li> mulighed for tilpasning til krav fra bestemte kunder, for eksempel ved at tillade oprettelse af specialfremstillede visningsskabeloner for CRD, egne tabelvisninger, \u00e6ndring af CSS-stile;<\/li>\n<li> midler til videre unders\u00f8gelse i kommandolinjen (for eksempel ved at vise komplette kommandoer <code>kubectl<\/code>, klar til kopiering);<\/li>\n<\/ul>\n<p>\nUdover opgaver som l\u00f8ses i Kubernetes Web View <i>(non-goals)<\/i> forbliver:<\/p>\n<ul>\n<li> abstraktion af Kubernetes-objekter;<\/li>\n<li> applikationsadministration (for eksempel administration af deployments, Helm-diagrammer osv.);<\/li>\n<li> skrivningsoperationer (skal udf\u00f8res gennem sikre CI\/CD-v\u00e6rkt\u00f8jer og\/eller GitOps);<\/li>\n<li> flot gr\u00e6nseflade (JavaScript, temaer osv.);<\/li>\n<li> visualiseringer (se. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">kube-ops-view<\/a><\/noindex>);<\/li>\n<li> omkostningsanalyse (se. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-resource-report\/\">kube-resource-report<\/a><\/noindex>).<\/li>\n<\/ul>\n<p>\nHvordan hj\u00e6lper Kubernetes Web View med support og respons p\u00e5 h\u00e6ndelser?<\/p>\n<h3>Support<\/h3>\n<p><\/p>\n<ul>\n<li> <b>Alle links er permanente<\/b>, hvilket letter informationsdeling med kolleger.<\/li>\n<li> Man kan oprette <b>sine visninger<\/b>, for eksempel at vise alle Deployments og Pods med en bestemt label i to specifikke klynger (flere klynge-navne og ressource-typer kan angives i linket, adskilt med komma).<\/li>\n<li> Man kan henvise til <b>bestemte linjer i YAML-filen<\/b> af objektet, der peger p\u00e5 potentielle problemer i objektets specifikation.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/9e0b3ab31181f8d93323c413d9185888.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>S\u00f8gning i klynger i Kubernetes Web View<\/i><\/p>\n<h3>Reaktion p\u00e5 h\u00e6ndelser<\/h3>\n<p><\/p>\n<ul>\n<li> <b>Global s\u00f8gning<\/b> <i>(global search)<\/i> giver mulighed for at s\u00f8ge efter objekter i alle klynger.<\/li>\n<li> <b>Listerede visninger<\/b> kan vise alle objekter med en bestemt status\/kolonne i alle klynger (for eksempel skal vi finde alle pods med status \u00abPending\u00bb).<\/li>\n<li> <b>Objekter kan downloades<\/b> i TSV-format (tab-separated values) til efterf\u00f8lgende analyse.<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/en\/latest\/customization.html#external-links\">Tilpassede eksterne links<\/a><\/noindex> g\u00f8r det muligt at skifte til de relevante overv\u00e5gningspaneler og andre v\u00e6rkt\u00f8jer.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web-UI&#039;er til Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/ac275aa6b234988f40a2d0cde2ac4870.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes Web View: liste over pods med status \u00abPending\u00bb i alle klynger<\/i><\/p>\n<p>Hvis du \u00f8nsker at pr\u00f8ve Kubernetes Web View, anbefaler jeg at se p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/\">dokumentation<\/a><\/noindex> eller se p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.demo.j-serv.de\/\">den live demo-version<\/a><\/noindex>.<\/p>\n<p>Selvf\u00f8lgelig kunne gr\u00e6nsefladen v\u00e6re bedre, men indtil videre er Kubernetes Web View et v\u00e6rkt\u00f8j for \"avancerede brugere\", der ikke er bange for at manipulere URL-stier manuelt, hvis n\u00f8dvendigt. Hvis du har kommentarer \/ tilf\u00f8jelser \/ \u00f8nsker, s\u00e5 kontakt <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\">mig p\u00e5 Twitter<\/a><\/noindex>!<\/p>\n<p>Denne artikel er en kort fort\u00e6lling om foruds\u00e6tningerne, der f\u00f8rte til skabelsen af Kubernetes Web View. Flere f\u00f8lger! <i>(<b>Bem. overs.<\/b>: De b\u00f8r forventes i <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/\">forfatterens blog<\/a><\/noindex>.)<\/i><\/p>\n<h2>P.S. fra overs\u00e6tteren<\/h2>\n<p>\nL\u00e6s ogs\u00e5 p\u00e5 vores blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox og andre kommandolinjegr\u00e6nseflader til Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">V\u00e6rkt\u00f8jer til udviklere af applikationer, der k\u00f8res i Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/467433\/\">Der er nu et konsolv\u00e6rkt\u00f8j kaldet kubelive til interaktivt arbejde med Kubernetes.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/330198\/\">Nyttige v\u00e6rkt\u00f8jer til arbejde med Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Annoncering af Kubernetes Web View-gr\u00e6nsefladen (og en kort oversigt over andre web UI til Kubernetes) | ProHoster","description":"Bem\u00e6rk fra overs\u00e6tteren: Forfatteren af det originale materiale er Henning Jacobs fra Zalando. Han har skabt en ny webgr\u00e6nseflade til arbejde med Kubernetes, der pr\u00e6senteres som \"kubectl til weben\".","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/38369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=38369"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/38369\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/28800"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=38369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=38369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=38369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}