- Contents
- Intro
- Getting started
- Components and Architecture
- Features and Known limitations
- Related links
Vertical Pod Autoscaler (VPA) frees users from the necessity of setting up-to-date resource requests for the containers in their pods. When configured, it will set the requests automatically based on usage and thus allow proper scheduling onto nodes so that appropriate resource overhead is available for each pod. It will also maintain ratios between requests and limits that were specified in initial containers configuration.
It can both down-scale pods that are over-requesting resources, and also up-scale pods that are under-requesting resources based on their usage over time.
Autoscaling is configured with a Custom Resource Definition object called VerticalPodAutoscaler. It allows to specify which pods should be vertically autoscaled as well as if/how the resource recommendations are applied.
To enable vertical pod autoscaling on your cluster please follow the installation procedure described below.
See Installation for a guide on installation, followed by a the Quick start guide.
Also refer to the FAQ for more.
The Vertical Pod Autoscaler consists of three parts. The recommender, updater and admission-controller. Read more about them on the components page.
You can also read about the features and known limitations of the VPA.
Important
At the moment, VPA is not compatible with workloads that define pod-level resources stanzas. Work has started to add pod-level resources support for VPA, for more details see AEP-7571. Users of VPA may encounter the following issues if they enable VPA for a workload with a pod-level resources stanza defined:
- When the admission-controller tries to set a container-level limit higher than the pod-level limit, the operation is prohibited, and the pod will not be created.
- When the admission-controller tries to set the newly recommended container-level requests, their total value cannot exceed the pod-level request or limit. For example, if the pod-level memory request is 100Mi, but the newly recommended total of container-level requests is 250Mi, the pod will fail to be created.