VPA works directly with the Pod (instead of the Pod controller) by measuring and changing its containers’ parameters. Configuring is performed using the VerticalPodAutoscaler Custom Resource.

The module generally requires no configuration and only has the nodeSelector/tolerations settings.

The module is enabled by default in the following bundles: Default, Managed. The module is disabled by default in the Minimal bundle.

How to explicitly enable the module…

Note that the configOverrides parameter of the InitConfiguration resource is used when installing Deckhouse, not ModuleConfig.

Set the verticalPodAutoscalerEnabled: true or verticalPodAutoscalerEnabled: false in the configOverrides parameter to explicitly enable or disable the module when installing Deckhouse.

Use the verticalPodAutoscaler section of the configOverrides parameter to configure the module when installing Deckhouse.

Set the spec.enabled module parameter to true or false to explicitly enable or disable the module.

Example of enabling the vertical-pod-autoscaler module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: vertical-pod-autoscaler
spec:
  enabled: true

Example of disabling the vertical-pod-autoscaler module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: vertical-pod-autoscaler
spec:
  enabled: false

The module is configured using the ModuleConfig custom resource named vertical-pod-autoscaler (learn more about setting up Deckhouse…).

Example of the ModuleConfig/vertical-pod-autoscaler resource for configuring the module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: vertical-pod-autoscaler
spec:
  version: 1
  enabled: true
  settings: # <-- Module parameters from the "Parameters" section below.

Parameters

Schema version: 1

  • nodeSelectorobject

    The same as in the pods’ spec.nodeSelector parameter in Kubernetes.

    If the parameter is omitted or false, it will be determined automatically.

  • tolerationsarray of objects

    The same as in the pods’ spec.tolerations parameter in Kubernetes;

    If the parameter is omitted or false, it will be determined automatically.

    • tolerations.effectstring
    • tolerations.keystring
    • tolerations.operatorstring
    • tolerations.tolerationSecondsinteger
    • tolerations.valuestring