Skip to main content

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.

Important

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.

Warning

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.

Important

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.