-
Feature Request
-
Resolution: Unresolved
-
Normal
-
None
-
openshift-4.18
-
None
-
Product / Portfolio Work
-
None
-
False
-
-
None
-
None
-
None
-
-
None
-
None
-
None
-
None
-
None
1. Proposed title of this feature request
Enhance OpenShift Descheduler to Evict Pods with preferredDuringSchedulingIgnoredDuringExecution Node Affinity
2. What is the nature and description of the request?
Currently, OpenShift's descheduler does not support evicting pods that have preferredDuringSchedulingIgnoredDuringExecution node affinity. When a preferred node becomes available after being previously unhealthy, the descheduler does not move the pods back to their preferred node.
This RFE requests an enhancement to the OpenShift descheduler to recognize preferredDuringSchedulingIgnoredDuringExecution node affinity and evict pods when their preferred node becomes available. The change would enable automatic rebalancing of workloads, ensuring that pods migrate back to their optimal nodes without manual intervention.
3. Why does the customer need this? (List the business requirements here)
Business Impact:
Improved Workload Placement & Node Utilization:
Workloads that were forced onto non-optimal nodes due to node unavailability remain there indefinitely. This can lead to resource imbalance across the cluster. Supporting eviction based on preferredDuringSchedulingIgnoredDuringExecution allows the cluster to self-heal and optimize workload placement.
Reduced Operational Overhead:
Today, admins must manually drain and reschedule workloads to return them to their preferred nodes. Automating this process eliminates manual intervention, reducing operational burden and the risk of human error.
Better Performance & Cost Optimization:
Certain workloads might perform better on specific nodes due to hardware configurations, network proximity, or locality constraints. Allowing pods to return to preferred nodes ensures optimal performance and potentially lowers infrastructure costs by maximizing resource efficiency.
Consistent Behavior Across Affinity Types:
OpenShift’s descheduler currently supports eviction based on requiredDuringSchedulingIgnoredDuringExecution but does not consider preferredDuringSchedulingIgnoredDuringExecution. Adding support for both ensures consistency in scheduling behavior.
4. List any affected packages or components.
Descheduler Operator
Impact of Implementing This RFE:
Automatic Rebalancing of Workloads:
Pods will be moved back to preferred nodes when they become available, leading to better resource allocation and optimized scheduling.
Alignment with Upstream Kubernetes Descheduler:
Enhancing OpenShift's descheduler to support this feature ensures better alignment with upstream Kubernetes scheduling behavior.
More Efficient Use of Cluster Resources:
Over time, this change will result in a better distribution of workloads, avoiding prolonged imbalances caused by suboptimal node selection.