Bin packing and utilization
Cloud resources are expensive. Efficient usage of resources on Kubernetes has two parts: efficiently scheduling pods to nodes based on their resource requests, and pods actually using the resources they requested.
Bin packing means ensuring that the total sum of resource requests is as close as possible to the allocatable resources on the target node. Once a workload is scheduled to a node, it will not be evicted under normal conditions even if the node is highly underutilized, but components like the cluster autoscaler can help here.
Resource utilization measures what percentage of the requested resource is actually used. Resource utilization is in general not fixed as the resource usage of workloads may vary widely throughout their lifetimes.
There are a lot of nuances to bin packing, resource utilization, and the interplay between them. For example, there are different resources such as CPU, memory, disk, and network. A node may have 100...