{"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\/es\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","title":{"rendered":"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota de traducci\u00f3n.<\/b>: El autor del material original es Henning Jacobs de Zalando. Ha creado una nueva interfaz web para trabajar con Kubernetes, que se presenta como \u00abkubectl para la web\u00bb. \u00bfPor qu\u00e9 apareci\u00f3 este nuevo proyecto de c\u00f3digo abierto y qu\u00e9 criterios no cumpl\u00edan las soluciones existentes? Lee m\u00e1s en su art\u00edculo.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/82abbfbfaeb30adb000b749cc97809e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn esta publicaci\u00f3n, analizo diversas interfaces web de Kubernetes de c\u00f3digo abierto, presento mis requisitos para una UI universal y explico por qu\u00e9 la desarroll\u00e9. <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/hjacobs\/kube-web-view\/\">Vista Web de Kubernetes<\/a><\/noindex> \u2014 una interfaz destinada a facilitar el soporte y la resoluci\u00f3n de problemas en m\u00faltiples clusters.<\/p>\n<h2>Casos de uso<\/h2>\n<p>\nEn Zalando atendemos a un gran n\u00famero de usuarios de Kubernetes (m\u00e1s de 900) y clusters (m\u00e1s de 100). Hay un par de casos de uso t\u00edpicos en los que ser\u00eda muy \u00fatil contar con la ayuda de una herramienta web especializada:<\/p>\n<ol>\n<li> comunicaci\u00f3n con colegas dentro del soporte;<\/li>\n<li> respuesta a incidentes e investigaci\u00f3n de sus causas.<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Soporte<\/h3>\n<p>\nDesde mi experiencia, la comunicaci\u00f3n en soporte a menudo se ve as\u00ed:<\/p>\n<p><i>\u2014 \u00a1Ayuda, nuestro servicio XYZ no est\u00e1 disponible!<br \/>\n\u2014 \u00bfQu\u00e9 ves cuando ejecutas <code>kubectl describe ingress ...<\/code>?<\/i><\/p>\n<p>O algo similar para CRD:<\/p>\n<p><i>\u2014 Tengo un problema con el servicio de identidad\u2026<br \/>\n\u2014 \u00bfQu\u00e9 devuelve el comando <code>kubectl describe platformcredentialsset ...<\/code>?<\/i><\/p>\n<p>Esta comunicaci\u00f3n generalmente se reduce a ingresar varias variaciones del comando <code>kubectl<\/code> con el fin de identificar el problema. Como resultado, ambas partes de la conversaci\u00f3n se ven obligadas a cambiar constantemente entre la terminal y el chat web, adem\u00e1s de observar diferentes situaciones.<\/p>\n<p>Por lo tanto, quiero que el frontend web de Kubernetes permita lo siguiente:<\/p>\n<ul>\n<li> los usuarios podr\u00edan <b>intercambiar enlaces<\/b> y ver lo mismo;<\/li>\n<li> ayudara a <b>evitar errores humanos<\/b> en el soporte: por ejemplo, acceder al cluster incorrecto desde la l\u00ednea de comandos, errores tipogr\u00e1ficos en los comandos de la CLI, etc.;<\/li>\n<li> permitir\u00eda <b>generar vistas personalizadas<\/b> para enviar a colegas, es decir, agregar columnas de etiquetas, mostrar m\u00faltiples tipos de recursos en una misma p\u00e1gina;<\/li>\n<li> idealmente, esta herramienta web deber\u00eda permitir establecer <b>enlaces 'profundos' a secciones espec\u00edficas de YAML<\/b> (por ejemplo, apuntar a un par\u00e1metro incorrecto que cause fallos).<\/li>\n<\/ul>\n<p><\/p>\n<h3>Respuesta a incidentes y an\u00e1lisis<\/h3>\n<p>\nLa respuesta a incidentes en la infraestructura requiere conciencia situacional, capacidad para evaluar el impacto y b\u00fasqueda de patrones en los cl\u00fasteres. Algunos ejemplos de la vida real:<\/p>\n<ul>\n<li> un servicio de producci\u00f3n cr\u00edtico tiene problemas y necesitas <b>encontrar todos los recursos de Kubernetes por nombre en todos los cl\u00fasteres<\/b>, para solucionar el problema;<\/li>\n<li> los nodos comienzan a fallar al escalar, y necesitas <b>encontrar todos los pods con estado \u00abPending\u00bb en todos los cl\u00fasteres<\/b>, para evaluar la magnitud del problema;<\/li>\n<li> usuarios individuales informan de un problema con un DaemonSet desplegado en todos los cl\u00fasteres, y es necesario averiguar si <b>el problema es generalizado<\/b>.<\/li>\n<\/ul>\n<p>\nMi soluci\u00f3n est\u00e1ndar en tales casos es algo como <code>for i in $clusters; do kubectl ...; done<\/code>. Evidentemente, se puede desarrollar una herramienta que proporcione capacidades similares.<\/p>\n<h2>Las interfaces web existentes de Kubernetes<\/h2>\n<p>\nEl mundo de las interfaces web de c\u00f3digo abierto para Kubernetes no es muy grande*, as\u00ed que trat\u00e9 de recopilar informaci\u00f3n adicional mediante <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\/status\/1153543128365850625\">Twitter<\/a><\/noindex>:<\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/75c26a70ec886700db2a81b57d672538.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>* Mi explicaci\u00f3n sobre el n\u00famero limitado de interfaces web para Kubernetes: los servicios en la nube y los proveedores de Kubernetes generalmente ofrecen sus propias interfaces frontales, por lo que el mercado de UI \u00abbuenas\u00bb libres para Kubernetes es relativamente peque\u00f1o.<\/i><\/p>\n<p>A trav\u00e9s de un tweet, supe de <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> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\">Octant<\/a><\/noindex>. Veamos estas y otras soluciones de c\u00f3digo abierto existentes, intentemos entender qu\u00e9 son.<\/p>\n<h2>K8Dash<\/h2>\n<p>\n<i>\u00abK8Dash es la forma m\u00e1s sencilla de gestionar un cl\u00faster de Kubernetes\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para 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> se ve bien y parece funcionar r\u00e1pido, pero tiene varias desventajas para los escenarios de uso mencionados anteriormente:<\/p>\n<ul>\n<li> Funciona solo dentro de un cl\u00faster.<\/li>\n<li> La clasificaci\u00f3n y filtrado son posibles, pero no tienen enlaces permanentes.<\/li>\n<li> Falta el soporte para Custom Resource Definitions (CRDs).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernator<\/h2>\n<p>\n<i>\u00abKubernator es una UI alternativa para Kubernetes. A diferencia del panel de alto nivel del Kubernetes Dashboard, proporciona un control de bajo nivel y una excelente visi\u00f3n de todos los objetos en el cl\u00faster con la posibilidad de crear nuevos, editarlos y resolver conflictos. Siendo completamente una aplicaci\u00f3n cliente (como kubectl), no requiere ning\u00fan backend excepto el propio servidor API de Kubernetes, y tambi\u00e9n toma en cuenta las reglas de acceso al cl\u00faster\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/230115c88206d57443067a5b44ee9f31.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs una descripci\u00f3n bastante precisa de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smpio\/kubernator\">Kubernetes<\/a><\/noindex>. Lamentablemente, le faltan algunas capacidades:<\/p>\n<ul>\n<li> Solo admite un cl\u00faster.<\/li>\n<li> No hay modo de vista en lista (es decir, no se pueden mostrar todos los pods con estado \u00abPending\u00bb).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Dashboard<\/h2>\n<p>\n<i>\u00abKubernetes Dashboard es una interfaz web universal para cl\u00fasteres de Kubernetes. Permite a los usuarios gestionar las aplicaciones que funcionan en el cl\u00faster y solucionar problemas, as\u00ed como gestionar el cl\u00faster en s\u00ed\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/10b37d00ed4c6cbb05a0eb9069a4371f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesafortunadamente, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\">Kubernetes Dashboard<\/a><\/noindex> no ayuda mucho en mis actividades de soporte y respuesta a incidentes, porque en \u00e9l:<\/p>\n<ul>\n<li> no hay enlaces permanentes, por ejemplo, cuando filtro recursos o cambio el orden de clasificaci\u00f3n;<\/li>\n<li> no hay una forma sencilla de filtrar por estado \u2014 por ejemplo, ver todos los pods con estado \u00abPending\u00bb;<\/li>\n<li> solo se admite un cl\u00faster;<\/li>\n<li> no se admiten CRD (esta funci\u00f3n est\u00e1 en desarrollo);<\/li>\n<li> no hay columnas personalizadas (por ejemplo, columnas con etiquetas como <code>kubectl -L<\/code>).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Operational View (kube-ops-view)<\/h2>\n<p>\n<i>\u00abPanel de observaci\u00f3n del espacio de cl\u00fasteres K8s\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/0d63fcce4d54fbf5b40b15ad195e8ba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">Kubernetes Operational View<\/a><\/noindex> enfoque completamente diferente: esta herramienta solo muestra los nodos del cl\u00faster y los pods utilizando WebGL, sin detalles textuales sobre los objetos. Es excelente para una revisi\u00f3n operativa del estado del cl\u00faster (\u00ab\u00bflos pods est\u00e1n fallando?\u00bb)*, pero no es adecuada para los casos de uso descritos anteriormente en soporte y respuesta a incidentes.<\/p>\n<p><i>* <b>Nota de traducci\u00f3n.<\/b>: En este sentido, tambi\u00e9n puede interesarte nuestro complemento <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/grafana-statusmap\">grafana-statusmap<\/a><\/noindex>, del que hablamos en detalle en <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/423851\/\">este art\u00edculo<\/a><\/noindex>.<\/i><\/p>\n<h2>Kubernetes Resource Report (kube-resource-report)<\/h2>\n<p>\n<i>\u00abRecopila informaci\u00f3n sobre las solicitudes de recursos de los pods y del cl\u00faster de Kubernetes, comp\u00e1ralas con el consumo de recursos y genera HTML est\u00e1tico\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para 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 Resource Report<\/a><\/noindex> genera informes HTML est\u00e1ticos sobre el uso de recursos y la distribuci\u00f3n de costos por equipos\/aplicaciones en los cl\u00fasteres. El informe es \u00fatil en cierta medida para soporte y respuesta a incidentes, ya que permite encontrar m\u00e1s r\u00e1pidamente el cl\u00faster donde se despleg\u00f3 la aplicaci\u00f3n.<\/p>\n<p><i><b>Nota de traducci\u00f3n.<\/b>: En la visualizaci\u00f3n de la distribuci\u00f3n de recursos y su costo, el servicio y herramienta <noindex><a rel=\"nofollow\" href=\"https:\/\/kubecost.com\/\">Kubecost<\/a><\/noindex>, cuyo resumen publicamos <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/466659\/\">recientemente<\/a><\/noindex>.<\/i><\/p>\n<h2>Octant<\/h2>\n<p>\n<i>\u00abUna plataforma web extensible para desarrolladores destinada a proporcionar una mejor comprensi\u00f3n de la complejidad de los cl\u00fasteres de Kubernetes\u00bb.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para 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>, creado en VMware, es un nuevo producto del cual supe relativamente hace poco. Con \u00e9l, es conveniente explorar el cl\u00faster en una m\u00e1quina local (incluso hay visualizaciones), sin embargo, aborda la problem\u00e1tica del soporte y la respuesta a incidentes solo en una medida limitada. Desventajas de Octant:<\/p>\n<ul>\n<li> No hay b\u00fasqueda en los cl\u00fasteres.<\/li>\n<li> Funciona solo en la m\u00e1quina local (no se implementa en el cl\u00faster).<\/li>\n<li> No se pueden ordenar\/filtrar objetos (solo se admite el selector de etiquetas).<\/li>\n<li> No se pueden establecer columnas personalizadas.<\/li>\n<li> No se puede listar objetos por espacios de nombres.<\/li>\n<\/ul>\n<p>\nAdem\u00e1s, tuve problemas con la estabilidad de Octant con los cl\u00fasteres de Zalando: en algunos CRD <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\/issues\/72\">se ca\u00eda.<\/a><\/noindex>.<\/p>\n<h2>Presento Kubernetes Web View<\/h2>\n<p>\n<i>\"kubectl para la web.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/e7b0eb0650de76516bbe05305b9dea9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTras analizar las opciones de interfaces disponibles para Kubernetes, decid\u00ed crear una nueva: <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/hjacobs\/kube-web-view\/\">Vista Web de Kubernetes<\/a><\/noindex>. En esencia, solo necesito todo el poder <code>kubectl<\/code> en la web, es decir:<\/p>\n<ul>\n<li> disponibilidad de todas las operaciones (de solo lectura) en las que los usuarios prefieren usar kubectl;<\/li>\n<li> todas las URL deben ser permanentes y representar la p\u00e1gina en su forma original, para que los colegas puedan compartirlas y usarlas en otras herramientas;<\/li>\n<li> soporte para todos los objetos de Kubernetes, lo que permitir\u00e1 resolver problemas de cualquier tipo;<\/li>\n<li> las listas de recursos deben poder descargarse para el trabajo posterior (en hojas de c\u00e1lculo, herramientas de CLI como <code>grep<\/code>) y almacenamiento (por ejemplo, para informes postmortem);<\/li>\n<li> soporte para filtrar recursos por etiquetas (de manera similar a <code>kubectl get .. -l<\/code>);<\/li>\n<li> posibilidad de crear listas combinadas de diferentes tipos de recursos (de manera similar a <code>kubectl get all<\/code>) para obtener una visi\u00f3n general operativa entre colegas (por ejemplo, durante la respuesta a un incidente);<\/li>\n<li> posibilidad de agregar \"enlaces profundos inteligentes\" personalizables a otras herramientas, como paneles de control, registradores, registros de aplicaciones, etc., para facilitar la b\u00fasqueda\/soluci\u00f3n de problemas y la respuesta ante incidentes;<\/li>\n<li> el frontend debe ser lo m\u00e1s simple posible (HTML limpio), para evitar problemas accidentales, por ejemplo, un JavaScript que se bloquee;<\/li>\n<li> soporte para m\u00faltiples cl\u00fasteres para facilitar la interacci\u00f3n durante la consultor\u00eda remota (por ejemplo, para recordar solo una URL);<\/li>\n<li> si es posible, debe simplificar el an\u00e1lisis situacional (por ejemplo, con enlaces para descargar recursos en todos los cl\u00fasteres\/espacios de nombres);<\/li>\n<li> m\u00e1s opciones para crear enlaces flexibles y resaltar informaci\u00f3n textual, por ejemplo, para poder se\u00f1alar a los colegas una secci\u00f3n espec\u00edfica en la descripci\u00f3n del recurso (l\u00ednea en YAML);<\/li>\n<li> posibilidad de personalizaci\u00f3n seg\u00fan las necesidades de un cliente espec\u00edfico, por ejemplo, permitiendo crear plantillas de visualizaci\u00f3n especiales para CRD, vistas tabulares personalizadas, modificar estilos CSS;<\/li>\n<li> herramientas para un estudio m\u00e1s profundo en la l\u00ednea de comandos (por ejemplo, mostrando comandos completos <code>kubectl<\/code>, listos para ser copiados);<\/li>\n<\/ul>\n<p>\nFuera de las tareas abordadas en Kubernetes Web View <i>(no objetivos)<\/i> quedaron:<\/p>\n<ul>\n<li> abstracci\u00f3n de objetos de Kubernetes;<\/li>\n<li> gesti\u00f3n de aplicaciones (por ejemplo, gesti\u00f3n de deployments, Helm charts, etc.);<\/li>\n<li> operaciones de escritura (deben realizarse a trav\u00e9s de herramientas de CI\/CD seguras y\/o GitOps);<\/li>\n<li> interfaz atractiva (JavaScript, temas, etc.);<\/li>\n<li> visualizaciones (ver <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">kube-ops-view<\/a><\/noindex>);<\/li>\n<li> an\u00e1lisis de costos (ver <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-resource-report\/\">kube-resource-report<\/a><\/noindex>).<\/li>\n<\/ul>\n<p>\n\u00bfC\u00f3mo ayuda Kubernetes Web View en la gesti\u00f3n y respuesta a incidentes?<\/p>\n<h3>Soporte<\/h3>\n<p><\/p>\n<ul>\n<li> <b>Todos los enlaces son permanentes<\/b>, lo que facilita el intercambio de informaci\u00f3n con colegas.<\/li>\n<li> Se pueden crear <b>vistas personalizadas<\/b>, por ejemplo, mostrar todos los Deployments y Pods con una etiqueta espec\u00edfica en dos cl\u00fasteres concretos (se pueden especificar varios nombres de cl\u00fasteres y tipos de recursos en el enlace, separ\u00e1ndolos con comas).<\/li>\n<li> Se puede hacer referencia a <b>l\u00edneas espec\u00edficas en el archivo YAML<\/b> del objeto, se\u00f1alando problemas potenciales en la especificaci\u00f3n del objeto.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/9e0b3ab31181f8d93323c413d9185888.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B\u00fasqueda en cl\u00fasteres en Kubernetes Web View<\/i><\/p>\n<h3>Respuesta a incidentes<\/h3>\n<p><\/p>\n<ul>\n<li> <b>B\u00fasqueda global<\/b> <i>(b\u00fasqueda global)<\/i> permite buscar objetos en todos los cl\u00fasteres.<\/li>\n<li> <b>Las vistas en forma de listas<\/b> pueden mostrar todos los objetos con un estado\/columna espec\u00edfico en todos los cl\u00fasteres (por ejemplo, necesitamos encontrar todos los pods con estado \u00abPending\u00bb).<\/li>\n<li> <b>Las listas de objetos se pueden descargar<\/b> en formato de valores separados por tabulaciones (TSV) para un an\u00e1lisis posterior.<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/en\/latest\/customization.html#external-links\">Los enlaces externos personalizables<\/a><\/noindex> permiten alternar entre paneles de monitoreo y otras herramientas.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Anuncio de la interfaz web Kubernetes Web View (y una breve rese\u00f1a de otras UI web para Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/ac275aa6b234988f40a2d0cde2ac4870.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes Web View: lista de pods con estado \u00abPending\u00bb en todos los cl\u00fasteres<\/i><\/p>\n<p>Si desea probar Kubernetes Web View, recomiendo revisar la <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/\">documentaci\u00f3n<\/a><\/noindex> o ver una <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.demo.j-serv.de\/\">demo en vivo<\/a><\/noindex>.<\/p>\n<p>Por supuesto, la interfaz podr\u00eda ser mejor, pero mientras tanto, Kubernetes Web View es una herramienta para \"usuarios avanzados\" que no temen manipular manualmente las rutas URL si es necesario. Si tienes comentarios\/adiciones\/sugerencias, por favor cont\u00e1ctame <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\">a trav\u00e9s de Twitter<\/a><\/noindex>!<\/p>\n<p>Este art\u00edculo es un breve relato sobre las premisas que llevaron a la creaci\u00f3n de Kubernetes Web View. \u00a1Le seguir\u00e1n otros! <i>(<b>Nota de traducci\u00f3n.<\/b>: Se esperan en <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/\">el blog del autor<\/a><\/noindex>.)<\/i><\/p>\n<h2>P.D. del traductor<\/h2>\n<p>\nTambi\u00e9n puedes leer en nuestro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox y otras consolas para Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">Herramientas para desarrolladores de aplicaciones que se ejecutan en Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/467433\/\">Ha aparecido la utilidad de consola kubelive para trabajar interactivamente con Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/330198\/\">Utilidades \u00fatiles al trabajar con Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <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 - 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\/es\/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\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Anuncio de la interfaz web Kubernetes Web View (y una breve revisi\u00f3n de otras UI web para Kubernetes) | ProHoster","description":"Nota del traductor: El autor del material original es Henning Jacobs de la empresa Zalando. Cre\u00f3 una nueva interfaz web para trabajar con Kubernetes, que se posiciona como \"kubectl para la web\".","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/38369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=38369"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38369\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/28800"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=38369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=38369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=38369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}