Dashboards de Kubernetes 3

Tras un primer artículo (Dashboards de Kubernetes 1) sobre Dashboards de Kubernetes generalistas, y un segundo (Dashboards de Kubernetes 2) centrado en dashboards específicos.

Vamos a analizar aquellas herramientas que aunque no son exactamente dashboards integrados en kubernetes si que van a funcionar como clientes externos que dan acceso a la plataforma.

Dashboards de Kubernetes

Octant

Está herramienta opensource de VMware (Con más de 3100 estrellas en github) y dentro del marco de herramientas VMware-Tanzu, está orientada a servir de herramienta explicativa de como está configurado y diseñado un entorno Kubernetes.

La herramienta funciona como un servicio web, por lo que puede ponerse como un servicio o ejecutarse en la máquina local con la condición de que se disponga de un .kube/config configurado con un usuario con permisos suficientes. Tanto en octant como en el resto de entornos probados hemos usado el usuario admin.

Como se instala

Nos descargamos el .deb o el .rpm de https://github.com/vmware-tanzu/octant/releases y lo instalamos con las herramientas del sistema operativo, si tenemos el .kube/config para acceder al cluster a revisar basta con ejecutar octant desde la linea de comandos.

Características

Dispone de un limitado conjunto de los objetos de Kubernetes, suficiente para los objetivos de dicha aplicación, pero incompleto para un gestor de Kubernetes.

En el siguiente gráfico podemos ver la lista de eventos que se muestra como un elemento más del menú de objetos.

Dashboards de Kubernetes 3 1

Pese a la limitación anterior y que no permite la modificación de los elementos, si dispone en cada elemento de una pestaña “Resource Viewer” donde se nos mostrará el estado del objeto examinado y de todos aquellos relacionados, algo que se ella a faltar en los gestor que hemos visto anteriormente y que nos permite discernir de un solo vistazo donde tenemos un problema con un servicio, como puede ser en el siguiente ejemplo:

Dashboards de Kubernetes 3 2

Otro ejemplo más de Resource Viewer

Dashboards de Kubernetes 3 3

Facilidad de uso

Cumple sin problemas con su capacidad de herramienta de demostración, pero a la espera de que su diseño basado en plugins de frutos (extensiones que nos permita una gestión de Kubernetes), no es una herramienta que salga de su planteamiento original.

Kontena

Aplicación de escritorio no opensource, actualmente tiene versión gratuita. Sin embargo la versión que vamos a tratar es bastante completa.

Dashboards de Kubernetes 3 4

Como se instala

