Lightweight real-time K3s cluster monitoring dashboard — runs as a single container with zero dependencies.
docker run -d \
--name cluster-dashboard \
-p 8080:80 \
eramax/cluster-dashboard:latest
apiVersion: apps/v1
kind: Deployment
metadata:
name: cluster-dashboard
spec:
replicas: 1
selector:
matchLabels:
app: cluster-dashboard
template:
metadata:
labels:
app: cluster-dashboard
spec:
serviceAccountName: dashboard-sa
containers:
- name: dashboard
image: eramax/cluster-dashboard:latest
ports:
- containerPort: 80
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
You'll need a ClusterRole + binding to read nodes, pods, services, ingresses, and deployments.
| Variable | Description |
|---|---|
POD_NAME | Pod name (for display) |
POD_IP | Pod IP (for display) |
NODE_NAME | Node name — enables node/cluster API queries |
NODE_IP | Node IP (for display) |
NAMESPACE | Namespace (for display) |
KUBERNETES_SERVICE_HOST | K8s API host (auto-detected in-cluster) |
KUBERNETES_SERVICE_PORT | K8s API port (auto-detected in-cluster) |
| Route | Description |
|---|---|
/ | Dashboard UI |
/json | Full system snapshot as JSON |
/history | 6-minute metrics history as JSON |
/pods | Live pod list |
/services | Live services |
/ingresses | Live ingresses |
/healthz | Health check |
/proc and /sys — Linux onlyContent type
Image
Digest
sha256:3ac572b56…
Size
17 MB
Last updated
4 months ago
docker pull eramax/cluster-dashboard