Kubernetes Node Bin-Packing

Visualize stranded (wasted) resources based on your Pod sizing.

Max Pods Per Node

4

Wasted Cost (Stranded Resources)

AWS
$56.51
GCP
$64.31
Azure
Best
$55.15
CPU: 1.6 coresRAM: 2.7 GB

Mastering Kubernetes Node Bin-Packing & Optimization

Kubernetes resource allocation is one of the biggest drivers of hidden cloud costs. "Bin-packing" refers to the process of efficiently scheduling Pods onto cluster Nodes to minimize wasted capacity. This calculator helps you define the ideal CPU and memory requests for your containers to maximize node utilization and minimize idle resources.

The Cost of Node Fragmentation

When Pod resource requests are mismatched with Node capacities, you experience "fragmentation." For example, if a Node has 2 CPU cores available but 4GB of RAM left, and all your pending Pods require 4 CPU cores, that Node's memory is stranded and wasted. By right-sizing your Pod requests and choosing the correct Node Instance Types (e.g., memory-optimized vs compute-optimized), you can dramatically reduce your EKS, GKE, or AKS monthly bill.

Which Resource Actually Sets the Limit

The calculator reserves roughly 10% of both node CPU and RAM for the OS and kubelet before bin-packing begins, then computes podsByCpu = floor(availableCpu รท podCpuRequest) and podsByRam = floor(availableRam รท podRamRequest) independently โ€” the node's actual pod capacity is whichever of the two is smaller. On the defaults (a 4 vCPU / 16GB node running pods that request 500m CPU / 3000MB RAM), CPU alone would fit 7 pods but RAM only fits 4, so RAM is the binding constraint and the remaining ~1,600m of CPU sits stranded and unusable by that node. This is the core diagnostic the tool exists for: if your pod's CPU-to-RAM request ratio doesn't roughly match your node's CPU-to-RAM ratio, you will always strand one resource before exhausting the other, regardless of how "efficient" any individual pod's requests look in isolation.