En el sexto capítulo de esta serie vamos a ver cómo instalar en nuestro cluster el Kubernetes Dashboard.
Kubernetes Dashboard es una interfaz web para gestionar un cluster. Desde esta interfaz podremos desplegar aplicaciones así como gestionar otros recursos del cluster como Deployments, Jobs, etc.

Existen otras muchas interfaces para Kubernetes tanto open source como comerciales pero Dashboard es la oficial y es suficientemente potente y versátil para nuestras necesidades.
Instalación
La instalación la haremos utilizando Helm que ya vimos como instalarlo y un uso básico en el anterior post de la serie.
En primer lugar tenemos que añadir el repositorio que contiene este chart:
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
Y desplegamos (o actualizamos) Kubernetes Dashboard en un nuevo namespace llamado kubernetes-dashboard.
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
El resultado de la ejecución será algo similar a este mensaje:

Para probar el despliegue podemos hacer uso de las instrucciones para crear un proxy usando kubectl. Como pretendemos tenerlo siempre desplegado usaremos un LoadBalancer que hemos creado previamente.
Creación de un servicio para el Dashboard
Utilizaremos la siguiente definición para crear un LoadBalancer para acceder a nuestro Kubernetes Dashboard:
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard-loadbalancer
namespace: kubernetes-dashboard # namespace:cluster
labels:
app: kubernetes-dashboard-loadbalancer
spec:
ports:
- name: dashboard
port: 443
protocol: TCP
targetPort: 8443
selector:
app.kubernetes.io/component: app
app.kubernetes.io/instance: kubernetes-dashboard
app.kubernetes.io/name: kong
type: LoadBalancer
Consultaremos la IP asignada al dashboard:

Accederemos a la IP asignada al LoadBalancer y tendríamos que ver los siguiente:

El servicio utiliza un certificado autogenerado que tendremos que aceptar.

Creación del usuario y token
Para acceder al dashboard necesitaremos un usuario previamente creado que accederá con un token. Las instrucciones a seguir veremos los ficheros con la configuración a aplicar:
kubectl apply -f admin.yml -f auth.yml -f long.yml
Y finalmente volcamos la contraseña ofuscada en base64 para obtener el token que deberemos utilizar en la autenticación
kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath="{.data.token}" | base64 -d
Copiamos el token y lo pegamos en el login:

Y si todo va bien accederemos finalmente a la aplicación:

Comments