Node Capacity Calculator
Calculate how many pods and how much workload a Kubernetes node can host.
About Node Capacity Calculator
A node's pod capacity is bound by whichever resource — CPU or memory — runs out first, after subtracting the portion reserved for the kubelet, container runtime and OS. Formula: max_pods = min(allocatable_cpu / pod_cpu_request, allocatable_memory / pod_memory_request). Note that Kubernetes also enforces a hard cap (default 110 pods per node) independent of resource math, which this calculator does not include.
Formula
maxPods = min(floor(allocatableCPU / podCPU), floor(allocatableMemory / podMemory))
- C_a
- Allocatable CPU (node CPU × (1 - system reserved%))
- C_p
- Pod CPU request in millicores
- M_a
- Allocatable memory (node memory × (1 - system reserved%))
- M_p
- Pod memory request in MiB
- P
- Maximum pods per node
Worked example
With the default values below, Node Capacity Calculator returns Max Pods per Node of 28. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Node CPUaccepts 0.1–512 cores
- 8 cores
- Node Memoryaccepts 0.1–8,000 GiB
- 32 GiB
- Pod CPU Requestaccepts 1–64,000 millicores
- 250 millicores
- Pod Memory Requestaccepts 1–1,000,000 MiB
- 256 MiB
- System Reservedaccepts 0–50 %
- 10 %
Results
- Max Pods per Node
- 28 pods
- Binding Constraint
- CPU
- Max Pods (CPU-bound)
- 28 pods
- Max Pods (Memory-bound)
- 115 pods
- CPU Utilization at Max
- 97.2%
- Memory Utilization at Max
- 24.3%
Step by step
- 1Allocatable CPU: node CPU × (1 − reserved%)= 7200m
- 2Allocatable memory: node memory × (1 − reserved%)= 29491MiB
- 3Max pods by CPU= 28
- 4Max pods by memory= 115
- 5Max pods (binding constraint)= 28 pods (bound by CPU)
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, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to 1 decimal place, 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 my actual max-pods lower than this calculation?
Kubernetes enforces a kubelet --max-pods setting (default 110) as a hard ceiling regardless of available resources, and some capacity may also be consumed by DaemonSets running on every node.
What's a typical system-reserved percentage?
Cloud providers commonly reserve 5-10% for small nodes and slightly more for the kubelet/OS on very large nodes; check your provider's specific allocatable formula (e.g. GKE, EKS use tiered reservations).
Should I size pods to fully saturate a node's CPU or memory equally?
Ideally your pod's CPU-to-memory request ratio matches the node's CPU-to-memory ratio, so neither resource is left stranded — otherwise you'll have unused capacity in whichever resource isn't the binding constraint.
Does this account for DaemonSet pods?
No — DaemonSet pods (e.g. log shippers, CNI agents) consume part of the allocatable capacity on every node and should be subtracted from allocatable CPU/memory before running this calculation for your application pods.
Related Calculators
You might also need
- Pod Resource CalculatorCommonly used together
- Control Plane Resource CalculatorCommonly used together
- Deployment Capacity CalculatorCommonly used together
- Cluster Autoscaler CalculatorCommonly used together
- Node Affinity CalculatorCommonly used together
- Taints Tolerations CalculatorCommonly used together
