Minikube’s dashboard is a surprisingly powerful, yet often overlooked, tool for interacting with your local Kubernetes cluster.

Let’s see it in action. First, ensure Minikube is running:

minikube start

Once your cluster is up, you can launch the dashboard with a simple command:

minikube dashboard

This command does a couple of things. It spins up the Kubernetes Dashboard deployment and service within your Minikube cluster, and then it opens your default web browser to the correct URL to access it. You’ll see a web interface where you can view your cluster’s state: pods, deployments, services, nodes, and more.

The problem this solves is straightforward: when you’re developing locally with Kubernetes, it’s easy to get lost in command-line output. The dashboard provides a visual overview, making it much easier to understand what’s running, identify issues, and manage your applications.

Internally, minikube dashboard automates several steps. It applies a set of Kubernetes manifests (YAML files) that define the dashboard’s components. These include:

  • Deployment: Manages the Pods running the dashboard application.
  • Service: Exposes the dashboard Pods to the network, usually as a NodePort service.
  • Service Account & Role/ClusterRole: Grants the dashboard the necessary permissions to read cluster resources.
  • Ingress (sometimes): If configured, it might create an Ingress resource to provide a more stable URL.

The minikube dashboard command itself is essentially a wrapper around kubectl apply for these built-in dashboard manifests, followed by kubectl port-forward or by figuring out the NodePort and opening the browser.

The exact levers you control are primarily through Minikube’s configuration and Kubernetes itself. When you run minikube start, you can specify --dashboard-port to hint at a preferred port, though Minikube will ultimately assign a NodePort for the dashboard service. Once the dashboard is running, you’re interacting with the standard Kubernetes API. You can use kubectl to inspect the dashboard’s own pods and services, or to modify resources that the dashboard then visualizes.

For example, to see the dashboard’s own deployment:

kubectl get deployment kubernetes-dashboard -n kubernetes-dashboard

And to see its service:

kubectl get service kubernetes-dashboard -n kubernetes-dashboard

You’ll notice the dashboard service is typically of type NodePort, meaning it’s accessible on a specific port on your Minikube VM’s IP address. minikube dashboard handles discovering this port and constructing the URL for you.

The most surprising thing about the Kubernetes Dashboard, and many other add-ons Minikube manages, is how it leverages the core Kubernetes API to manage itself. The dashboard isn’t a separate, monolithic application; it’s just another set of deployments and services running within your Kubernetes cluster, granted permissions by Kubernetes’s own RBAC system to view and interact with other resources. This self-hosting capability is a fundamental aspect of Kubernetes extensibility.

If you need to access the dashboard from a different machine on your network, you’ll typically need to find the Minikube VM’s IP address (using minikube ip) and then construct the URL using the NodePort assigned to the kubernetes-dashboard service. You might also need to configure firewall rules on your host machine to allow access to that port.

The next concept you’ll want to explore is how to secure access to the dashboard, as the default installation might not have robust authentication or authorization configured, especially in production-like scenarios.

Want structured learning?

Take the full Minikube course →