Pod Overhead is a way to account for the resources consumed by the Pod infrastructure on top of the container requests and limits.
Stuff you wanna know:
- A Pod’s overhead is set at admission time according to the overhead associated with the Pod’s RuntimeClass.
- The kubelet will include the Pod overhead when sizing the Pod cgroup, and when carrying out Pod eviction ranking.
- To work with Pod overhead, you need a RuntimeClass that defines the
overhead
field. - When the kube-scheduler is deciding which node should run a new Pod, the scheduler considers that Pod’s
overhead
as well as the sum of container requests for that Pod. - Once a Pod is scheduled to a node, the kubelet on that node creates a new cgroup for the Pod. It is within this pod that the underlying container runtime will create containers.
More stuff:
- Pod Overhead — https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/
- Configuring Pod overhead — https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/#set-up
- Verify Pod cgroup limits — https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/#verify-pod-cgroup-limits
- PodOverhead Design enhancement proposal — https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/688-pod-overhead