-
Notifications
You must be signed in to change notification settings - Fork 687
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perform a scheduling simulation in dry-run mode. #1584
Comments
/assign |
IIUC: Descheduler dry run mode
So I understand the original mechanism to be reasonable. |
Here is an example:
In a non-dry-run scenario, only one Pod on node A can be evicted because the second Pod cannot be successfully rescheduled onto another node. However, in dry-run mode, both Pods on node A are reported as evictable, which is inaccurate since it does not consider the feasibility of rescheduling these Pods onto other nodes. |
Indeed, we don't need to simulate scheduling in a dry-run scenario. More accurately, we should reserve the resources for the Pods that can be evicted in a dry-run scenario, ensuring the accuracy of Pod evictions in dry-run mode. This means that when identifying which Pods could be evicted, the Descheduler should account for the resource usage of those Pods as if they were actually being evicted and not rescheduled, thus providing a more accurate reflection of what would happen in a non-dry-run operation. |
In real-world usage scenarios, users would first use the dry-run mode to confirm how many Pods and which specific Pods can be evicted. If in practice only 1 Pod can actually be evicted, but the dry-run mode reports that 10 Pods can be evicted, this is unacceptable. Users rely on the accuracy of dry-run outputs to plan and understand the impact of eviction actions, so the dry-run results must realistically reflect what would happen in an actual operation. |
After the offline talking , I understood the background and I think that this issue was reasonable. 🤔 |
Is your feature request related to a problem? Please describe.
Scenario: in dry-run mode.If the descheduler determines that 10 pods in the cluster can be evicted, and each of these pods requires 8 cores and 16 GB of memory (8c/16g), while the total available resources in the cluster are sufficient, but only one node meets the 8c/16g requirement. Under the current logic, all pods are considered evictable.
In dry-run mode, no resources are deducted because the pods are not actually evicted and rescheduled, nor is scheduling simulated.
loged:
Using dry-run to preview which pods can be rescheduled may mislead users and cause unexpected issues.
Describe the solution you'd like
In dry-run mode, pod scheduling can be simulated to find fitting nodes. This enhances the accuracy of the dry-run results.
Describe alternatives you've considered
What version of descheduler are you using?
master
descheduler version:
Additional context
The text was updated successfully, but these errors were encountered: