Skip to content

Releases: volcano-sh/descheduler

v0.1.0

24 Jan 10:47
290afb0
Compare
Choose a tag to compare

What's new

Welcome to the first release of Volcano Descheduler! 🚀 🎉 📣

Volcano decheduler's capability is based on https://github.com/kubernetes-sigs/descheduler.git, with the following new features:

Descheduling via crontab or fixed interval

Users can deploy the Volcano descheduler as a Deploment type workload instead of a cronJob. Then specify the command line parameters to run the descheduler according to cronTab expression or fixed interval.

cronTab scheduled task: Specify the parameter --descheduling-interval-cron-expression='0 0 * * *', which means to run descheduling once every morning.

Fixed interval: Specify the parameter --descheduling-interval=10m, which means descheduling will be run every 10 minutes.

And please notice that --descheduling-interval has a higher priority than --descheduling-interval-cron-expression, the descheduler’s behavior is subject to the --descheduling-interva setting when both parameters are set.

Load Aware Descheduling

In the process of kubernetes cluster governance, hotspots are often formed due to high CPU, memory and other utilization conditions, which not only affects the stable operation of Pods on the current node, but also leads to a surge in the chances of node failure. In order to cope with problems such as load imbalance of cluster nodes and dynamically balance the resource utilization rate among nodes, it is necessary to construct a cluster resource view based on the relevant monitoring metrics of nodes, so that in the cluster governance phase, through real-time monitoring, it can automatically intervene to migrate some Pods on the nodes with high resource utilization rate to the nodes with low utilization rate, when high resource utilization rate, node failure, and high number of Pods are observed.

The native descheduler only supports load-aware scheduling based on Pod request, which evicts Pods on nodes with higher utilization rates, thus equalizing resource utilization among nodes and avoiding overheating of individual node. However, Pod request does not reflect the real resource utilization of the nodes, so Volcano implements descheduling based on the real load of the nodes, by querying the metrics exposed by nodes, more accurate descheduling is performed based on the real load of CPU and Memory.

For detailed introduction and user guide about load-aware descheduling, please refer to: Load-aware Descheduling | Volcano.

Changes