You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deprecate descheduler.alpha.kubernetes.io/evict in favor of descheduler.beta.kubernetes.io/evict with Boolean logic
In the past the descheduler was only checking the presence
of descheduler.alpha.kubernetes.io/evict annotation to force
a pod to be an eviction candidate.
descheduler.alpha.kubernetes.io/evict=false was producing the
same effect of descheduler.alpha.kubernetes.io/evict=true.
If the user wants to exclude a specific pod from the descheduler
actions, the suggested solution was to re-create it
setting an higher priority.
This could potentially work for best effort pods that can
be easily recreated but it's not a viable solution for other use
cases like VMs (executed in pod) that can be temporarily
excluded from the descheduler action without the need to reboot
them.
Let's deprecate descheduler.alpha.kubernetes.io/evict introducing
descheduler.beta.kubernetes.io/evict with proper Boolean logic.
Signed-off-by: Simone Tiraboschi <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1013,10 +1013,16 @@ never evicted because these pods won't be recreated. (Standalone pods in failed
1013
1013
best effort pods are evicted before burstable and guaranteed pods.
1014
1014
* All types of pods with the annotation `descheduler.alpha.kubernetes.io/evict` are eligible for eviction. This
1015
1015
annotation is used to override checks which prevent eviction and users can select which pod is evicted.
1016
+
This annotation is deprecated and could be ignored in future releases. Please use `descheduler.beta.kubernetes.io/evict=true|false` instead.
1017
+
* `descheduler.beta.kubernetes.io/evict` annotation can be used to selectively force eviction eligibility.
1018
+
All types of pods with the annotation `descheduler.beta.kubernetes.io/evict=true` are eligible for eviction.
1019
+
This annotation is used to override checks which prevent eviction and users can select which pod is evicted.
1016
1020
Users should know how and if the pod will be recreated.
1017
1021
The annotation only affects internal descheduler checks.
1022
+
`descheduler.beta.kubernetes.io/evict=false`will force a pod to be considered not eligible for eviction.
1018
1023
The anti-disruption protection provided by the [/eviction](https://kubernetes.io/docs/concepts/scheduling-eviction/api-eviction/)
1019
1024
subresource is still respected.
1025
+
If both `descheduler.alpha.kubernetes.io/evict` and `descheduler.beta.kubernetes.io/evict` are set at the same time, the value of `descheduler.beta.kubernetes.io/evict` will be consumed.
1020
1026
* Pods with a non-nil DeletionTimestamp are not evicted by default.
1021
1027
1022
1028
Setting `--v=4` or greater on the Descheduler will log all reasons why any pod is not evictable.
description: "Pod is evicted because it is bound to a PV and evictLocalStoragePods = false, but it has scheduler.alpha.kubernetes.io/evict annotation",
510
+
description: "Pod is evicted because it is bound to a PV and evictLocalStoragePods = false, but it has descheduler.alpha.kubernetes.io/evict annotation",
description: "Pod is evicted because it is bound to a PV and evictLocalStoragePods = false, but it has descheduler.beta.kubernetes.io/evict=true annotation",
description: "Pod is evicted because it has a priority higher than the configured priority threshold, but it has scheduler.alpha.kubernetes.io/evict annotation",
638
+
description: "Pod is evicted because it has a priority higher than the configured priority threshold, but it has descheduler.beta.kubernetes.io/evict=true annotation",
description: "Pod is evicted because it has system critical priority, but evictSystemCriticalPods = true and it has scheduler.alpha.kubernetes.io/evict annotation",
663
+
description: "Pod is evicted because it has system critical priority, but evictSystemCriticalPods = true and it has descheduler.beta.kubernetes.io/evict=true annotation",
description: "Pod is evicted because it has a priority higher than the configured priority threshold, but evictSystemCriticalPods = true and it has scheduler.alpha.kubernetes.io/evict annotation",
688
+
description: "Pod is evicted because it has a priority higher than the configured priority threshold, but evictSystemCriticalPods = true and it has descheduler.beta.kubernetes.io/evict=true annotation",
0 commit comments