
Para un funcionamiento completo del sistema, es importante conocer las utilidades de la línea de comandos: en el caso de Kubernetes, esto es kubectl. Por otro lado, interfaces gráficas bien diseñadas pueden realizar la mayor parte de las tareas habituales y abrir oportunidades adicionales en la explotación de sistemas.mayor audiencia.El año pasado publicamos una traducción de
una breve revisión de la interfaz web . El autor de ese artículo y de la utilidad en sí es Henning Jacobs de la empresa Zalando, quien posicionó la novedad como "kubectl para la web". Quería crear una herramienta con opciones amigables para la interacción en formato de soporte técnico (por ejemplo, mostrar rápidamente un problema a través de un enlace web) y para reaccionar ante incidentes, buscando problemas en múltiples clústeres al mismo tiempo. Su creación sigue evolucionando en la actualidad (principalmente por el propio autor). Al mantener múltiples clústeres de Kubernetes de diferentes escalas, también estamos interesados en ofrecer a nuestros clientes una herramienta visual. Al elegir la interfaz adecuada, las siguientes capacidades fueron clave para nosotros:
soporte para la segmentación de derechos de los usuarios (RBAC);
- visualización del estado de los espacios de nombres y de los primitivos estándar de Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
- acceso a la línea de comandos dentro del pod;
- visualización de los registros de los pods;
- visualización del estado de los pods (
- estado de descripción
eliminación de pods.); - Otras funciones, como la visualización de recursos consumidos (por pod/controladores/espacios de nombres), creación/edición de primitivos K8s, no son relevantes en nuestro flujo de trabajo.
Comenzaremos nuestra revisión con el clásico Kubernetes Dashboard, que aceptamos como estándar. Dado que el mundo no se detiene (y, por lo tanto, Kubernetes tiene cada vez más GUI), también hablaremos de sus alternativas actuales, resumiendo todo en una tabla comparativa al final del artículo.
: En la revisión no repetiremos aquellas soluciones que ya se han discutido en
NB, sin embargo, para completar el panorama, opciones relevantes de ella (K8Dash, Octant, Kubernetes Web View) están incluidas en la tabla final. 1. Kubernetes Dashboard
Página de documentación
- ;
- Licencia: Apache 2.0;
- Лицензия: Apache 2.0;
- Resumen: «Interfaz web universitaria para clústeres de Kubernetes. Permite a los usuarios gestionar aplicaciones que funcionan en el clúster, solucionar problemas y gestionar el clúster en sí».

Es un panel de uso general considerado por los autores de Kubernetes en la documentación oficial. (aunque no por defecto). Está diseñado para las necesidades de operación diaria y depuración de aplicaciones en el clúster. Nosotros lo usamos como una herramienta visual ligera que permite proporcionar a los desarrolladores el acceso necesario y suficiente al clúster. Sus capacidades cubren todas sus necesidades que surgen durante el uso del clúster. el comportamiento difiere un poco). Y si, de repente, te conectas sin cierta coordinación, eludiendo las reglas de enrutamiento de la red en un segmento cerrado, el atacante te encontrará rápidamente. hemos demostrado algunas características del panel). Como es fácil de adivinar, esto significa que satisface todos nuestros requisitos mencionados anteriormente.
Entre las principales capacidades del Kubernetes Dashboard:
- Navegación: visualización de los objetos principales de K8s en el contexto de los espacios de nombres.
- Con derechos de administrador, el panel muestra nodos, espacios de nombres y Volúmenes Persistentes. Para los nodos está disponible la estadística de uso de memoria, CPU, asignación de recursos, métricas, estado, eventos, etc.
- Visualización de aplicaciones desplegadas en el espacio de nombres según su tipo (Deployment, StatefulSet, etc.), las relaciones entre ellas (ReplicaSet, Horizontal Pod Autoscaler), estadísticas generales y personalizadas e información.
- Visualización de servicios e Ingress, así como sus relaciones con los pods y endpoints.
- Visualización de objetos de archivo y almacenamientos: Persistent Volume y Persistent Volume Claim.
- Visualización y edición de ConfigMap y Secret.
- Visualización de registros.
- Acceso a la línea de comandos en los contenedores.
Una desventaja significativa (aunque no para nosotros) es que no hay soporte para trabajo multicluster. El proyecto se desarrolla activamente por la comunidad y admite funciones actualizadas con el lanzamiento de nuevas versiones y especificaciones de Kubernetes API: la última versión del panel es del 22 de mayo de 2020 — probada para compatibilidad con Kubernetes 1.18.
2. Lens
- ;
- ;
- (~4800 estrellas de GitHub);
- Licencia: MIT;
- Resumen: «IDE de Kubernetes».

