Kubernetes,  QNAP

Kubernetes. k0s – kubernetes-dashboard: alternativa gráfica a kubectl

Kubernetes Dashboard es una interfaz gráfica de usuario que proporciona una forma de visualizar y administrar clústeres de Kubernetes. Permite a los usuarios interactuar con su clúster de Kubernetes a través de una interfaz web, lo que facilita la supervisión y administración de aplicaciones desplegadas en el clúster.

Después de este resumen de libro, ¿que es kubernetes-dashboard? Pues simplemente una manita de pulimento para el omnipresente kubectl. Sin entrar en detalle de las bondades de la herramienta os detallo a continuación como lo he instalado.

He declarado toda la configuración en dos únicos archivos:

  • Por un lado el archivo ingress.yaml (tela que original) con la declaración del ingress que publica el servicio.
  • Por otro lado el archivo insecure-v2.7.0.yaml (tampoco me he complicado mucho con el nombre) con el grueso de la configuración. Esta basado en el oficial, pero cambiando todo lo relativo a ssl y accesos al cluster.

ingress.yaml

Es un ingress como los que he configurado hasta ahora con la salvedad de que he tenido que configurar en annotations: la redirección para que las peticiones a /kubernetes-dashboard se redirijan a /.

insecure-v2.7.0.yaml

Basado en el oficial he modificado el deploy para que la imagen de kubernetes-dashboard se levante sin SSL delegando la seguridad en el propio Ingress. He quitado toda la información relativa a rbac.authorization.k8s.io simplificándola a la creación de:

  • Una ServiceAccount sa-admin-user.
  • Un ClusterRoleBinding que asocia el ClusterRole cluster-admin a la ServiceAccount sa-admin-user.
  • Un Secret tipo kubernetes.io/service-account-token que permite el acceso a la consola de kubernetes-dashboard.

Acceso a la consola

Una vez aplicado con kubectl apply -f simplemente pones en el navegador tudominio.com/kubernetes-dashboard/ y accedes.

En mi caso he configurado un Token que puedes obtener con:

Y si todo ha ido de cine pues ya puedes entrar a administrar tu cluster de una manera diferente a kubectl.