Skip to content
Calcrivo

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

cores

Allocatable CPU on the node after system/kubelet reservations.

GiB

Allocatable memory on the node after system/kubelet reservations.

millicores
MiB
pods

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

  1. CPU-based fit

    16000m ÷ 250m

    = 64 pods

  2. Memory-based fit

    65536MiB ÷ 256MiB

    = 256 pods

  3. 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.

You might also need