Closed ghostsquad closed 2 years ago
So, I didn't realize that the high and low strategies are in fact opposite. I thought highutilization would try to selectively lower the utilization of over-burdened nodes, and lowutilization would attempt to eliminate those nodes (by evicting, and having the pods move elsewhere).
I understand that, I have these backwards. Highutilization is the goal (thus it eliminates low utilization nodes through eviction). In theory, I could still run lowutilization
strategy, but I'd have to make sure the targets were sufficient different between these 2 strategies as to avoid a perpetual back and forth eviction.
Regardless of this misunderstanding, it seems when all nodes are under utilized, neither strategy does anything. I expect at minimum (at this point), that the highnodeutilization
strategy would loop through all under utilized nodes and begin evicting until node utilization reaches a specific threshold OR there are less than the NumberOfNodes
flag.
hi , thanks for raise this issue, actually we have a very similar issue: #725
Thank you. I'll close as duplicate
What version of descheduler are you using?
descheduler version: 0.23.1
Does this issue reproduce with the latest release?
Yes.
Which descheduler CLI options are you using?
What k8s version are you using (
kubectl version
)?kubectl version
OutputWhat did you do?
just applying the descheduler to a test/dev cluster for the first time. Nothing special.
What did you expect to see?
Here was the starting point, (from spotinst), which I'm trying to optimize.
4 Nodes, I expect to see at least one of the nodes to be cordoned and drained as to improve the utilization overall. I wouldn't mind this happening in cycles, where at least 1 node is cordoned & drained, waiting for pods to be rescheduled before then rechecking for utilization, and repeating until reaching some equilibrium.
What did you see instead?