Kubernetes Dashboard
The official web UI for Kubernetes. Manage workloads, inspect pod logs, scale Deployments, and troubleshoot your cluster — all from a browser with no additional tooling.
What is Kubernetes Dashboard?
Kubernetes Dashboard is the official general-purpose web UI for Kubernetes clusters, maintained by the Kubernetes project under the kubernetes/dashboard GitHub repository. It runs as a Deployment inside your cluster and provides a visual interface for every aspect of cluster state: Deployments, ReplicaSets, StatefulSets, DaemonSets, Jobs, CronJobs, Pods, Services, Ingresses, ConfigMaps, Secrets, PersistentVolumes, Nodes, and Namespaces.
Beyond read-only inspection, the Dashboard supports full CRUD operations — you can create resources by pasting YAML, edit live manifests inline, delete objects, scale Deployments up or down, trigger rolling restarts, view streaming pod logs, and exec into container shells. When paired with Metrics Server it also shows real-time CPU and memory utilization graphs for nodes and pods.
Installation via kubectl apply
Deploy the Dashboard using the official recommended manifest:
# Deploy Kubernetes Dashboard (check GitHub for latest version tag) kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v3.0.0/aio/deploy/recommended.yaml # Verify pods are running in the kubernetes-dashboard namespace kubectl get pods -n kubernetes-dashboard # Expected output: # NAME READY STATUS RESTARTS # dashboard-metrics-scraper-7b68d5954d-xkz2r 1/1 Running 0 # kubernetes-dashboard-6b8958bdf5-kwxvf 1/1 Running 0
Accessing the Dashboard via kubectl proxy
The safest way to access the Dashboard is through kubectl proxy, which creates an encrypted tunnel to the API server without exposing any ports:
# Start the proxy (runs in foreground, Ctrl+C to stop) kubectl proxy # Access the Dashboard at: # http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Creating an Admin Service Account & Token
The Dashboard requires a bearer token for authentication. Create a service account with cluster-admin access:
# 1. Create ServiceAccount
kubectl create serviceaccount admin-user -n kubernetes-dashboard
# 2. Bind to cluster-admin ClusterRole
kubectl create clusterrolebinding admin-user \
--clusterrole=cluster-admin \
--serviceaccount=kubernetes-dashboard:admin-user
# 3. Generate a token (Kubernetes 1.24+)
kubectl create token admin-user -n kubernetes-dashboard
# For a long-lived token, create a Secret:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: admin-user-secret
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token
EOF
# Retrieve the token value
kubectl get secret admin-user-secret -n kubernetes-dashboard \
-o jsonpath='{.data.token}' | base64 -d Managing Workloads from the Dashboard UI
Once logged in, the left sidebar gives you access to all resource types. Key workflows:
- Deployments — view replica counts, image versions, rollout status; click "Scale" to change replicas instantly
- Pod logs — click any Pod → Logs tab for streaming stdout/stderr with search and download
- Exec into container — click Pod → Exec for a web-based shell (requires exec RBAC permission)
- Rolling restart — click Deployment → three-dot menu → Restart to trigger a rolling redeploy without changing image
- Edit live YAML — click any resource → Edit to modify the manifest and apply changes inline
- Create resources — click the "+" button in the top-right to paste or upload YAML/JSON
Installing Metrics Server for CPU/Memory Graphs
# Install Metrics Server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# For local clusters (minikube, kind) add --kubelet-insecure-tls flag:
kubectl patch deployment metrics-server -n kube-system \
--type='json' -p='[{"op":"add","path":"/spec/template/spec/containers/0/args/-","value":"--kubelet-insecure-tls"}]'
# Verify Metrics Server is working
kubectl top nodes
kubectl top pods -A Kubernetes Dashboard vs Lens vs k9s
| Feature | K8s Dashboard | Lens | k9s |
|---|---|---|---|
| Interface | Browser (web UI) | Desktop app (Electron) | Terminal (TUI) |
| Installation | Runs inside cluster | Local install (Mac/Win/Linux) | Local binary |
| Multi-cluster | One cluster per instance | Yes (sidebar switcher) | Yes (kubeconfig contexts) |
| Speed | Medium | Fast | Very fast |
| Built-in metrics | Via Metrics Server | Built-in (Prometheus) | Via Metrics Server |
| Cost | Free / open source | Free tier + paid Pro | Free / open source |
| Best for | Shared team access, no local install | GUI-oriented engineers, multi-cluster | Power users, fast navigation |
Security Best Practices
- Never expose the Dashboard with a NodePort or LoadBalancer service publicly — always use
kubectl proxyor a VPN-protected ingress - Use least-privilege RBAC — create role-specific ServiceAccounts rather than binding everyone to cluster-admin
- Disable anonymous access in the Dashboard deployment args:
--enable-insecure-login=false - Rotate service account tokens regularly; prefer short-lived tokens generated with
kubectl create token - For team access, front the Dashboard with an identity-aware proxy (oauth2-proxy, Pomerium) rather than sharing a cluster-admin token
Frequently Asked Questions
What is Kubernetes Dashboard and what can it do?▼
Kubernetes Dashboard is the official web-based UI for Kubernetes clusters. It lets you view and manage workloads (Deployments, StatefulSets, DaemonSets), Services, ConfigMaps, Secrets, PersistentVolumes, Namespaces, and Nodes from a browser. You can create, edit, and delete resources using the GUI, scale Deployments, trigger rolling restarts, view pod logs, and exec into containers — all without needing kubectl installed locally.
How do I create a service account token to log in to the Dashboard?▼
Create a ServiceAccount and bind it to the cluster-admin ClusterRole. Then generate a token: kubectl create token admin-user -n kubernetes-dashboard. This produces a bearer token you paste into the Dashboard login screen. For long-lived tokens (Kubernetes 1.24+), create a Secret of type kubernetes.io/service-account-token referencing the ServiceAccount and retrieve the token with: kubectl get secret admin-user-secret -n kubernetes-dashboard -o jsonpath='{.data.token}' | base64 -d
Is Kubernetes Dashboard safe to expose publicly?▼
No — the Dashboard should never be exposed directly to the internet. Access it exclusively via kubectl proxy (localhost tunnel) or through a VPN-protected ingress with authentication. The Dashboard historically had security vulnerabilities (CVE-2018-18264) when exposed with broad RBAC permissions. Always apply least-privilege RBAC, disable anonymous access, and use kubectl proxy or port-forwarding for access. For production monitoring, consider pairing it with an identity-aware proxy like Pomerium or oauth2-proxy.
What is the difference between Kubernetes Dashboard, Lens, and k9s?▼
Kubernetes Dashboard is browser-based and runs inside your cluster, requiring no local installation beyond kubectl proxy. Lens is a desktop Electron app with a rich GUI, multi-cluster support, built-in metrics, and a marketplace for extensions — ideal for developers managing many clusters. k9s is a terminal UI (TUI) that runs in your shell, extremely fast and keyboard-driven, preferred by power users who live in the terminal. For quick cluster-wide visibility with no local tooling, Dashboard wins. For daily multi-cluster workflows, Lens or k9s are faster.
How do I upgrade the Kubernetes Dashboard?▼
Apply the latest recommended manifest from the official GitHub release: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v3.x.x/aio/deploy/recommended.yaml. Check the Dashboard GitHub releases page for the latest version tag. Always read the upgrade notes because RBAC requirements and namespace conventions change between major versions. Verify the running version at the bottom of the Dashboard UI after upgrading.
Can I use Kubernetes Dashboard with metrics (CPU/memory graphs)?▼
Yes. Install the Metrics Server in your cluster first (kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml), then the Dashboard will automatically display CPU and memory usage graphs for nodes and pods. Without Metrics Server the graphs section shows empty data. For advanced metrics and alerting, complement the Dashboard with Prometheus + Grafana rather than relying solely on the Dashboard's built-in graphs.
Related Products
on GumroadPremium Workflow Pack
Production-grade workflows, architecture guides, and deployment scripts for teams that ship. 10 advanced CI/CD workflows (blue-green, canary, E2E, security), 5 architecture deep-dives, code review checklist, PR process guide, and 5 battle-tested Bash deployment scripts.
Buy on Gumroad →GitHub Actions CI/CD Templates Pack
12 production-ready GitHub Actions workflow templates covering Node.js, Python, Docker, multi-environment deployments, security scanning, and auto-changelog. Copy, paste, ship.
Buy on Gumroad →Developer Productivity Bundle
Stop rebuilding the same setup every project. 51 VSCode snippets, 40 Git aliases, 5 Docker Compose stacks, 5 GitHub Actions workflows, 5 README templates, and a dotfiles kit. Set up a professional dev environment in under an hour.
Buy on Gumroad →You Might Also Need
Kubernetes Resource Estimator
Estimate total Kubernetes cluster CPU and memory requirements. Input pods, replicas, and resource requests/limits to get cluster totals, requests vs limits analysis, and a ready-to-use ResourceQuota YAML.
Open free tool →
Kubernetes Resource Calculator
Calculate total CPU and memory requirements for your Kubernetes workloads. Input resource requests and limits per pod, replica count, and get cluster resource usage with cloud cost estimates.
Open free tool →
Kubernetes Resource Calculator
Calculate K8s resource requests and limits. Input CPU cores, memory per pod, replica count. Output cluster resource needs, HPA config, namespace quota YAML.
Open free tool →
More Free Tools
Related Articles
Essential Kubernetes Tools for Modern DevOps Teams in 2026
A practical guide to the most important Kubernetes tools in 2026, covering cluster management, observability, security, CI/CD integration, and developer productivity for teams running Kubernetes at scale.
Docker Compose vs Kubernetes: When to Use Each (2026)
A practical guide to choosing between Docker Compose and Kubernetes in 2026. Compare complexity, use cases, cost, and learn when to migrate from one to the other.
Kubernetes Cost Optimization: A Practical Guide for 2026
Reduce your Kubernetes costs by 40-60% with rightsizing, VPA/HPA, spot instances, namespace quotas, and cost monitoring tools like Kubecost. Real examples included.
Top Kubernetes Tools for Developers 2026: Helm, k9s, Lens & More
The essential Kubernetes tools every developer needs in 2026. Hands-on guide to k9s, Lens, Helm, Kustomize, stern, kind, skaffold, and must-have kubectl plugins.
Docker vs Kubernetes: When to Use Each (2025 Guide)
Docker vs Kubernetes 2025: key differences, Docker Compose vs Kubernetes, cost comparison, and a clear decision framework with real-world use cases.
Enjoying this tool? Get more like it.
Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.
Unlock AI-Powered Dev Tools
- ⚡ AI Code Review, Doc Generator & SQL Builder
- ⚡ All premium templates & early access
- ⚡ Member discounts on Gumroad products
$9/mo after trial · Cancel anytime
Want the full toolkit?
Get DevPlaybook Pro
Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.
MIT licensed · Instant download · No subscription
See what's included → Browse all deals →