El proyecto se posiciona como un entorno de desarrollo integrado (IDE) completo para Kubernetes. Además, está optimizado para trabajar con múltiples clústeres y un gran número de pods en ejecución (probado en 25,000 pods).
Características principales / capacidades de Lens:
- Aplicación autónoma que no requiere instalación de nada dentro del clúster (en realidad, para obtener todas las métricas será necesario Prometheus, pero se puede utilizar una instalación existente). La 'instalación principal' se realiza en una computadora personal con Linux, macOS o Windows.
- Gestión multiclúster (se soportan cientos de clústeres).
- Visualización del estado del clúster en tiempo real.
- Gráficos de uso de recursos y tendencias con historial basados en el Prometheus incorporado.
- Acceso a la línea de comandos de contenedores y en nodos del clúster.
- Soporte completo para Kubernetes RBAC.
Versión actual — desde el 16 de junio de 2020. La versión original fue creada en la empresa Kontena, y hasta hoy toda la propiedad intelectual ha sido transferida a una organización especial , llamada 'unión de entusiastas y tecnólogos de cloud native', que se encarga de 'preservar y asegurar la disponibilidad de software y productos Open Source de Kontena'.
Lens es el segundo proyecto más popular en GitHub en la categoría GUI para Kubernetes, 'perdiendo' solo frente al propio Kubernets Dashboard. Todas las demás soluciones Open Source que no son de la categoría CLI* son significativamente menos populares.
* Véase K9s en la sección de bonificación de la revisión.
3. Kubernetic
- ;
- ;
- (más de 200 estrellas en GitHub);
- Licencia: propietaria;
- En resumen: 'Gestión de clústeres hecha sencilla'.

Es una aplicación propietaria que se instala en una computadora personal (se soportan Linux, macOS, Windows). Sus autores prometen una completa sustitución de la utilidad de línea de comandos, y junto con ello, la ausencia de necesidad de recordar comandos e incluso un aumento de diez veces en la velocidad de trabajo.
Una de las características interesantes de la herramienta es el soporte integrado para gráficos de Helm, mientras que uno de sus inconvenientes es la falta de métricas de rendimiento de las aplicaciones.
Principales características de Kubernetic:
- Visualización conveniente del estado del clúster. Una pantalla para ver todos los objetos relacionados del clúster y sus dependencias; estado de disponibilidad rojo/verde para todos los objetos; modo de visualización del estado del clúster con actualización en tiempo real.
- Botones de acción rápida para eliminar y escalar aplicaciones.
- Soporte para trabajo multiclúster.
- Trabajo simple con espacios de nombres.
- Soporte para gráficos y repositorios de Helm (incluidos los privados). Instalación y gestión de gráficos en la interfaz web.
El costo actual del producto es un pago único de 30 euros por su uso por una persona para cualquier número de espacios de nombres y clústeres.
4. Kubevious
- ;
- ;
- (~500 estrellas en GitHub);
- Licencia: Apache 2.0
- En resumen: «Kubevious hace que los clústeres de Kubernetes, la configuración de aplicaciones y la visualización de su estado sean seguros y fáciles de entender».

La idea del proyecto es crear una herramienta diseñada para analizar y depurar las configuraciones de las aplicaciones desplegadas en un clúster. Los autores se centraron principalmente en implementar estas funciones, dejando los aspectos más generales para después.
Características y funciones principales de Kubevious:
- Visualización del clúster de una manera centrada en las aplicaciones: los objetos interrelacionados en la interfaz se agrupan en una jerarquía.
- Visualización clara de las dependencias en las configuraciones y las consecuencias en cascada de sus cambios.
- Visualización de errores de configuración del clúster: uso incorrecto de etiquetas, puertos omitidos, etc. (Por cierto, si te interesa esta función, presta atención a , del cual ya hemos .)
- Además del punto anterior, se puede detectar contenedores potencialmente peligrosos, es decir, aquellos que tienen privilegios excesivos (atributos
hostPID,hostNetwork,hostIPC, montajedocker.socky similares). - Sistema avanzado de búsqueda en el clúster (no solo por nombres de objetos, sino también por sus propiedades).
- Herramientas para la planificación de capacidades y optimización de recursos.
- «Máquina del tiempo» incorporada (capacidad para ver cambios de configuración de objetos que ocurrieron anteriormente).
- Gestión de RBAC a través de una tabla resumen interconectada de Roles, RoleBindings y ServiceAccounts.
- Funciona solo con un clúster.
El proyecto tiene una historia bastante corta (el primer lanzamiento fue el 11 de febrero de 2020) y parece haber entrado en un período de estabilización o desaceleración en su desarrollo. Si las versiones anteriores se lanzaban con frecuencia, la última versión ( del 15 de abril de 2020) se ha rezagado con respecto al ritmo inicial de desarrollo. Probablemente se deba al pequeño número de colaboradores: en el historial del repositorio solo hay 4, y todo el trabajo real lo realiza una sola persona.
5. Kubewise
- ;
- Licencia: propietaria (se convertirá en Open Source);
- En resumen: «Cliente multiplataforma sencillo para Kubernetes».

