koordinator-sh / koordinator

A QoS-based scheduling system brings optimal layout and status to workloads such as microservices, web services, big data jobs, AI jobs, etc.
https://koordinator.sh
Apache License 2.0
1.3k stars 322 forks source link

[proposal]How to rationally Evict pods so that high-load node utilization reaches a reasonable level #1975

Open LY-today opened 5 months ago

LY-today commented 5 months ago

What is your proposal: When descheduler evaluates which pod to expel to reduce the utilization of high-load nodes to a reasonable level, can descheduler perform matching calculations on the actual usage of the pod and the amount of eviction resources in advance?

Why is this needed: This can reduce the number of times a single node is repeatedly entered into the eviction logical unit, reduce the number of single node eviction instances, and indirectly improve the accuracy of the eviction results and the stability of the business while ensuring that hot issues are solved.

Is there a suggested solution, if so, please add it: evict pod priority selector:podNowResourceUsages >= nodeNowResourceUsages - nodeHighResourceThresholds * nodeResourceAllocatable

ps:If the community approves the proposal, I can provide PR

wzzcocoon commented 5 months ago

This proposal is very good, it solves my problems and troubles.

eahydra commented 5 months ago

Yes, it looks good to me. I checked the "evictPodsFromSourceNodes" function in descheduler's plugin LowNodeLoad and found some cases that need to be optimized, including the one you mentioned. Feel free to contribute. @LY-today

LY-today commented 3 months ago

Yes, it looks good to me. I checked the "evictPodsFromSourceNodes" function in descheduler's plugin LowNodeLoad and found some cases that need to be optimized, including the one you mentioned. Feel free to contribute. @LY-today

Thank you for your reply. I have submitted the PR. Thank you for your time to review it. https://github.com/koordinator-sh/koordinator/pull/2092

LY-today commented 2 months ago

Thanks to @enaguo for the inspiration