-
Notifications
You must be signed in to change notification settings - Fork 375
Labels
concept/binpack|spreadkind/proposalCreate a report to help us improveCreate a report to help us improve
Milestone
Description
What is your proposal:
In a cluster, after a period of time, it is possible that certain nodes may experience an imbalance in different types of resources. For example, a node might have a CPU allocation rate of 90%, while its memory allocation rate is only 50%. This can lead to the memory resources on that node becoming fragmented and underutilized. Currently, there is no rescheduling strategy that specifically addresses this type of resource imbalance.
Why is this needed:
We hope to reduce the problem of resource fragmentation caused by the imbalance of different types of resources within a node, which prevents the full utilization of cluster resources.
Is there a suggested solution, if so, please add it:
- Adding a new plugin that will reschedule nodes in the cluster where the imbalance in different types of resources exceeds a certain threshold (configurable). This plugin will work in conjunction with the scheduler's NodeResourcesBalancedAllocation plugin to schedule new Pods in a way that achieves a more balanced allocation of different types of resources within the machines.
- The imbalance in different types of resources on a node can be described using the standard deviation (std), which is consistent with the NodeResourcesBalancedAllocation plugin in the default scheduler.(https://github.com/kubernetes/kubernetes/blob/b7c55c2ed2f8a5522e53e839c615168550c0966e/pkg/scheduler/framework/plugins/noderesources/balanced_allocation.go#L153C2-L172)
- On the node, Pods that result in a smaller standard deviation (std) after eviction should have a higher eviction priority.
- Rely on the ReservationFirst eviction mode in koordinator to ensure the stability of the eviction process.
songtao98 and LY-todaysongtao98
Metadata
Metadata
Assignees
Labels
concept/binpack|spreadkind/proposalCreate a report to help us improveCreate a report to help us improve