Pod Density Calculator
Determine the maximum number of pods that fit on a node given its CPU and memory capacity, per-pod requests, and the kubelet's max-pods setting.
Inputs
Allocatable CPU on the node after system/kubelet reservations.
Allocatable memory on the node after system/kubelet reservations.
The kubelet's --max-pods flag (110 is the common cloud default).
Max Pods per Node
64pods
Binding Constraint
CPU
CPU-Based Fit
64pods
Memory-Based Fit
256pods
Step by step
CPU-based fit
16000m ÷ 250m
= 64 pods
Memory-based fit
65536MiB ÷ 256MiB
= 256 pods
Max pods per node = min(CPU fit, memory fit, max-pods setting)
min(64, 256, 110)
= 64 pods
How it works
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
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.