Kubernetes dashboard
Existen diversas consolas administrativas para Kubernetes, pero Kubernetes Dashboard es la oficial y una de las más completas.
Personalmente no soy muy fan de esta consola, pero por muy poco espacio y requerimientos tienes una consola totalmente operativa, así que nunca está de más tenerla a mano.
Despliegue
Más detalles en Artifact Hub.
Añadimos el repositorio.
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm repo update
Normalmente instalo los Helm indicando los campos que quiero cambiar directamente, pero las anotaciones de Ingress me parecen ilegibles, con lo que queda más fácil de entender con un fichero para ello.
vi kubernetes-dashboard-values.yaml
Activamos Ingress y lo configuramos acorde al de intranet
y redirigiendo a HTTPS por defecto
ingress:
enabled: true
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
className: "nginx-intranet"
hosts:
- dashboard.domain.intranet
El hosts
debe apuntar a un dominio aceptado por el certificado desplegado y debe existir en el DNS.
Desplegamos el servicio.
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \
-f kubernetes-dashboard-values.yaml \
--namespace kubernetes-dashboard-system --create-namespace
Si vamos a la web acorde al dominio nos mostrará la pantalla para iniciar sesión.
Usuario
Para poder acceder vamos a crear un nuevo usuario que tendrá permisos sobre el clúster.
kubectl create serviceaccount dashboard-admin-sa -n=kubernetes-dashboard-system
kubectl create clusterrolebinding dashboard-admin-sa \
--clusterrole=cluster-admin \
--serviceaccount=kubernetes-dashboard-system:dashboard-admin-sa \
-n=kubernetes-dashboard-system
El acceso se realiza mediante tokens que deben ser generados. Por defecto estos duran 1h
kubectl -n kubernetes-dashboard-system create token dashboard-admin-sa
Este nos devolverá un token en formato jwt
que deberemos indicar en la consola para poder acceder.