⌂ Home

Kubernetes Dashboard

Legacy reference for the open-source Kubernetes Dashboard. The upstream project is archived; for the current UI path in this repository, use Headlamp instead.

What This Dashboard Is

Kubernetes Dashboard was an open-source, web-based UI for Kubernetes clusters. It is kept here as legacy context. For the current replacement path, see k8s/docs/workloads/k8s-ui-alternatives.md and the Headlamp page k8s-ui-headlamp.html in this HTML folder.

Type
Open Source
It is the community Kubernetes Dashboard project, not a cloud-provider console.
Best For
Learning + Demo
Great for exploration, showing resources, and guided walkthroughs.
Daily Ops
Limited
Useful, but not usually the primary interface for continuous operations.
Security Note
RBAC Matters
Access should be controlled carefully, especially if cluster-admin is used.

What We Do vs What We Do Not Do

What we do

Demo, explain, and explore

  • Install the Dashboard to understand the architecture and access pattern
  • Use it to visualize namespaces, Pods, Deployments, Services, and metrics
  • Show login with a token and browser access with port-forward
  • Use it as a legacy visual reference for older cluster workflows
What we do not do

Treat it as the main operating interface

  • We do not rely on it for continuous day-to-day cluster management
  • We do not equate it with managed cloud dashboards in EKS, AKS, or GKE
  • We do not casually grant broad admin access in production
  • We do not replace `kubectl`, automation, GitOps, or CI/CD with it

Open Source Dashboard vs Cloud-Managed GUI

This lab

Kubernetes Dashboard

Installed inside the cluster, usually exposed temporarily with port-forward or an ingress, and accessed using Kubernetes credentials such as a ServiceAccount token.

Cloud platforms

Provider console views

Cloud GUIs are platform products with their own integrations, identity controls, billing context, and managed-cluster views. They are related, but not the same product.

Practical takeaway

Use the right tool

Use the Dashboard only as legacy context. Use CLI, automation, and platform-native tooling for repeatable operational work.

Installation Flow

Click a step to understand the install sequence and what gets created in the cluster.

Step 1
Apply Dashboard Manifest
Deploy the open-source Dashboard components into `kubernetes-dashboard`.
->
Step 2
Namespace + RBAC + Deployments
Kubernetes creates namespace, service accounts, roles, bindings, services, and deployments.
->
Step 3
Dashboard Pods Start
Dashboard and metrics scraper Pods come up in the namespace.
->
Step 4
Create Access Identity
Create `admin-user` ServiceAccount and bind it to a role for login.
->
Step 5
Generate Token
Create a token that the browser login screen will accept.
Install path: dashboard manifest -> resources created -> Pods running -> ServiceAccount -> token

Apply Dashboard Manifest

The lab installs the open-source Kubernetes Dashboard using the recommended upstream manifest. This creates the main components in the `kubernetes-dashboard` namespace.

Access Flow

This setup uses temporary local access, which keeps the older workflow contained and easy to test.

Demo Access
Step 1 of 4
Local endpoint: https://localhost:8443
Why this access pattern: Temporary, easy-to-teach, and does not require exposing the Dashboard publicly.
Follow the local access path used in the lab.

YAML & Commands

These are the key commands and manifest snippets that power the lab.

Install the open-source Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

kubectl get all -n kubernetes-dashboard
kubectl get pods -n kubernetes-dashboard -w
kubectl logs -n kubernetes-dashboard deployment/kubernetes-dashboard
Create the admin user from k8s-dashboard.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
kubectl apply -f k8s-dashboard.yaml
Create token and port-forward
kubectl create token admin-user -n kubernetes-dashboard

kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8443:443
https://localhost:8443
Tutorial variant using Helm / kong-proxy
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

kubectl -n kubernetes-dashboard create token admin-user
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8444:443

How To Think About This Tool

Use it as legacy context

It helps when reviewing older Dashboard-based workflows for Pods, Deployments, namespaces, logs, and metrics.

Legacy note

The upstream Kubernetes Dashboard repository is archived and recommends Headlamp instead. Use this page for older workflow context, and use `k8s-ui-headlamp.html` for the current UI setup path.

Keep access temporary

Port-forwarding plus a token avoids exposing the Dashboard broadly.

Avoid broad admin access casually

The sample `cluster-admin` binding is easy for labs, but production setups should prefer least-privilege roles.

What You Typically Show in a Demo

Cluster overview

Show namespaces, workload counts, and the overall Dashboard landing page.

Workload drill-down

Open a Deployment or Pod, inspect events, logs, and resource details.

Simple action

Scale a workload or browse a Service to connect the GUI to the underlying Kubernetes objects.