1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-26 13:29:11 +01:00

skip eviction when pod creation time is below minPodAge threshold setting (#1475)

* skip eviction when pod creation time is below minPodAge threshold setting

In the default initialization phase of the descheduler, add a new
constraint to not evict pods that creation time is below minPodAge
threshold.

Added value:

- Avoid crazy pod movement when the autoscaler scales up and down.

- Avoid evicting pods when they are warming up.

- Decreases the overall cost of eviction as no pod will be evicted
  before doing significant amount of work.

- Guard against scheduling. Descheduling loops in situations where
  the descheduler has a different node fit logic from scheduler,
  like not considering topology spread constraints.

* Use *time.Duration instead of uint for MinPodAge type

* Remove '(in minutes)' from default evictor configuration table

* make fmt

* Add explicit name for Duration field

* Use Duration.String()
This commit is contained in:
Victor Gonzalez
2024-07-26 14:59:21 +02:00
committed by GitHub
parent f3569b5fe2
commit 55a0812ae6
5 changed files with 56 additions and 0 deletions

View File

@@ -41,6 +41,11 @@ func (in *DefaultEvictorArgs) DeepCopyInto(out *DefaultEvictorArgs) {
*out = new(api.PriorityThreshold)
(*in).DeepCopyInto(*out)
}
if in.MinPodAge != nil {
in, out := &in.MinPodAge, &out.MinPodAge
*out = new(v1.Duration)
**out = **in
}
return
}