Nuevo producto de VMware, creado inicialmente durante un hackathon interno (en junio de 2019). Se instala en una computadora personal y funciona con (soportando Linux, macOS y Windows) y requiere kubectl de al menos v1.14.0.
Características principales de Kubewise:
- Interacción en la interfaz con las entidades de Kubernetes más utilizadas: nodos, espacios de nombres, etc.
- Soporte para múltiples archivos kubeconfig para diferentes clústeres.
- Terminal con capacidad para establecer variables de entorno.
KUBECONFIG. - Generación de archivos kubeconfig personalizados para el espacio de nombres especificado.
- Funciones de seguridad avanzadas (RBAC, contraseñas, cuentas de servicio).
Hasta ahora, el proyecto tiene solo una versión — la del 26 de noviembre de 2019. Aunque los autores planearon lanzarlo como Open Source de inmediato, no pudieron hacerlo debido a problemas internos (no relacionados con cuestiones técnicas). A partir de mayo de 2020, los autores están trabajando en la siguiente versión y al mismo tiempo deben iniciar el proceso de apertura del código.
6. OpenShift Console
- ;
- (~150 estrellas en GitHub);
- Лицензия: Apache 2.0;
- En resumen: 'UI para clústeres OpenShift'.

A pesar de que esta interfaz web es parte del distribuidor de OpenShift (ahí se instala mediante ), los autores la posibilidad de su instalación/uso también en instalaciones normales (vanilla) de Kubernetes.
OpenShift Console se ha desarrollado durante un largo tiempo, por lo que ha incorporado muchas funciones. Mencionemos las principales:
- Enfoque dividido en la interfaz: dos 'perspectivas' disponibles en la Console: para administradores y para desarrolladores. El modo Developer perspective agrupa objetos de forma más comprensible para los desarrolladores (por aplicaciones) y orienta la interfaz a resolver tareas típicas, como desplegar aplicaciones, seguir el estado de compilación/despliegue e incluso editar código a través de Eclipse Che.
- Gestión de cargas de trabajo, redes, almacenamiento, permisos de acceso.
- División lógica de las cargas de trabajo en proyectos y aplicaciones. En una de las últimas versiones — v4.3 — un especial Project dashboard, que muestra datos familiares (número y estados de despliegues, pods, etc.; consumo de recursos y otras métricas) en el contexto de proyectos.
- Visualización en tiempo real del estado del clúster y los cambios que han ocurrido (eventos); visualización de registros.
- Visualización de datos de monitoreo basados en Prometheus, Alertmanager y Grafana.
- Gestión de operadores, que se presentan en .
- Gestión de compilaciones que se ejecutan a través de Docker (del repositorio especificado con Dockerfile), o utilidades externas arbitrarias.
NB: No hemos incluido en la comparación otros distribuciones de Kubernetes (como la menos conocida ): aunque la interfaz gráfica puede ser muy avanzada, generalmente se ofrece como parte de un stack integrado de un gran sistema. Sin embargo, si considera que faltan algunas soluciones que funcionen completamente en una instalación vanilla de K8s, háganoslo saber en los comentarios.
Bono
1. Portainer en Kubernetes en beta
- ;
- (~100 estrellas en GitHub);
- Licencia: Zlib(?) (esa es la del proyecto principal).
Proyecto del equipo de Portainer, que desarrolló la popular interfaz homónima para trabajar con Docker. Dado que el proyecto está en etapa temprana de desarrollo (primera y única versión beta 16 de abril de 2020), no hemos evaluado sus funciones. Sin embargo, puede que le interese a muchos: si es así, manténgase al tanto de su desarrollo.
2. IcePanel
- ;
- Licencia: propietaria;
- En resumen: "Editor visual de Kubernetes".

