Immediate Fix: Update Your Ingress Annotations
The most common cause for a blank screen when accessing the Kubernetes Dashboard via Nginx Ingress is a protocol mismatch or path routing error. The Dashboard requires specific headers and often expects an HTTPS backend connection.
To fix this, apply the following Ingress configuration. Ensure the backend-protocol is set to HTTPS because the official dashboard image serves traffic over SSL by default.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: dashboard.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443
After applying this, clear your browser cache or open an Incognito window. The blank screen usually persists because the browser cached a failed redirect or a broken Javascript asset.
Technical Explanation: Why the Screen Goes Blank
The “Blank Screen” occurs because the HTML shell of the dashboard loads, but the associated Javascript and CSS files return 404 Not Found errors. This happens when the Ingress controller doesn’t handle the sub-paths correctly.
Another major factor is the Secure Flag. The Kubernetes Dashboard uses secure cookies. If you are accessing the dashboard over plain HTTP via the Ingress, the browser will refuse to store the session cookie, resulting in a failed login state that manifests as an empty UI.
Lastly, the dashboard’s internal web server is configured for HTTPS. If Nginx tries to communicate with the dashboard pod over port 80 or via HTTP, the connection will reset or return a 502/400 error, which the frontend handles poorly, leading to the infamous white screen.

Alternative Methods for Dashboard Access
If configuring the Ingress remains problematic due to organizational security policies, you can use built-in Kubernetes tooling to bypass the proxy layer entirely.
The table below compares the three most common ways to access the dashboard when the Nginx Ingress fails.
| Method | Use Case | Security Level |
|---|---|---|
| Port-Forwarding | Local development and debugging. | High (Local Only) |
| Nginx Ingress | Shared access for a whole team. | Medium (Requires TLS) |
| kubectl proxy | Quick access without configuration. | Low (Unencrypted) |
Using Port-Forwarding
This is the most reliable “fail-safe” method. It creates a direct tunnel from your local machine to the dashboard pod, bypassing Nginx entirely.
kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8443:443
Once running, you can access the UI at https://localhost:8443. This bypasses all routing logic, proving whether the issue lies with the dashboard itself or your Nginx configuration.