OpenShift Pod Density Calculator
Compare the 110 default and 250 maximum pods per node against the 4-pods-per-vCPU guideline and your DaemonSet overhead.
Inputs
Kubernetes guidance is roughly 4 pods per vCPU for mixed workloads.
OpenShift defaults to 250; 110 is upstream default and 500 needs tuning.
Logging, monitoring, CNI and CSI agents run on every node.
Application Pods per Node
56pods
Cluster Pod Capacity
448pods
Ceiling from the vCPU Guideline
64pods
Pod Capacity Used
138.4%
Pod Headroom Remaining
0pods
Density Verdict
Nearly full — a single node loss would leave pods unschedulable
Step by step
Values used
Worker nodes = 8 nodes; vCPUs per node = 16 vCPU; Pods per vCPU guideline = 4 pods; maxPods in the kubelet config = 250 pods; DaemonSet pods per node = 8 pods; Application pods running today = 620 pods
OpenShift Pod Density
application pods per node = min(maxPods, vCPUs × pods per vCPU) − DaemonSet pods; cluster capacity is that multiplied by the node count.
Application Pods per Node
= 56 pods
Cluster Pod Capacity
= 448 pods
Ceiling from the vCPU Guideline
= 64 pods
Pod Capacity Used
= 138.4
Pod Headroom Remaining
= 0 pods
Density Verdict
= Nearly full — a single node loss would leave pods unschedulable
How it works
Two independent ceilings apply. maxPods is a hard kubelet limit driven by network and runtime scalability, while the pods-per-vCPU guideline reflects the fact that each pod costs the kubelet and the runtime real CPU regardless of what the container does. DaemonSets then take their slots off the top of whichever ceiling is lower. Density decides node size and therefore cost, and a cluster running above 90% of its pod capacity cannot survive a node failure — the evicted pods have nowhere to reschedule.
Formula
OpenShift Pod Density
application pods per node = min(maxPods, vCPUs × pods per vCPU) − DaemonSet pods; cluster capacity is that multiplied by the node count.
- maxPods
- Kubelet ceiling — 250 on OpenShift, 110 upstream, 500 only with tuning
- pods per vCPU
- Practical scheduling guide of about 4 pods per vCPU
- DaemonSet pods
- Per-node agents that consume slots before any application pod
Frequently Asked Questions
How is OpenShift Pod Density calculated?
application pods per node = min(maxPods, vCPUs × pods per vCPU) − DaemonSet pods; cluster capacity is that multiplied by the node count. Two independent ceilings apply. maxPods is a hard kubelet limit driven by network and runtime scalability, while the pods-per-vCPU guideline reflects the fact that each pod costs the kubelet and the runtime real CPU regardless of what the container does. DaemonSets then take their slots off the top of whichever ceiling is lower.
Why does OpenShift Pod Density matter?
Density decides node size and therefore cost, and a cluster running above 90% of its pod capacity cannot survive a node failure — the evicted pods have nowhere to reschedule.
What values do I need to enter?
This calculator takes 6 inputs: Worker nodes, vCPUs per node, Pods per vCPU guideline, maxPods in the kubelet config, DaemonSet pods per node, Application pods running today. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Why is 250 the supported ceiling rather than 500?
Beyond about 250 pods the kubelet's status reporting, the CNI's IP address management and the iptables or nftables rule set all grow to the point where node status updates and service reconvergence become the bottleneck. 500 is achievable but requires deliberate tuning and testing.
You might also need
- OpenShift Node Capacity CalculatorCommonly used together
- OpenShift Project Quota CalculatorCommonly used together
- OpenShift Cluster Health CalculatorCommonly used together
- OpenShift Route Capacity CalculatorCommonly used together
- VMware VM Density CalculatorAlso in Virtualization & Private Cloud
- Hypervisor Consolidation CalculatorAlso in Virtualization & Private Cloud