Vertical Pod Scaling
Vertical pod scaling (VPA) configuration#
# vpa.yaml
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  name: test-vpa
spec:
  targetRef:
    apiVersion: "apps/v1"
    kind:       Deployment
    name:       test-deployment
  updatePolicy:
    updateMode: "Auto"
updateMode is crucial here, it's recommended to deploy with update mode "Off."
// UpdateMode controls when autoscaler applies changes to the pod resoures.
// +kubebuilder:validation:Enum=Off;Initial;Recreate;Auto
type UpdateMode string
const (
    // UpdateModeOff means that autoscaler never changes Pod resources.
    // The recommender still sets the recommended resources in the
    // VerticalPodAutoscaler object. This can be used for a "dry run".
    UpdateModeOff UpdateMode = "Off"
    // UpdateModeInitial means that autoscaler only assigns resources on pod
    // creation and does not change them during the lifetime of the pod.
    UpdateModeInitial UpdateMode = "Initial"
    // UpdateModeRecreate means that autoscaler assigns resources on pod
    // creation and additionally can update them during the lifetime of the
    // pod by deleting and recreating the pod.
    UpdateModeRecreate UpdateMode = "Recreate"
    // UpdateModeAuto means that autoscaler assigns resources on pod creation
    // and additionally can update them during the lifetime of the pod,
    // using any available update method. Currently this is equivalent to
    // Recreate, which is the only available update method.
    UpdateModeAuto UpdateMode = "Auto"
)
Get output#
YAML output#
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  annotations:
  creationTimestamp: "2022-03-25T05:44:02Z"
  generation: 692
  name: test-vpa
  namespace: default
spec:
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: test-deployment
  updatePolicy:
    updateMode: Auto
status:
  conditions:
  - lastTransitionTime: "2022-03-25T05:44:34Z"
    status: "False"
    type: LowConfidence
  - lastTransitionTime: "2022-03-25T05:44:34Z"
    status: "True"
    type: RecommendationProvided
  recommendation:
    containerRecommendations:
    - containerName: sidecar
      lowerBound:
        cpu: 1m
        memory: "9437184"
      target:
        cpu: 1m
        memory: "10485760"
      uncappedTarget:
        cpu: 1m
        memory: "10485760"
      upperBound:
        cpu: 2m
        memory: "12582912"
    - containerName: test-deployment
      lowerBound:
        cpu: 5m
        memory: "179306496"
      target:
        cpu: 6m
        memory: "243269632"
      uncappedTarget:
        cpu: 6m
        memory: "243269632"
      upperBound:
        cpu: 7m
        memory: "273678336"
References & further reading#
  
    
      Last update:
      December 13, 2022
      
        
Created: July 13, 2022
                
              Created: July 13, 2022