Enable Extensible and Policy-rich Scheduling for Machines #645
Labels
enhancement
New feature or request
later
Items that should be tracked / kept in mind and shouldn't be implemented now but later.
Summary
This issue aims to enable extensible and policy-rich scheduling for VirtualMachines and MetalMachines in the onmetal-api. The proposed approach is to introduce the capability to plug-in and plug-out custom schedulers in the cluster that can act on specific sets of VirtualMachines.
There are mainly 2 objectives to implement,
To achieve this, the first action item is to introduce the Machine.Spec.SchedulerName API. This will allow users to specify which scheduler should be used to dispatch a particular machine. If not specified, the default scheduler will be used. Similar to the Pod.Spec.SchedulerName API in Kubernetes, this will provide greater flexibility and customization options for scheduling VirtualMachines.
The second action item is to enhance the MachinePool status to include utilization information about the host in terms of CPU, memory, and hugepages, among other parameters. The utilization information will be similar to that of the node API in Kubernetes. This will provide valuable information to the custom schedulers, enabling them to make better scheduling decisions that are more aligned with the needs of the applications running on the VirtualMachines. For example, a custom scheduler could be designed to allocate VirtualMachines to hosts that have more available resources, ensuring that the applications running on those VirtualMachines are not resource-starved and perform optimally.
Basic example
Motivation
To enable more efficient scheduling for the Machines.
The text was updated successfully, but these errors were encountered: