Gestión del Kubernetes Dashboard

KubernetesKubernetesIntermediate
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Kubernetes Dashboard es una interfaz de usuario basada en web que simplifica la gestión y el monitoreo de clústeres de Kubernetes. Proporciona una forma intuitiva de desplegar y gestionar aplicaciones, así como de ver y analizar los recursos del clúster. Este laboratorio (lab) te guiará a través del proceso de desplegar y acceder a Kubernetes Dashboard.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes/BasicsGroup -.-> kubernetes/dashboard("Dashboard") kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") subgraph Lab Skills kubernetes/dashboard -.-> lab-15042{{"Gestión del Kubernetes Dashboard"}} kubernetes/initialization -.-> lab-15042{{"Gestión del Kubernetes Dashboard"}} kubernetes/get -.-> lab-15042{{"Gestión del Kubernetes Dashboard"}} kubernetes/create -.-> lab-15042{{"Gestión del Kubernetes Dashboard"}} kubernetes/apply -.-> lab-15042{{"Gestión del Kubernetes Dashboard"}} end

Iniciar el clúster de Kubernetes

Antes de desplegar el Kubernetes Dashboard, asegúrate de que tu clúster esté en funcionamiento. Usaremos Minikube para este laboratorio (lab).

  1. Abre una terminal y navega hasta el directorio del proyecto:

    cd ~/project
  2. Inicia el clúster de Minikube:

    minikube start

    Minikube crea un clúster local de Kubernetes, lo que facilita probar características como el Dashboard. La configuración puede tomar unos minutos.

  3. Verifica que Minikube esté en funcionamiento comprobando su estado:

    minikube status

    Si el clúster no está en funcionamiento, reinícialo con minikube delete seguido de minikube start.

Desplegar el Kubernetes Dashboard

El Kubernetes Dashboard no está incluido por defecto en el clúster. Desplegalo utilizando el archivo YAML de despliegue oficial.

  1. Ejecuta el siguiente comando para desplegar el Dashboard:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

    Este comando crea todos los recursos necesarios para el Dashboard, incluyendo un Despliegue (Deployment), un Servicio (Service) y configuraciones de Control de Acceso Basado en Roles (Role-Based Access Control, RBAC).

  2. Verifica que el Dashboard esté en funcionamiento:

    kubectl get pods -n kubernetes-dashboard

    Busca un pod con el nombre kubernetes-dashboard y asegúrate de que su estado sea Running (En ejecución).

  3. Verifica el espacio de nombres (namespace) para el Dashboard:

    kubectl get ns | grep kubernetes-dashboard

    El espacio de nombres kubernetes-dashboard debe existir.

Crear una cuenta de servicio y una asignación de roles (Role Binding)

Por defecto, el Kubernetes Dashboard restringe el acceso. Para iniciar sesión con privilegios de administrador, necesitas crear una cuenta de servicio y vincularla a un rol de clúster.

  1. Crea un archivo llamado dashboard-admin.yaml:

    nano ~/project/dashboard-admin.yaml
  2. Agrega el siguiente contenido al archivo:

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

Este archivo define una cuenta de servicio admin-user y le otorga privilegios de administrador en todo el clúster.

Presiona Ctrl+X, Y, luego Enter para guardar el archivo.

  1. Aplica la configuración:

    kubectl apply -f dashboard-admin.yaml
  2. Verifica la cuenta de servicio y la asignación de roles:

    kubectl get sa -n kubernetes-dashboard

    Deberías ver la cuenta de servicio admin-user en la lista.

    kubectl get clusterrolebinding

    Deberías ver la asignación de roles de clúster admin-user en la lista.

Acceder al Kubernetes Dashboard

Ahora que el Dashboard está en funcionamiento y se han configurado los permisos, accede a él a través de un navegador.

  1. Genera un token de inicio de sesión:

    kubectl -n kubernetes-dashboard create token admin-user

    Copia el token generado. Este se utilizará para iniciar sesión.

  2. Edita el Servicio (Service) del Dashboard para exponerlo en un NodePort:

    kubectl edit service -n kubernetes-dashboard kubernetes-dashboard

    Encuentra el campo type bajo spec y cambia su valor a NodePort. Guarda y sale.

Editing Dashboard Service NodePort
  1. Encuentra el NodePort asignado al Dashboard:

    kubectl get service -n kubernetes-dashboard
    NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
    dashboard-metrics-scraper   ClusterIP   10.104.164.172   <none>        8000/TCP        20m
    kubernetes-dashboard        NodePort    10.108.222.153   <none>        443:30587/TCP   20m

    Anota el número de puerto que aparece en la columna PORT(S) (por ejemplo, 30587). Este es el puerto que utilizarás para acceder al Dashboard.

  2. Obtén la dirección IP del nodo:

    kubectl get node -o wide
    NAME       STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    minikube   Ready    control-plane   35m   v1.26.1   192.168.58.2   <none>        Ubuntu 20.04.5 LTS   5.15.0-56-generic   docker://20.10.23

    La columna INTERNAL-IP proporciona la dirección IP del nodo.

  3. Abre el navegador Firefox en el escritorio y navega a la siguiente URL:

    https://<node-ip>:<node-port>

    Reemplaza <node-ip> con la dirección IP del nodo y <node-port> con el puerto del Paso 3.

Firefox browser Kubernetes Dashboard
  1. Si se muestra una advertencia de seguridad, continúa seleccionando "Avanzado" y luego "Aceptar el riesgo y continuar".
Security warning proceed screen
  1. En la página de inicio de sesión, selecciona la opción Token, pega (haz clic derecho) el token del Paso 1 y haz clic en "Iniciar sesión".
Kubernetes Dashboard login page

Ahora deberías haber iniciado sesión en el Kubernetes Dashboard, donde puedes explorar los recursos del clúster y gestionar las cargas de trabajo.

Kubernetes Dashboard interface

Resumen

En este laboratorio (lab), aprendiste cómo:

  1. Desplegar el Kubernetes Dashboard en un clúster local.
  2. Crear una cuenta de servicio y vincularla a un rol de clúster para acceder con privilegios de administrador.
  3. Acceder al Dashboard a través de un navegador utilizando un servicio NodePort.

Con el Kubernetes Dashboard, puedes gestionar aplicaciones visualmente, monitorear recursos y explorar la configuración del clúster. Esta herramienta simplifica las operaciones de Kubernetes, especialmente para los principiantes que están pasando de flujos de trabajo basados en la línea de comandos. ¡Sigue explorando sus características para aprovechar al máximo tu entorno de Kubernetes!