Pod Density Calculator
Estimate the maximum number of pods packed per node given resource requests.
About Pod Density Calculator
Pod density on a node is bounded by three independent ceilings: how many pods fit by CPU request, how many fit by memory request, and the kubelet's hard --max-pods limit (110 by default on most managed Kubernetes offerings, driven by IP allocation and CNI limits). The true maximum is whichever of these three is smallest — a node with lots of spare CPU and memory can still be capped by max-pods, and vice versa.
Formula
maxPods = min(floor(nodeCPU / podCPU), floor(nodeMemory / podMemory), maxPodsSetting)
- C_n
- Node allocatable CPU in millicores
- C_p
- Per-pod CPU request in millicores
- M_n
- Node allocatable memory in MiB
- M_p
- Per-pod memory request in MiB
- P_{max}
- Kubelet max-pods setting
- P
- Maximum pods per node
Worked example
With the default values below, Pod Density Calculator returns Max Pods per Node of 64. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Node Allocatable CPUaccepts 0.1–1,024 cores
- 16 cores
- Node Allocatable Memoryaccepts 0.1–8,192 GiB
- 64 GiB
- Per-Pod CPU Requestaccepts 1–64,000 millicores
- 250 millicores
- Per-Pod Memory Requestaccepts 1–1,000,000 MiB
- 256 MiB
- Kubelet max-pods Settingaccepts 1–1,000 pods
- 110 pods
Results
- Max Pods per Node
- 64 pods
- Binding Constraint
- CPU
- CPU-Based Fit
- 64 pods
- Memory-Based Fit
- 256 pods
Step by step
- 1CPU-based fit= 64 pods
- 2Memory-based fit= 256 pods
- 3Max pods per node = min(CPU fit, memory fit, max-pods setting)= 64 pods
Assumptions and limits
- The result is derived only from the 5 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, fees or charges or compounding frequency into account.
- Figures are rounded for display to whole numbers, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
Why is 110 pods the common default max-pods setting?
It originates from GKE/EKS defaults tied to the number of IP addresses the CNI can allocate per node and general kubelet stability testing; it can be raised on self-managed clusters if the CNI and node IP space support it.
What if CPU and memory fit are both much higher than max-pods?
That means you're likely wasting node capacity — either pick a larger instance type with a higher max-pods ceiling, or increase max-pods if your CNI supports enough pod IPs per node.
Does this account for DaemonSet pods?
No — DaemonSet pods (log shippers, CNI agents, monitoring agents) consume from the same per-node budget and should be subtracted from the max-pods figure before allocating capacity to regular workloads.
