● Calculations run locally in your browser. Some site features, such as usage analytics or shared results, may use network requests.
Example — Kubernetes Cluster Capacity Calculator

Kubernetes Cluster Capacity: 3 Nodes × 4 vCPU / 16 GB RAM Allocatable

Example of calculating allocatable Kubernetes cluster capacity for 3 nodes with 4 vCPU and 16 GB RAM each. Free tool.

Worked example

Input
Cluster: 3 worker nodes Node spec: 4 vCPU, 16 GB RAM each Question: how much total CPU/memory is available for pods?
Output
Raw capacity (3 × 4vCPU, 16GB): Total CPU: 12,000m (12 cores) Total RAM: 49,152 Mi (48 GB) Kubelet overhead deductions per node: System reserved (kubelet default): CPU: 100m RAM: 1,800 Mi Kube reserved (typical): CPU: 100m RAM: 1,000 Mi Eviction threshold: RAM: 100 Mi Allocatable per node: CPU: 4,000m - 200m = 3,800m RAM: 16,384 Mi - 2,900 Mi = 13,484 Mi Cluster allocatable (3 nodes): CPU: 11,400m (11.4 cores) RAM: 40,452 Mi (~39.5 GB) Practical rule: plan for 70% of allocatable: Usable CPU: ~8,000m Usable RAM: ~28 GB (leaves headroom for DaemonSets, node scaling lag)
Kubernetes reserves resources from each node for the kubelet, OS, and eviction thresholds — the allocatable capacity is always less than the raw node capacity. kubectl describe node shows the Allocatable fields. The 70% practical limit accounts for DaemonSet overhead (Fluentd, Datadog agent, CNI plugins run on every node), node autoscaler warmup time, and headroom for pod disruption spikes.
What to do next Run kubectl describe nodes | grep -A5 'Allocated resources' to see current usage vs allocatable per node. Set resource requests on all pods — without requests, the scheduler cannot make capacity decisions.

Use the Kubernetes Cluster Capacity Calculator to run this on your own input.

Open Kubernetes Cluster Capacity Calculator →

Frequently asked questions

What happens to pods when a node runs out of memory?

The kubelet evicts pods in order: first pods exceeding their memory limit (OOMKilled by kernel), then pods with no limits (BestEffort QoS), then pods exceeding their requests (Burstable QoS). Pods with resource requests == limits (Guaranteed QoS) are evicted last. Set resource limits to prevent one pod from consuming all node memory.

How do DaemonSets affect allocatable capacity calculations?

DaemonSet pods run on every node and consume resource requests from each node's allocatable pool. A Datadog agent pod requesting 100m CPU and 256Mi RAM on 3 nodes consumes 300m CPU and 768Mi RAM cluster-wide. Include DaemonSet resource usage in capacity planning — a fully-loaded node with many DaemonSets may have significantly less capacity for application workloads.