Esta joven aplicación de escritorio está diseñada para visualizar recursos de Kubernetes en tiempo real y gestionarlos con una interfaz sencilla en el estilo de arrastrar y soltar. Actualmente, se soportan los siguientes objetos: Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap y Secret. Pronto se promete añadir soporte para Helm. Las principales desventajas son la falta de apertura del código (se espera que se ) y la falta de soporte para Linux (por ahora, solo están disponibles versiones para Windows y macOS, aunque esto también es probablemente solo cuestión de tiempo).
3. k9s
- ;
- ;
- (~7700 estrellas en GitHub);
- Лицензия: Apache 2.0;
- En resumen: "Interfaz de consola para Kubernetes que permite gestionar el clúster de manera estilosa".

La herramienta se incluyó solo en la parte de bonificación de la revisión porque ofrece una GUI de consola. Sin embargo, los autores literalmente aprovecharon al máximo el terminal, ofreciendo no solo una interfaz cómoda, sino también 6 temas predefinidos, un sistema avanzado de combinaciones de teclas y alias para comandos. Su enfoque exhaustivo no se limitó a la apariencia: las capacidades de k9s son impresionantes: gestión de recursos, visualización del estado del clúster, salida de recursos en una representación jerárquica con dependencias, visualización de registros, soporte para RBAC, ampliación de capacidades a través de complementos... Todo esto ha agradado a la amplia comunidad de K8s: la cantidad de estrellas en GitHub del proyecto es casi comparable a la del panel oficial de Kubernetes.
4. Paneles de control de aplicaciones
Y al final de la revisión, una mini-categoría separada. Aquí se incluyen dos interfaces web, diseñadas no para la gestión integral de clústeres de Kubernetes, sino para gestionar lo que se despliega en ellos.
Como es conocido, uno de los medios más maduros y extendidos para el despliegue de aplicaciones complejas en Kubernetes es Helm. A lo largo de su existencia, se han acumulado numerosos paquetes (charts de Helm) para un despliegue sencillo Por lo tanto, es bastante lógico que aparezcan los correspondientes medios visuales que permiten gestionar el ciclo de vida de los charts.
4.1. Monocular
- (1300+ estrellas en GitHub);
- Лицензия: Apache 2.0;
- En resumen: "Una aplicación web para buscar y descubrir charts de Helm en múltiples repositorios. Sirve como base para el proyecto Helm hub."

Este desarrollo de los creadores de Helm se instala en Kubernetes y funciona dentro de un solo clúster, cumpliendo con la tarea asignada. Sin embargo, actualmente el proyecto apenas se desarrolla. Su objetivo principal es mantener la existencia de Helm Hub. Para otras necesidades, los autores recomiendan Kubeapps (ver más adelante) o Red Hat Automation Broker (parte de OpenShift, pero que también ya no se desarrolla).
4.2. Kubeapps
- ;
- ;
- (~2100 estrellas en GitHub);
- Licencia: Apache 2.0
- En resumen: "Tu panel de aplicaciones para Kubernetes".

Producto de Bitnami, que también se instala en el clúster de Kubernetes, pero que se diferencia de Monocular por su enfoque inicial en trabajar con repositorios privados.
Funciones clave y características de Kubeapps:
- Visualización e instalación de charts de Helm de repositorios.
- Verificación, actualización y eliminación de aplicaciones basadas en Helm que están instaladas en el clúster.
- Soporte para trabajar con repositorios privados y personalizados de gráficos (compatible con ChartMuseum y JFrog Artifactory).
- Visualización y trabajo con servicios externos: desde el Catálogo de Servicios y los Brokers de Servicios.
- Publicación de aplicaciones instaladas mediante el mecanismo de Vínculos del Catálogo de Servicios.
- Soporte para autenticación y separación de derechos mediante RBAC.
Tabla final
A continuación se presenta una tabla resumen en la que hemos intentado condensar y agregar las principales características de las interfaces visuales existentes para facilitar la comparación:
(La versión en línea de la tabla .)
Conclusión
Las interfaces gráficas para Kubernetes son un nicho bastante específico y joven. Sin embargo, está en un desarrollo bastante activo: ya se pueden encontrar soluciones tanto maduras como muy nuevas, que aún tienen margen para crecer. Están orientadas a diferentes opciones de uso, ofreciendo funciones y apariencias prácticamente para todos los gustos. Esperamos que esta revisión ayude a seleccionar la herramienta que mejor satisfaga las necesidades actuales.
P.D.
Gracias por los datos de OpenShift Console para la tabla de comparación!
También puedes leer en nuestro blog:
- «»;
- «»;
- «»;
- «».
Fuente: habr.com
