Pod Overhead
FEATURE STATE: Kubernetes v1.16
alphaThis feature is currently in a alpha state, meaning:
- The version names contain alpha (e.g. v1alpha1).
- Might be buggy. Enabling the feature may expose bugs. Disabled by default.
- Support for feature may be dropped at any time without notice.
- The API may change in incompatible ways in a later software release without notice.
- Recommended for use only in short-lived testing clusters, due to increased risk of bugs and lack of long-term support.
When you run a Pod on a Node, the Pod itself takes an amount of system resources. Theseresources are additional to the resources needed to run the container(s) inside the Pod.Pod Overhead is a feature for accounting for the resources consumed by the pod infrastructureon top of the container requests & limits.
Pod Overhead
In Kubernetes, the pod’s overhead is set atadmissiontime according to the overhead associated with the pod’sRuntimeClass.
When Pod Overhead is enabled, the overhead is considered in addition to the sum of containerresource requests when scheduling a pod. Similarly, Kubelet will include the pod overhead when sizingthe pod cgroup, and when carrying out pod eviction ranking.
Set Up
You need to make sure that the PodOverhead
feature gate is enabled (it is off by default)across your cluster. This means:
- in kube-schedulerComponent on the master that watches newly created pods that have no node assigned, and selects a node for them to run on.
- in kube-apiserverControl plane component that serves the Kubernetes API.
- in the kubeletAn agent that runs on each node in the cluster. It makes sure that containers are running in a pod. on each Node
- in any custom API servers that use feature gates
Note: Users who can write to RuntimeClass resources are able to have cluster-wide impact onworkload performance. You can limit access to this ability using Kubernetes access controls.See Authorization Overview for more details.
What's next
Feedback
Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it onStack Overflow.Open an issue in the GitHub repo if you want toreport a problemorsuggest an improvement.