Skip to main content

Dashboard UI

image.png

Deploy and Access the Kubernetes Dashboard | Kubernetes

Kubernetes Dashboard es una interfaz de usuario de Kubernetes basada en la web. Se puede usar para implementar aplicaciones en contenedores en un clúster de Kubernetes, solucionar problemas de aplicación en contenedores y administrar los recursos del clúster.

Desplegando Dashboard UI

Actualmente, Kubernetes Dashboard solo admite la instalación basada en Helm, ya que es más rápido y nos brinda un mejor control sobre todas las dependencias que requiere Dashboard para ejecutarse.

# Añade el repositorio de kubernetes-dashboard a Helm
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm repo update
# Despliega una versión de Helm Release llamada "kubernetes-dashboard"
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
# uninstall/delete kubernetes-dashboard
helm delete kubernetes-dashboard -n kubernetes-dashboard

Acceder al panel de control de Kubernetes

Temporal

Para acceder al panel de control de Kubernetes desde la red externa, deberá exponerlo mediante el método de reenvío de puertos. Ejecute el siguiente comando para exponer el panel de control de Kubernetes:

kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard-kong-proxy 8443:443 --address 0.0.0.0 &

Este comando abre el puerto 8443 localmente en todas las interfaces de tu máquina (0.0.0.0) y lo redirige hacia el puerto 443 del service kubernetes-dashboard-kong-proxy

Permanente

Diferencia clave:

  • kubectl port-forward es temporal y local, solo funciona mientras la terminal está abierta y solo en la máquina donde ejecutas el comando.

  • NodePort es un recurso de Kubernetes, que expone el servicio en todos los nodos en un puerto estático entre 30000-32767.

🎯Convertir servicio ClusterIP a NodePort

kubectl edit svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard

Cambia type: ClusterIP por type: NodePort y agrega nodePort: 30000

spec:
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30000 # añade este línea
      
  type: NodePort # cambia el tipo

Ahora, accediendo al panel de control de Kubernetes mediante la URL https://server-ip:8443 o https://server-ip:30000 según hayas usado un método u otro. Se te solicitará que ingreses un token para iniciar sesión. Por lo tanto, necesitaremos crear una cuenta de servicio, un enlace de rol de clúster y un secreto, y luego obtener el token del secreto.

Creando usuario

dashboard/docs/user/access-control/creating-sample-user.md at master · kubernetes/dashboard · GitHub

vi dashboard-adminuser.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: "admin-user"
type: kubernetes.io/service-account-token
kubectl apply -f dashboard-adminuser.yaml

Obtener el token de acceso

kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d