VerticalPodAutoscaler

Scope: Namespaced

VerticalPodAutoscaler is the configuration for a vertical Pod autoscaler, which automatically manages Pod resources based on historical and real time resource utilization.

  • spec
    object

    Required value

    • spec.resourcePolicy
      object

      Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.

      • spec.resourcePolicy.containerPolicies
        array of objects

        Per-container resource policies.

        ContainerResourcePolicy controls how autoscaler computes the recommended resources for a specific container.

        • spec.resourcePolicy.containerPolicies.containerName
          string

          Name of the container or DefaultContainerResourcePolicy, in which case the policy is used by the containers that don’t have their own policy specified.

        • spec.resourcePolicy.containerPolicies.controlledResources
          array of strings

          Specifies the type of recommendations that will be computed (and possibly applied) by VPA.

          Default: ["ResourceCPU","ResourceMemory"]

          • Element of the array
            string

            ResourceName is the name identifying various resources in a ResourceList.

        • spec.resourcePolicy.containerPolicies.controlledValues
          string

          Specifies which resource values should be controlled.

          Default: "RequestsAndLimits"

          Allowed values: RequestsAndLimits, RequestsOnly

        • spec.resourcePolicy.containerPolicies.maxAllowed
          object

          Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.

        • spec.resourcePolicy.containerPolicies.minAllowed
          object

          Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.

        • spec.resourcePolicy.containerPolicies.mode
          string

          Whether autoscaler is enabled for the container.

          Default: "Auto"

          Allowed values: Auto, Off

    • spec.targetRef
      object

      Required value

      Refers to a Kubernetes controller object responsible for managing pods.

      All common controller types are supported: Deployment, StatefulSet, DaemonSet, CronJobs, and any custom types with a scale sub-resource.

      • spec.targetRef.apiVersion
        string

        API version of the object.

      • spec.targetRef.kind
        string

        Required value

        Object type.

      • spec.targetRef.name
        string

        Required value

        Object name.

    • spec.updatePolicy
      object

      Describes the rules on how changes are applied to the pods. If not specified, all fields in the PodUpdatePolicy are set to their default values.

      • spec.updatePolicy.updateMode
        string

        The operation mode of the VPA controller

        • Auto — currently, Auto and Recreate modes do the same thing. This mode is reserved for the Pod inplace resource update in Kubernetes.
        • Recreate — this mode allows VPA to modify resource requirements of the running pods (i.e., restart them during operation). This mode might result in temporary unavailability of the service (due to restart) if you have just one replica (replicas: 1). In this mode, VPA does not recreate pods that were not created by a controller.
        • Initial — VPA modifies pod resources only when pods are started (but not when pods are running).
        • Off — VPA does not take any action to update the resource requests for the running containers. Autoscaler calculates recomendations and stores them in the status field of the VPA object. You can browse VPA recommendations using the following command: kubectl describe vpa <vpa-name>.

        Default: "Auto"

        Allowed values: Off, Initial, Recreate, Auto

VerticalPodAutoscaler is the configuration for a vertical Pod autoscaler, which automatically manages Pod resources based on historical and real time resource utilization.

  • spec
    object

    Required value

    • spec.resourcePolicy
      object

      Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.

      • spec.resourcePolicy.containerPolicies
        array of objects

        Per-container resource policies.

        ContainerResourcePolicy controls how autoscaler computes the recommended resources for a specific container.

        • spec.resourcePolicy.containerPolicies.containerName
          string

          Name of the container or DefaultContainerResourcePolicy, in which case the policy is used by the containers that don’t have their own policy specified.

        • spec.resourcePolicy.containerPolicies.controlledResources
          array of strings

          Specifies the type of recommendations that will be computed (and possibly applied) by VPA.

          Default: ["ResourceCPU","ResourceMemory"]

          • Element of the array
            string

            ResourceName is the name identifying various resources in a ResourceList.

        • spec.resourcePolicy.containerPolicies.controlledValues
          string

          Specifies which resource values should be controlled.

          Default: "RequestsAndLimits"

          Allowed values: RequestsAndLimits, RequestsOnly

        • spec.resourcePolicy.containerPolicies.maxAllowed
          object

          Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.

        • spec.resourcePolicy.containerPolicies.minAllowed
          object

          Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.

        • spec.resourcePolicy.containerPolicies.mode
          string

          Whether autoscaler is enabled for the container.

          Default: "Auto"

          Allowed values: Auto, Off

    • spec.targetRef
      object

      Required value

      Refers to a Kubernetes controller object responsible for managing pods.

      All common controller types are supported: Deployment, StatefulSet, DaemonSet, CronJobs, and any custom types with a scale sub-resource.

      • spec.targetRef.apiVersion
        string

        API version of the object.

      • spec.targetRef.kind
        string

        Required value

        Object type.

      • spec.targetRef.name
        string

        Required value

        Object name.

    • spec.updatePolicy
      object

      Describes the rules on how changes are applied to the pods. If not specified, all fields in the PodUpdatePolicy are set to their default values.

      • spec.updatePolicy.updateMode
        string

        The operation mode of the VPA controller

        • Auto — currently, Auto and Recreate modes do the same thing. This mode is reserved for the Pod inplace resource update in Kubernetes.
        • Recreate — this mode allows VPA to modify resource requirements of the running pods (i.e., restart them during operation). This mode might result in temporary unavailability of the service (due to restart) if you have just one replica (replicas: 1). In this mode, VPA does not recreate pods that were not created by a controller.
        • Initial — VPA modifies pod resources only when pods are started (but not when pods are running).
        • Off — VPA does not take any action to update the resource requests for the running containers. Autoscaler calculates recomendations and stores them in the status field of the VPA object. You can browse VPA recommendations using the following command: kubectl describe vpa <vpa-name>.

        Default: "Auto"

        Allowed values: Off, Initial, Recreate, Auto

VerticalPodAutoscaler is the configuration for a vertical Pod autoscaler, which automatically manages Pod resources based on historical and real time resource utilization.

  • spec
    object

    Required value

    • spec.resourcePolicy
      object

      Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.

      • spec.resourcePolicy.containerPolicies
        array of objects

        Per-container resource policies.

        ContainerResourcePolicy controls how autoscaler computes the recommended resources for a specific container.

        • spec.resourcePolicy.containerPolicies.containerName
          string

          Name of the container or DefaultContainerResourcePolicy, in which case the policy is used by the containers that don’t have their own policy specified.

        • spec.resourcePolicy.containerPolicies.controlledResources
          array of strings

          Specifies the type of recommendations that will be computed (and possibly applied) by VPA.

          Default: ["ResourceCPU","ResourceMemory"]

          • Element of the array
            string

            ResourceName is the name identifying various resources in a ResourceList.

        • spec.resourcePolicy.containerPolicies.controlledValues
          string

          Specifies which resource values should be controlled.

          Default: "RequestsAndLimits"

          Allowed values: RequestsAndLimits, RequestsOnly

        • spec.resourcePolicy.containerPolicies.maxAllowed
          object

          Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.

        • spec.resourcePolicy.containerPolicies.minAllowed
          object

          Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.

        • spec.resourcePolicy.containerPolicies.mode
          string

          Whether autoscaler is enabled for the container.

          Default: "Auto"

          Allowed values: Auto, Off

    • spec.targetRef
      object

      Required value

      Refers to a Kubernetes controller object responsible for managing pods.

      All common controller types are supported: Deployment, StatefulSet, DaemonSet, CronJobs, and any custom types with a scale sub-resource.

      • spec.targetRef.apiVersion
        string

        API version of the object.

      • spec.targetRef.kind
        string

        Required value

        Object type.

      • spec.targetRef.name
        string

        Required value

        Object name.

    • spec.updatePolicy
      object

      Describes the rules on how changes are applied to the pods. If not specified, all fields in the PodUpdatePolicy are set to their default values.

      • spec.updatePolicy.updateMode
        string

        The operation mode of the VPA controller

        • Auto — currently, Auto and Recreate modes do the same thing. This mode is reserved for the Pod inplace resource update in Kubernetes.
        • Recreate — this mode allows VPA to modify resource requirements of the running pods (i.e., restart them during operation). This mode might result in temporary unavailability of the service (due to restart) if you have just one replica (replicas: 1). In this mode, VPA does not recreate pods that were not created by a controller.
        • Initial — VPA modifies pod resources only when pods are started (but not when pods are running).
        • Off — VPA does not take any action to update the resource requests for the running containers. Autoscaler calculates recomendations and stores them in the status field of the VPA object. You can browse VPA recommendations using the following command: kubectl describe vpa <vpa-name>.

        Default: "Auto"

        Allowed values: Off, Initial, Recreate, Auto