Closed himanshu-kun closed 6 months ago
A few options were debated, and we finally decided to go with an approach that is similar to the one used by amazon ASG
g/g changes:
Add spec.provider.workers.clusterAutoscaler
to the shoot API that will expose these 5 fields to be set per node group
``` spec: provider: workers: - name: test-name clusterAutoscaler: scaleDownUtilizationThreshold: 0.5 scaleDownGpuUtilizationThreshold: 0.5 scaleDownUnneededTime: 1m scaleDownUnreadyTime: 1m maxNodeProvisionTime: 1m ```
g/extension changes:
machineDeployment
s to add these node group specific values as annotations on the machineDeployment
. If node group specific values are not provided then shoot defaults are to be added as annotations.autoscaler changes:
machineDeployment.GetOptions()
method in mcm_cloud_provider.go
to read the annotations on machineDeployment
s and add these node group specific options to the NodeGroupAutoscalingOptions
struct--nodes
flag to add these node group specific values. This then involves us updating the validation for this flag, and we would then be at a disadvantage should we go down a path of using node-group-auto-discovery /cc @timuthy for comments on the g/g changes
/close as all PRs are merged
/kind discussion /priority 3
What would you like to be added:
Autoscaler now supports configuring certain flags per worker group. Some example flags are:
This helps in more fine-grained control over a cluster and how autoscaler works for that cluster. https://github.com/kubernetes/autoscaler/issues/3583 -> upstream issue which introduced this https://github.com/kubernetes/autoscaler/pull/3789 -> PR with first implementations
With time, more and more options are being made configurable on worker group level , which makes it essential for gardener to also allow configuring them by our end-users.
Some issue which can be solved by this are: https://github.com/gardener/autoscaler/issues/227 (by reducing
scale-down-unneeded-time
for the required nodegroup also)The change should require changes in shoot API also , some related discussions are already ongoing https://github.com/gardener/gardener/issues/8142
Changes/PRs that need to be filed to close this story
MCD
and add them toNodeGroupAutoscalingOptions
> https://github.com/gardener/autoscaler/pull/257MCD
s with these node group specific values as annotationsWhy is this needed: For better configurability of gardener autoscaler