In-Place Updates of Pod Resources
This is a short guide covering the enablement of in-place resource updates in the Vertical Pod Autoscaler.
Compatibility
In-place resource updates got introduced as an alpha feature in Kubernetes 1.27. In Kubernetes 1.33, it got promoted to beta and enabled by default. On the Vertical Pod Autoscaler side, with Release 1.5.0, in-place resources updates are available as a beta feature (enabled by default) for vpa-admission-controller and vpa-updater. For more details, see the In-Place Updates documentation.
Kubernetes
With Kubernetes 1.33, the InPlacePodVerticalScaling feature gate, which enables in-place resource updates, is enabled by default and does not require additional instrumentation. Prior versions, from Kubernetes 1.27 onwards require the InPlacePodVerticalScaling feature gate to be enabled for both kube-apiserver and kubelet.
Vertical Pod Autoscaling
With 1.5.0, the InPlaceOrRecreate feature gate, which enables in-place resource updates for vpa-admission-controller and vpa-updater, got promoted to a beta feature, making it enabled by default. Refer to the usage guide for details about instrumenting a VerticalPodAutoscaler resource with in-place updates.
Configuration
As described in the Compatibility section, alpha versions of the InPlacePodVerticalScaling Kubernetes feature require additional configuration to get the in-place updates enabled. This section covers the components that need to be configured both on Kubernetes and Vertical Pod Autoscaler sides.
Shoot
Since Vertical Pod Autoscaler has its InPlaceOrRecreate feature gate in beta, making it enabled by default, make sure that it is not explicitly disabled. In addition, verify that the InPlacePodVerticalScaling Kubernetes feature gate is not explicitly disabled in the Shoot spec for:
- kube-apiserver:
.spec.kubernetes.kubeAPIServer.featureGates - kubelet:
.spec.kubernetes.kubelet.featureGatesor.spec.provider.workers[].kubernetes.kubelet.featureGates
Seed
Disclaimer: The following configurations are relevant for Gardener
Operatorsthat have access toSeedcluster(s).
For Seed clusters, Vertical Pod Autoscaler features gates can be managed in seed.spec.settings.verticalPodAutoscaler.featureGates. There are no additional Kubernetes versions validation when configuring Seed clusters.
Garden
Disclaimer: The following configurations are relevant for Gardener
Operatorsthat have access toGardencluster(s).
For Garden clusters, Vertical Pod Autoscaler feature gates can be managed in garden.spec.runtimeCluster.settings.verticalPodAutoscaler.featureGates. There are no additional Kubernetes versions validation when configuring Garden clusters.