:_mod-docs-content-type: ASSEMBLY
:context: nodes-pods-vertical-autoscaler
[id="nodes-pods-vpa"]
= Automatically adjust pod resource levels with the vertical pod autoscaler
include::_attributes/common-attributes.adoc[]

toc::[]


[role="_abstract"]
You can use the {product-title} Vertical Pod Autoscaler Operator (VPA) to help you understand the optimal CPU and memory usage for your pods and automatically maintain pod resources through the pod lifecycle.

The VPA automatically reviews the historic and current CPU and memory resources for containers in pods. The VPA can update the resource limits and requests based on the usage values it learns. By using individual custom resources (CR), the VPA updates all the pods in a project associated with any built-in workload objects. This includes the following list of object types:

* `Deployment`
* `DeploymentConfig`
* `StatefulSet`
* `Job`
* `DaemonSet`
* `ReplicaSet`
* `ReplicationController`

The VPA can also update certain custom resource object that manage pods. For more information, see "Example custom resources for the Vertical Pod Autoscaler".

// The following include statements pull in the module files that comprise
// the assembly. Include any combination of concept, procedure, or reference
// modules required to cover the user story. You can also include other
// assemblies.

include::modules/nodes-pods-vertical-autoscaler-about.adoc[leveloffset=+1]

include::modules/nodes-pods-vertical-autoscaler-in-place.adoc[leveloffset=+2]

include::modules/nodes-pods-vertical-autoscaler-install.adoc[leveloffset=+1]

include::modules/nodes-pods-vertical-autoscaler-moving-vpa.adoc[leveloffset=+1]

include::modules/nodes-pods-vertical-autoscaler-using-about.adoc[leveloffset=+1]

include::modules/nodes-pods-vertical-autoscaler-tuning.adoc[leveloffset=+2]

include::modules/nodes-pods-vertical-autoscaler-oom.adoc[leveloffset=+2]

include::modules/nodes-pods-vertical-autoscaler-custom.adoc[leveloffset=+2]

include::modules/nodes-pods-vertical-autoscaler-configuring.adoc[leveloffset=+1]

include::modules/nodes-pods-vertical-autoscaler-custom-resource.adoc[leveloffset=+2]

include::modules/nodes-pods-vertical-autoscaler-uninstall.adoc[leveloffset=+1]

[role="_additional-resources"]
[id="additional-resources_{context}"]
== Additional resources
* xref:../../nodes/pods/nodes-pods-vertical-autoscaler.adoc#nodes-pods-vertical-autoscaler-custom-resource_nodes-pods-vertical-autoscaler[Example custom resources for the Vertical Pod Autoscaler]
* xref:../../nodes/pods/nodes-pods-vertical-autoscaler.adoc#nodes-pods-vertical-autoscaler-using-about_nodes-pods-vertical-autoscaler[About using the Vertical Pod Autoscaler Operator]
* xref:../../nodes/pods/nodes-pods-adjust-resources-in-place.adoc#nodes-pods-adjust-resources-in-place[Adjust pod resource levels without pod disruption]
* xref:../../nodes/clusters/nodes-cluster-resource-configure.adoc#nodes-cluster-resource-configure-oom_nodes-cluster-resource-configure[Understanding OOM kill policy]
