Dashboard UI

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.
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.
Helm tiene un script de instalación que automáticamente descargará la última versión de Helm y la instalará localmente.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
Desplegando Dashboard UI
# añade el repositorio de kubernetes-dashboard
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# 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-forwardes 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: 443
nodePort: 30000 # añade este línea
protocol: TCP
type: NodePort # cambia el tipo
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