Cluster assessment
Ranked findings instead of a pod list: crash loops, OOM kills, pods that will never schedule, sizing problems — each with what to do about it.
Topology and traffic
PodSteer draws a namespace, several namespaces or the whole cluster as one map: workloads, pods, Services, Ingresses, Gateway API routes, autoscalers, budgets and policies, joined only by relationships that exist in the cluster. Switch on observed traffic and the same map shows request rates, errors and latency from the Prometheus your service mesh or eBPF tool already feeds — with nothing installed in the cluster.
The Topology page draws the sidebar's namespace selection — one namespace, several, or all of them — rather than one object's neighbourhood. Every line is a relationship Kubernetes has: an owner reference, a Service or budget selecting pods, an Ingress or route sending to a Service, an autoscaler scaling its target, a pod running as its ServiceAccount.
The map is drawn when you open it and when you ask, never on a timer. When something in the scope changes, a Changed — Refresh badge says so instead of moving the boxes under your pointer. Live mode is there if you want it, off by default: it redraws after the changes settle and never re-fits the view, so what you were looking at stays where it was. Lines move in the direction of the dependency, and traffic lines faster the busier they are; the motion stops under reduced motion and above 200 lines.
Traffic is a layer over the map, not a line PodSteer infers. It is read from your cluster's own Prometheus, only when you switch on the toolbar's traffic toggle, from the metrics Istio, Linkerd, Beyla or OpenTelemetry eBPF Instrumentation, Caretta or Cilium's Hubble already publish there. Each line carries the request or connection rate, the error rate and p50, p95 and p99 latency where the source exposes them, over 5 minutes, 15 minutes or an hour, and the panel shows the exact PromQL it sent.
Querying the monitoring stack is off until you turn it on for a cluster, and you choose which discovered Prometheus answers under Settings → Clusters. The query travels through your API server's own service proxy on your kubeconfig's credentials. When the monitoring backend itself refuses that proxy — linkerd-viz's Prometheus does, by design — PodSteer opens a short-lived local port-forward for that one request and closes it when the answer arrives. Nothing is installed: when no source is found, the panel names what would be needed.
Be honest
Read next
Ranked findings instead of a pod list: crash loops, OOM kills, pods that will never schedule, sizing problems — each with what to do about it.
Real tabs, one cluster each; one table across every open cluster; clusters found through your own cloud CLI.
Built-in views for cert-manager, KEDA, External Secrets, Argo Rollouts, Trivy, Karpenter, Gateway API and more — no plugin API, nothing to install.