Directamente desde la web del proyecto podemos descargar un archivo .appimage que es un autocontenido que puede ejecutarse en cualquier plataforma (es muy posible que se necesite instalar ciertas librerías para la ejecución del interfaz). La versión aquí probada es la 2.6 (https://kontena-lens-desktop.s3-eu-west-1.amazonaws.com/Lens-2.6.0.AppImage).

La aplicación funciona como si fuese de escritorio (es tipo Electron).

Como requisito en el cluster se recomienda desplegar Prometheus, para disponer de estadísticas e información sobre los nodos.

Características

La aplicación pide un registro (gratuito) y en la interfaz principal le indicaremos el archivo de configuración para el acceso a nuestro cluster, como podemos ver, es capaz de acceder a múltiples clusters.

En este punto no hemos desplegado prometheus y podemos ver que no nos da información sobre el estado de los nodos.

Dashboards de Kubernetes 3 5

En la parte inferior de la aplicación podemos ver pestañas de las operaciones que podemos realizar en el cluster, vemos que se pueden abrir múltiples consolas en los nodos para la ejecución de comandos.

Dashboards de Kubernetes 3 6

También podemos ver la descripción del nodo junto con la descripción yaml del mismo junto con las pestañas ya abiertas.

Dashboards de Kubernetes 3 7

En el área de procesos podemos ver la información de lo que está ejecutando en cada espacio de nombre y los eventos relacionados con el mismo.

Dashboards de Kubernetes 3 8

Los despliegues llevan su descripción y un además de los iconos habituales (editar, eliminar) vemos el icono para escalar.

Dashboards de Kubernetes 3 9

En la sección configuración podemos ver los objetos que se utilizan para que los servicios dispongan de información de configuración, por ejemplo tenemos los secrets, con un interesante botón para mostralos.

Dashboards de Kubernetes 3 10

Listado de servicio con la misma información que obtendríamos con un kubectl get services -o wide:

Dashboards de Kubernetes 3 11

Mismo caso para peticiones de volúmenes persistentes.

Dashboards de Kubernetes 3 12

A partir de activar prometheus (la propia herramienta dispone de una opción para instalarlo y para configurar RBAC para que los usuarios del cluster solo puedan ver sus propios recursos) nos comienza a mostrar información sobre los objetos Kubernetes, por ejemplo el cluster:

Dashboards de Kubernetes 3 13

O información sobre uno de los nodos (CPU):

Dashboards de Kubernetes 3 14

Memoria:

Dashboards de Kubernetes 3 15

O el espacio utilizado por una petición de volumen persistente.

Dashboards de Kubernetes 3 16

Facilidad de uso

Es de todos los Dashboards y Herramientas analizadas el más completo de todos, siendo de las herramientas más recomendables. Se le hecha a faltar una herramienta tipo “Resource Viewer” como la utilizada por Octant para obtener todas las dependencias.

Kubernetic

Aplicación de escritorio no opensource, actualmente en beta y gratuita (hasta que deje de ser beta). Documentación en github (https://github.com/harbur/kubernetic).

Está herramienta plantea una filosofía de uso parecido al de la anterior herramienta, con detalles como el de funcionar como herramienta de escritorio, ser multi cluster o la organización de elementos en la pantalla.

Como se instala

Descargar desde https://kubernetic.s3.amazonaws.com/Kubernetic-2.4.1.tar.gz y descomprimir. Es una aplicación de escritorio.

Características

Se lanza con kubernetic y requiere del .kube/config para el acceso a los recursos (se pueden configurar más de uno lo que permite acceder a diversos clusters).

Podemos ver el interfaz de la aplicación, muy limpio, que muestra el número de elementos más importantes en cada espacio de nombres.

Dashboards de Kubernetes 3 17

La información de los nodos incluye los eventos

Dashboards de Kubernetes 3 18

El listado de pods es el estándar que se puede obtener con klubectl

Dashboards de Kubernetes 3 19

Al seleccionar un pod podemos ver los registros del mismo en una de las pestañas:

Dashboards de Kubernetes 3 20

Es interesante ver como ordena elementos en el estado, no llega al nivel gráfico de octant, pero si nos permite de un vistazo identificar parte de las relaciones entre objetos.

Dashboards de Kubernetes 3 21

Todos los elementos tienen editar y eliminar, algunos como el caso de los deployment tienen opciones especiales, en este caso escalar.

Dashboards de Kubernetes 3 22

No da opción a ocultar los secrets, lo cual sería recomendable para una aplicación de este tipo.

Dashboards de Kubernetes 3 23

Por último aportar que los formularios de creación de objetos es bastante completo y se agradece en comparación con el “edita yaml”.

Dashboards de Kubernetes 3 24

Facilidad de uso

Es una solución interesante que aunque no llega al nivel de Kontena Lens si muestra maneras. El hecho de que no se identifique si va a ser de pago y su coste es además un lastre para dicha solución.

Esperaremos a que siga el planteamiento de Kontena Lens y saque una solución free que integre estadísticas (prometheus o cualquier servicio de métricas) para la versión definitiva.

Ktop

Ktop es una interesante aplicación para mostrar el estado de un cluster Kubernetes, no requiere de elementos especiales ya que funciona directamente en consola.

Como se instala

Se descarga el binario directamente de https://github.com/ynqa/ktop/releases, requiere de un .kube/config para el acceso al cluster.

Características

Aunque tiene un planteamiento interesante (evitar el uso de herramientas), es un proyecto aún muy embrionario y con un desarrollo lento.

La prueba se realiza con una serie de contenedores a los cuales se pone el 100% de CPU, el resultado obtenido es el siguiente:

Facilidad de uso

Aunque el proyecto es interesante, queda lejos de un top, no solo por que la herramienta requiere ser pulida, sino además por que la respuesta a los eventos es lenta, aunque no es problema de la herramienta sino del recolector de métricas del que obtiene la información.

Esta herramienta evidencia lo complicado que es en Kubernetes la existencia de una monitorización en tiempo real.

Kubernator

Kubernator es otro de esos proyectos interesantes, pero aunque tiene 430 estrellas en github, no está mantenido.

Como se instala

Creamos un espacio de nombres para instalar kubernator:

kubectl create namespace kubernator --dry-run -o yaml | kubectl apply -f -

Creamos una cuenta de sistema con capacidades de administrador

kubectl create -n kubernator serviceaccount kubernator-sa --dry-run -o yaml | kubectl apply -f -
kubectl create clusterrolebinding kubernator-sa --clusterrole=cluster-admin --serviceaccount=kubernator:kubernator-sa --dry-run -o yaml | kubectl apply -f -

Se realiza la ejecución de un despliegue junto con un servicio para su publicación

cat <<EOF |kubectl apply -n kubernator -f -
 ---
apiVersion: v1
kind: Service
metadata:
  name: kubernator
  namespace: kubernator
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: kubernator
  type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: kubernator
  name: kubernator
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kubernator
  template:
    metadata:
      labels:
        app: kubernator
    spec:
      serviceAccountName: kubernator-sa
      containers:
      - image: smpio/kubernator
        name: kubernator
        ports:
        - containerPort: 80

Características

El primer problema que nos encontramos es que no soporta el acceso ni a través de LoadBalancer ni con port-forward:

Dashboards de Kubernetes 3 25

Y aún entrando por kubectl proxy en las versiones actuales de Kubernetes da problemas:

Dashboards de Kubernetes 3 26

Por otro lado tiene un entorno básico de objetos

Dashboards de Kubernetes 3 27

Que se agrega por pestañas

Dashboards de Kubernetes 3 28

Sin embargo lo que realmente hace interesante la aplicación es un entorno gráfico que describe las relaciones de permisos y que no he encontrado en ninguna otra aplicación.

Dashboards de Kubernetes 3 29

Facilidad de uso

La aplicación ha quedado obsoleta, pero el interfaz de relaciones entre permisos debería ser una herramienta que cualquier dashboard con intención de mejoras debe plantearse, así como herramientas tipo “Resource Viewer” al estilo de la utilizada por Octant.

Volver arriba