-
Notifications
You must be signed in to change notification settings - Fork 451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce new feature gate VPAForETCD
to use VPA for etcd autoscaling
#8984
Introduce new feature gate VPAForETCD
to use VPA for etcd autoscaling
#8984
Conversation
/hold as this uses an unreleased VPA version |
c70837a
to
5bc931c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the very interesting improvement.
I have a few questions/comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is one minor fix required, one idea which may or may not be worth implementing, and one question.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
4cdfec7
to
9ad9cfe
Compare
Also adapted the PR description to match the changed labels. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
Then we only need to get the VPA release in.
/assign |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR, and sorry for joining the review late (I was on leave). Apart from the above feedback, please also add
- some documentation for this new controller to https://github.com/gardener/gardener/blob/master/docs/concepts/gardenlet.md#controllers
- an integration test for this new controller to https://github.com/gardener/gardener/tree/master/test/integration/gardenlet
baa8120
to
5a523a6
Compare
5a523a6
to
b6a25b8
Compare
b6a25b8
to
e228f21
Compare
Updated to the new VPA release 1.1.1, which fixes the NPE and rebased. Also included changes for the license headers in the new files added by this commit. This is good to go from my side! |
e228f21
to
c6711cb
Compare
/retest |
/lgtm |
LGTM label has been added. Git tree hash: 175ab6b00bdbdd48251a68a19ddb10ac2fc8fa4f
|
How to categorize this PR?
/area auto-scaling
/area control-plane
/kind enhancement
What this PR does / why we need it:
The main reason why etcd currently uses HVPA is for limiting when VPA recommendations should be applied. The two use cases are preventing downscaling entirely, or limiting downscaling to the Shoot's maintenance window. Additionally, there are some "minimum change sizes" defined on the HVPA object, meaning that a change in resource requests smaller than the minimum change size will not be applied.
This PR introduces a method to achieve a similar functionality using plain VPA, making it possible to remove HVPA for etcd entirely in a next step.
In this PR we update to VPA version 1.1.1, which contains a new upstream feature, called
EvictionRequirements
, that allows us to limit evictions based on the scaling direction (is the workload being scaled up or being scaled down). Detailed information for this feature can be found in the original enhancement proposal.In detail, this PR
VPAForETCD
on gardenlet and garden-operatorVPAEvictionRequirementsController
to manage theEvictionRequirements
on VPA objects based on two new labels and a new annotationIntroduces the following changes in case operators have enabled the new featuregate for the gardenlet on their Seeds:
autoscaling.gardener.cloud/eviction-requirements: managed-by-controller
to indicate that theEvictionRequirements
on this VPA object will be managed by the new controllereviction-requirements.autoscaling.gardener.cloud/downscale-restriction: in-maintenance-window-only
in case of limiting scaling down to a Shoot's maintenance windoweviction-requirements.autoscaling.gardener.cloud/downscale-restriction: never
in case of denying scaling down entirelyShootClass
shoot.gardener.cloud/maintenance-window
to make the Shoot maintenance window accessible for the new controllerIf HVPA is enabled, the
VPAForETCD
feature gate takes precedence, so the etcds will be scaled like described above with plain VPA and the corresponding HVPA object will be removed.Release note:
A new feature gate named `VPAForETCD` is now introduced for gardenlet and gardener-operator. When enabled, VPA for etcd is used, regardless of the HVPA feature gate setting. The new VPA limits scaling down to a Shoot's maintenance window or even entirely based on the `ShootClass` in the same way as it is currently done for HVPA.