Microk8S Dashboard Blank Screen Fix [Solved]

Immediate Fix: Using the Built-in Proxy

The fastest way to resolve a blank screen in the MicroK8s dashboard is to use the integrated proxy command. This bypasses most common certificate and routing issues.

microk8s dashboard-proxy

Once you run this, the terminal will output a specific URL (usually https://127.0.0.1:10443) and a login token. Copy the token, open the link in your browser, and paste the token when prompted. This method ensures the correct RBAC permissions are used during the session.

Technical Explanation: Why the Screen is Blank

A blank screen in the MicroK8s dashboard usually occurs because of browser security policies regarding self-signed certificates or incorrect API server routing. When the dashboard attempts to fetch resources from the Kubernetes API and fails due to an unauthorized request (401) or a forbidden request (403), the UI fails to render.

Common triggers include expired tokens, missing “cluster-admin” role bindings, or attempting to access the dashboard via an insecure HTTP connection when the service expects HTTPS.

Issue Root Cause Resolution
Empty White Screen CORS or Certificate Mismatch Use dashboard-proxy or accept self-signed certs
Login Loop Expired Token Generate new secret token
403 Forbidden Insufficient RBAC Permissions Apply cluster-admin role binding

MicroK8s dashboard troubleshooting showing a Kubernetes logo and system interface.

Alternative Methods

Method 1: Manual Token Generation

If the proxy works but you cannot log in, manually generate a long-lived token for the dashboard-admin user. This bypasses the session timeout issues often seen in newer MicroK8s versions.

microk8s kubectl -n kube-system create token default

Method 2: Patching for External Access

If you need to access the dashboard from a remote IP and keep seeing a blank screen, you may need to change the service type to NodePort and skip the login requirement (only recommended for local development).

microk8s kubectl patch deployment kubernetes-dashboard -n kube-system --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--enable-skip-login"}]'

After patching, restart the dashboard pod to apply the changes. This allows you to bypass the authentication screen entirely, which often resolves rendering issues tied to the login redirect logic.