KUBERNETES REQUESTS RIGHTSIZER · RUNS IN YOUR BROWSER

Are your Kubernetes requests wasting money?

Paste kubectl top pod --containers output together with kubectl get pods -A -o json (or a simple CSV with p95 usage) and get, per container, over- and under-provisioned CPU and memory, a recommended request (usage plus headroom you set), the monthly saving at prices you edit, out-of-memory warnings and YAML patches to paste.

Nothing is uploaded and no cluster is contacted. The text box is analysed in this browser and never leaves your device. This is a recommendation from a snapshot, not a bill: usage must be sampled over a representative period.

1. Paste usage and requests

Prefer a CLI, or want a CI check?

Same logic, zero dependencies, one command — reads files or stdin:

kubectl top pod -A --containers > top.txt; kubectl get pods -A -o json > pods.json
node cli.mjs analyze top.txt pods.json --patch
node cli.mjs analyze containers.csv --cpu-headroom 30 --cpu-price 0.04 --mem-price 0.005
node cli.mjs analyze containers.csv --fail-on warn          # exit 1 when over-provisioned or near the limit
node cli.mjs analyze containers.csv --json

Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: how to right-size Kubernetes resource requests.

What's recognised

InputHandling

Prices are illustrative; edit them above or with --cpu-price / --mem-price. Node discounts, autoscaling, bin-packing and per-node overhead are not modelled.

Common questions

Does this connect to my cluster?

No. It reads the text you paste and never contacts a cluster, a cloud or any server. It cannot see your real invoice, node sizes, discounts or autoscaler, so every dollar figure is replicas times requests times list prices you can edit.

Is one kubectl top sample enough?

No. kubectl top is a single moment, not a p95. A request has to cover your busiest hour of the busiest week, so sample usage over a representative period (Prometheus, a metrics dashboard or a few days of top snapshots) and use the CSV form with p95 values before changing anything.

What does it mean when memory is above 85% of the limit?

A container that crosses its memory limit is OOMKilled. With no limit, usage near the request means the pod is first to be evicted when a node runs short. The tool flags both and raises the limit together with the request in its patch.

Is my pasted text uploaded anywhere?

No. The browser page analyses the text in your own browser and never sends it anywhere. The CLI reads local files or stdin and makes no network call.