Scheduling Profiles
Configuring Scheduling Profiles in CKS
Scheduling Profiles in Kubernetes
With Scheduling Profiles, users can customize the behavior of scheduling Pods onto Nodes in order to meet the requirements for their workloads. CoreWeave has several Scheduling Profiles, detailed below.
The default-scheduler
Profile is automatically used if customers do not explicitly set an alternative. CoreWeave strongly recommends continuing to use the default Profile, default-scheduler
, as this Profile is suitable for scheduling workloads in most cases. Unless you have a specific use case that requires it, there is no need to take action on your Scheduling Profile.
CKS Scheduling Profiles
The default-scheduler
discourages scheduling workloads on Nodes that are incompatible with workload specifications. Other Scheduling Profiles should only be used in specific cases.
Profiles for edge cases
If you have a special case that requires a specialized scheduler, the following Profiles are also available.
best-spread-scheduler
Aims to distribute Pods onto Nodes in a way that optimizes balancing resource usage. Minimizes the likelihood of one Node becoming overloaded. By avoiding single points of failure in use cases where optimizing balance is crucial, best-spread-scheduler
ensures better resource utilization, cluster reliability, and fault tolerance."
least-allocated-scheduler
Prioritizes Nodes with the least allocated (i.e. most remaining available) resources when scheduling Pods. The least-allocated-scheduler
ensures that Nodes are neither overburdened nor underutilized. It's suitable for use cases where resource balancing is more of a priority than bin-packing capability.
binpack-scheduler
The binpack-scheduler
maximizes resource efficiency, reducing costs and energy usage. It focuses on packing the highest possible number of Pods onto the smallest number of Nodes, leaving any unused ones free. It also delays adding Nodes, to ensure that each currently available Node is used fully first.
proritize-image-locality
Favors Nodes that already have a locally cached version of Pod container images, helping to reduce the time spent pulling container images that would otherwise be pulled from remote sources. prioritize-image-locality
reduces the delays caused by container image pulling, which is especially useful in cases where quick startup times are critical or where container images are especially large.
exhaustive
Considers all Pods in the cluster, and evaluates the optimal scheduling option before choosing one. The exhaustive
Profile exhaustively evaluates all Node capacities.
The exhaustive
Scheduling Profile option should only be chosen if users have a high degree of competence with Kubernetes. This option can overload the API server unnecessarily and be comparatively costly and time-consuming, especially for clusters running a lot of Pods.
It is not currently possible for CKS customers to customize Scheduling Profiles. If you have a use case that requires something not covered on this page, please contact support.