The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
The module lifecycle stage: General Availability
The module has requirements for installation
VerticalPodAutoscaler
Scope: Namespaced
- v1
- v1beta2
Configuration for a vertical pod autoscaler, which automatically manages pod resources based on historical and real time resource utilization.
- stringapiVersion
Defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.
More information in the documentation.
- stringkind
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.
More information in the documentation.
- objectmetadata
- objectspec
Required value
Specification of the behavior of the autoscaler.
More information in the documentation.
- array of objectsspec.recommenders
Recommender responsible for generating recommendation for this object. List should be empty (then the default recommender will generate the recommendation) or contain exactly one recommender.
VerticalPodAutoscalerRecommenderSelector points to a specific Vertical Pod Autoscaler recommender. In the future it might pass parameters to the recommender.
- stringspec.recommenders.name
Required value
Name of the recommender responsible for generating recommendation for this object.
- objectspec.resourcePolicy
Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers.
If any individual containers need to be excluded from getting the VPA recommendations, then it must be disabled explicitly by setting mode to
OffundercontainerPolicies.If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.
- array of objectsspec.resourcePolicy.containerPolicies
Per-container resource policies.
Controls how autoscaler computes the recommended resources for a specific container.
- stringspec.resourcePolicy.containerPolicies.containerName
Name of the container or
DefaultContainerResourcePolicy, in which case the policy is used by the containers that don’t have their own policy specified. - array of stringsspec.resourcePolicy.containerPolicies.controlledResources
Specifies the type of recommendations that will be computed (and possibly applied) by VPA. If not specified, the default of (
ResourceCPU,ResourceMemory) will be used.Default:
["cpu","memory"]- stringElement of the array
ResourceName is the name identifying various resources in a ResourceList.
- stringspec.resourcePolicy.containerPolicies.controlledValues
Specifies which resource values should be controlled.
Default:
RequestsAndLimitsAllowed values:
RequestsAndLimits,RequestsOnly - objectspec.resourcePolicy.containerPolicies.maxAllowed
Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.
- objectspec.resourcePolicy.containerPolicies.minAllowed
Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.
- stringspec.resourcePolicy.containerPolicies.mode
Whether autoscaler is enabled for the container.
Default:
AutoAllowed values:
Auto,Off
- stringspec.scope
Scope controls additional recommendation partitioning for DaemonSet targets.
The value must be a node label key (for example:
node.kubernetes.io/instance-type). - objectspec.targetRef
Required value
Points to the controller managing the set of pods for the autoscaler to control — e.g. Deployment, StatefulSet.
VerticalPodAutoscaler can be targeted at controller implementing scale subresource (the pod set is retrieved from the controller’s
ScaleStatus) or some well known controllers (e.g. for DaemonSet the pod set is read from the controller’s spec).If VerticalPodAutoscaler cannot use specified target it will report
ConfigUnsupportedcondition. Note that VerticalPodAutoscaler does not require full implementation of scale subresource — it will not use it to modify the replica count. The only thing retrieved is a label selector matching pods grouped by the target resource.- stringspec.targetRef.apiVersion
API version of the referent.
- objectspec.updatePolicy
Describes the rules on how changes are applied to the pods. If not specified, all fields in the
PodUpdatePolicyare set to their default values.- array of objectsspec.updatePolicy.evictionRequirements
EvictionRequirements is a list of EvictionRequirements that need to evaluate to true in order for a Pod to be evicted. If more than one EvictionRequirement is specified, all of them need to be fulfilled to allow eviction.
EvictionRequirement defines a single condition which needs to be true in order to evict a Pod.
- stringspec.updatePolicy.evictionRequirements.changeRequirement
Required value
EvictionChangeRequirement refers to the relationship between the new target recommendation for a Pod and its current requests, what kind of change is necessary for the Pod to be evicted.
Allowed values:
TargetHigherThanRequests,TargetLowerThanRequests - array of stringsspec.updatePolicy.evictionRequirements.resources
Required value
Resources is a list of one or more resources that the condition applies to. If more than one resource is given, the EvictionRequirement is fulfilled if at least one resource meets
changeRequirement.- stringElement of the array
ResourceName is the name identifying various resources in a ResourceList.
- integerspec.updatePolicy.minReplicas
Minimal number of replicas which need to be alive for Updater to attempt pod eviction (pending other checks like PDB). Only positive values are allowed. Overrides global ‘–min-replicas’ flag.
- stringspec.updatePolicy.updateMode
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:d8 k describe vpa <vpa-name>.InPlaceOrRecreate(GA) — supported in Kubernetes 1.33 and later. The VPA attempts to update pod resources without a restart; if that is not possible, it recreates the pod.
Default:
InPlaceOrRecreateAllowed values:
Off,Initial,Recreate,Auto,InPlaceOrRecreate
- objectstatus
Current information about the autoscaler.
- array of objectsstatus.conditions
Set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
Describes the state of a VerticalPodAutoscaler at a certain point.
- stringstatus.conditions.lastTransitionTime
Last time the condition transitioned from one status to another.
- stringstatus.conditions.message
A human-readable explanation containing details about the transition.
- stringstatus.conditions.reason
Reason for the condition’s last transition.
- stringstatus.conditions.status
Required value
Status of the condition (
True,False, Unknown). - stringstatus.conditions.type
Required value
Describes the current condition.
- array of objectsstatus.groups
Contains grouped recommendations by scope value when
spec.scopeis used.- array of objectsstatus.groups.containerRecommendations
Resources recommended by autoscaler for each container in this group.
- stringstatus.groups.containerRecommendations.containerName
Name of the container.
- objectstatus.groups.containerRecommendations.lowerBound
Minimum recommended amount of resources. Observes
ContainerResourcePolicy. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability. - stringstatus.groups.containerRecommendations.scope
Scope binds this recommendation to a specific scope value in form “
= ". - objectstatus.groups.containerRecommendations.target
Required value
Recommended amount of resources. Observes
ContainerResourcePolicy. - objectstatus.groups.containerRecommendations.uncappedTarget
The most recent recommended resources target computed by the autoscaler for the controlled pods, based only on actual resource usage, not taking into account the
ContainerResourcePolicy.May differ from the Recommendation if the actual resource usage causes the target to violate the
ContainerResourcePolicy(lower than MinAllowed or higher that MaxAllowed). Used only as status indication, will not affect actual resource assignment. - objectstatus.groups.containerRecommendations.upperBound
Maximum recommended amount of resources.
Observes
ContainerResourcePolicy. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.
- stringstatus.groups.scopeValue
Required value
Scope value of
spec.scopelabel key for this recommendation group.
- objectstatus.recommendation
The most recently computed amount of resources recommended by the autoscaler for the controlled pods.
- array of objectsstatus.recommendation.containerRecommendations
Resources recommended by the autoscaler for each container.
Recommendation of resources computed by autoscaler for a specific container. Respects the container resource policy if present in the spec. In particular the recommendation is not produced for containers with
ContainerScalingModeset to ‘Off’.- stringstatus.recommendation.containerRecommendations.containerName
Name of the container.
- objectstatus.recommendation.containerRecommendations.lowerBound
Minimum recommended amount of resources. Observes
ContainerResourcePolicy. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability. - stringstatus.recommendation.containerRecommendations.scope
Scope binds this recommendation to a specific scope value in form “
= ". - objectstatus.recommendation.containerRecommendations.target
Required value
Recommended amount of resources. Observes
ContainerResourcePolicy. - objectstatus.recommendation.containerRecommendations.uncappedTarget
The most recent recommended resources target computed by the autoscaler for the controlled pods, based only on actual resource usage, not taking into account the
ContainerResourcePolicy. May differ from the Recommendation if the actual resource usage causes the target to violate theContainerResourcePolicy(lower than MinAllowed or higher that MaxAllowed). Used only as status indication, will not affect actual resource assignment. - objectstatus.recommendation.containerRecommendations.upperBound
Maximum recommended amount of resources. Observes
ContainerResourcePolicy. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.
Deprecated resource. Support for the resource might be removed in a later release.
Configuration for a vertical pod autoscaler, which automatically manages pod resources based on historical and real time resource utilization.
- stringapiVersion
Defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values.
More information in the documentation.
- stringkind
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase.
More information in the documentation.
- objectmetadata
- objectspec
Required value
Specification of the behavior of the autoscaler.
More information in the documentation.
- array of objectsspec.recommenders
Recommender responsible for generating recommendation for this object. List should be empty (then the default recommender will generate the recommendation) or contain exactly one recommender.
VerticalPodAutoscalerRecommenderSelector points to a specific Vertical Pod Autoscaler recommender. In the future it might pass parameters to the recommender.
- stringspec.recommenders.name
Required value
Name of the recommender responsible for generating recommendation for this object.
- objectspec.resourcePolicy
Controls how the autoscaler computes recommended resources. The resource policy may be used to set constraints on the recommendations for individual containers.
If any individual containers need to be excluded from getting the VPA recommendations, then it must be disabled explicitly by setting mode to
OffundercontainerPolicies.If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.
- array of objectsspec.resourcePolicy.containerPolicies
Per-container resource policies.
Controls how autoscaler computes the recommended resources for a specific container.
- stringspec.resourcePolicy.containerPolicies.containerName
Name of the container or
DefaultContainerResourcePolicy, in which case the policy is used by the containers that don’t have their own policy specified. - array of stringsspec.resourcePolicy.containerPolicies.controlledResources
Specifies the type of recommendations that will be computed (and possibly applied) by VPA. If not specified, the default of (
ResourceCPU,ResourceMemory) will be used.Default:
["cpu","memory"]- stringElement of the array
ResourceName is the name identifying various resources in a ResourceList.
- stringspec.resourcePolicy.containerPolicies.controlledValues
Specifies which resource values should be controlled.
Default:
RequestsAndLimitsAllowed values:
RequestsAndLimits,RequestsOnly - objectspec.resourcePolicy.containerPolicies.maxAllowed
Specifies the maximum amount of resources that will be recommended for the container. The default is no maximum.
- objectspec.resourcePolicy.containerPolicies.minAllowed
Specifies the minimal amount of resources that will be recommended for the container. The default is no minimum.
- stringspec.resourcePolicy.containerPolicies.mode
Whether autoscaler is enabled for the container.
Default:
AutoAllowed values:
Auto,Off
- stringspec.scope
Scope controls additional recommendation partitioning for DaemonSet targets.
The value must be a node label key (for example:
node.kubernetes.io/instance-type). - objectspec.targetRef
Required value
Points to the controller managing the set of pods for the autoscaler to control — e.g. Deployment, StatefulSet.
VerticalPodAutoscaler can be targeted at controller implementing scale subresource (the pod set is retrieved from the controller’s
ScaleStatus) or some well known controllers (e.g. for DaemonSet the pod set is read from the controller’s spec).If VerticalPodAutoscaler cannot use specified target it will report
ConfigUnsupportedcondition. Note that VerticalPodAutoscaler does not require full implementation of scale subresource — it will not use it to modify the replica count. The only thing retrieved is a label selector matching pods grouped by the target resource.- stringspec.targetRef.apiVersion
API version of the referent.
- objectspec.updatePolicy
Describes the rules on how changes are applied to the pods. If not specified, all fields in the
PodUpdatePolicyare set to their default values.- array of objectsspec.updatePolicy.evictionRequirements
EvictionRequirements is a list of EvictionRequirements that need to evaluate to true in order for a Pod to be evicted. If more than one EvictionRequirement is specified, all of them need to be fulfilled to allow eviction.
EvictionRequirement defines a single condition which needs to be true in order to evict a Pod.
- stringspec.updatePolicy.evictionRequirements.changeRequirement
Required value
EvictionChangeRequirement refers to the relationship between the new target recommendation for a Pod and its current requests, what kind of change is necessary for the Pod to be evicted.
Allowed values:
TargetHigherThanRequests,TargetLowerThanRequests - array of stringsspec.updatePolicy.evictionRequirements.resources
Required value
Resources is a list of one or more resources that the condition applies to. If more than one resource is given, the EvictionRequirement is fulfilled if at least one resource meets
changeRequirement.- stringElement of the array
ResourceName is the name identifying various resources in a ResourceList.
- integerspec.updatePolicy.minReplicas
Minimal number of replicas which need to be alive for Updater to attempt pod eviction (pending other checks like PDB). Only positive values are allowed. Overrides global ‘–min-replicas’ flag.
- stringspec.updatePolicy.updateMode
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:d8 k describe vpa <vpa-name>.InPlaceOrRecreate(GA) — supported in Kubernetes 1.33 and later. The VPA attempts to update pod resources without a restart; if that is not possible, it recreates the pod.
Default:
InPlaceOrRecreateAllowed values:
Off,Initial,Recreate,Auto,InPlaceOrRecreate
- objectstatus
Current information about the autoscaler.
- array of objectsstatus.conditions
Set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
Describes the state of a VerticalPodAutoscaler at a certain point.
- stringstatus.conditions.lastTransitionTime
Last time the condition transitioned from one status to another.
- stringstatus.conditions.message
A human-readable explanation containing details about the transition.
- stringstatus.conditions.reason
Reason for the condition’s last transition.
- stringstatus.conditions.status
Required value
Status of the condition (
True,False, Unknown). - stringstatus.conditions.type
Required value
Describes the current condition.
- array of objectsstatus.groups
Contains grouped recommendations by scope value when
spec.scopeis used.- array of objectsstatus.groups.containerRecommendations
Resources recommended by autoscaler for each container in this group.
- stringstatus.groups.containerRecommendations.containerName
Name of the container.
- objectstatus.groups.containerRecommendations.lowerBound
Minimum recommended amount of resources. Observes
ContainerResourcePolicy. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability. - stringstatus.groups.containerRecommendations.scope
Scope binds this recommendation to a specific scope value in form “
= ". - objectstatus.groups.containerRecommendations.target
Required value
Recommended amount of resources. Observes
ContainerResourcePolicy. - objectstatus.groups.containerRecommendations.uncappedTarget
The most recent recommended resources target computed by the autoscaler for the controlled pods, based only on actual resource usage, not taking into account the
ContainerResourcePolicy.May differ from the Recommendation if the actual resource usage causes the target to violate the
ContainerResourcePolicy(lower than MinAllowed or higher that MaxAllowed). Used only as status indication, will not affect actual resource assignment. - objectstatus.groups.containerRecommendations.upperBound
Maximum recommended amount of resources.
Observes
ContainerResourcePolicy. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.
- stringstatus.groups.scopeValue
Required value
Scope value of
spec.scopelabel key for this recommendation group.
- objectstatus.recommendation
The most recently computed amount of resources recommended by the autoscaler for the controlled pods.
- array of objectsstatus.recommendation.containerRecommendations
Resources recommended by the autoscaler for each container.
Recommendation of resources computed by autoscaler for a specific container. Respects the container resource policy if present in the spec. In particular the recommendation is not produced for containers with
ContainerScalingModeset to ‘Off’.- stringstatus.recommendation.containerRecommendations.containerName
Name of the container.
- objectstatus.recommendation.containerRecommendations.lowerBound
Minimum recommended amount of resources. Observes
ContainerResourcePolicy. This amount is not guaranteed to be sufficient for the application to operate in a stable way, however running with less resources is likely to have significant impact on performance/availability. - stringstatus.recommendation.containerRecommendations.scope
Scope binds this recommendation to a specific scope value in form “
= ". - objectstatus.recommendation.containerRecommendations.target
Required value
Recommended amount of resources. Observes
ContainerResourcePolicy. - objectstatus.recommendation.containerRecommendations.uncappedTarget
The most recent recommended resources target computed by the autoscaler for the controlled pods, based only on actual resource usage, not taking into account the
ContainerResourcePolicy. May differ from the Recommendation if the actual resource usage causes the target to violate theContainerResourcePolicy(lower than MinAllowed or higher that MaxAllowed). Used only as status indication, will not affect actual resource assignment. - objectstatus.recommendation.containerRecommendations.upperBound
Maximum recommended amount of resources. Observes
ContainerResourcePolicy. Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum amount of application is actually capable of consuming.
VerticalPodAutoscalerCheckpoint
Scope: Namespaced
- v1
- v1beta2
VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that is used for recovery after recommender’s restart.
- stringapiVersion
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More information in the documentation.
- stringkind
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More information in the documentation.
- objectmetadata
- stringspec.containerName
Name of the checkpointed container.
- stringspec.vpaObjectName
Name of the VPA object that stored VerticalPodAutoscalerCheckpoint. object.
- objectstatus
Data of the checkpoint.
- objectstatus.cpuHistogram
Checkpoint of histogram for consumption of CPU.
- objectstatus.cpuHistogram.bucketWeights
Map from bucket index to bucket weight.
- stringstatus.cpuHistogram.referenceTimestamp
Reference timestamp for samples collected within this histogram.
- numberstatus.cpuHistogram.totalWeight
Sum of samples to be used as denominator for weights from BucketWeights.
- stringstatus.firstSampleStart
Timestamp of the fist sample from the histograms.
- stringstatus.lastSampleStart
Timestamp of the last sample from the histograms.
- stringstatus.lastUpdateTime
The time when the status was last refreshed.
- objectstatus.memoryHistogram
Checkpoint of histogram for consumption of memory.
- objectstatus.memoryHistogram.bucketWeights
Map from bucket index to bucket weight.
- stringstatus.memoryHistogram.referenceTimestamp
Reference timestamp for samples collected within this histogram.
- numberstatus.memoryHistogram.totalWeight
Sum of samples to be used as denominator for weights from BucketWeights.
- integerstatus.totalSamplesCount
Total number of samples in the histograms.
- stringstatus.version
Version of the format of the stored data.
Deprecated resource. Support for the resource might be removed in a later release.
VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that is used for recovery after recommender’s restart.
- stringapiVersion
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More information in the documentation.
- stringkind
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More information in the documentation.
- objectmetadata
- stringspec.containerName
Name of the checkpointed container.
- stringspec.vpaObjectName
Name of the VPA object that stored VerticalPodAutoscalerCheckpoint. object.
- objectstatus
Data of the checkpoint.
- objectstatus.cpuHistogram
Checkpoint of histogram for consumption of CPU.
- objectstatus.cpuHistogram.bucketWeights
Map from bucket index to bucket weight.
- stringstatus.cpuHistogram.referenceTimestamp
Reference timestamp for samples collected within this histogram.
- numberstatus.cpuHistogram.totalWeight
Sum of samples to be used as denominator for weights from BucketWeights.
- stringstatus.firstSampleStart
Timestamp of the fist sample from the histograms.
- stringstatus.lastSampleStart
Timestamp of the last sample from the histograms.
- stringstatus.lastUpdateTime
The time when the status was last refreshed.
- objectstatus.memoryHistogram
Checkpoint of histogram for consumption of memory.
- objectstatus.memoryHistogram.bucketWeights
Map from bucket index to bucket weight.
- stringstatus.memoryHistogram.referenceTimestamp
Reference timestamp for samples collected within this histogram.
- numberstatus.memoryHistogram.totalWeight
Sum of samples to be used as denominator for weights from BucketWeights.
- integerstatus.totalSamplesCount
Total number of samples in the histograms.
- stringstatus.version
Version of the format of the stored data.