Skip to main content

Virtual Scheduler

By default, vCluster reuses the host cluster scheduler to schedule workloads. This saves computing resources, but also has some limitations:

  1. Labeling nodes inside the virtual cluster has no effect on scheduling, unless enabling real node syncing with syncBackChanges enabled.
  2. Draining or tainting nodes inside the virtual cluster has no effect on scheduling.
  3. You cannot use custom schedulers inside the virtual cluster.

Sometimes you want to label a node inside the virtual cluster to modify workload scheduling through features such as affinity or topology spreading. vCluster supports running a scheduler inside the virtual cluster instead of reusing the host cluster's scheduler. vCluster then only syncs pods that already have a node assigned to the host cluster. When using the virtual scheduler, you can taint and label nodes inside the virtual cluster without actually modifying the host cluster nodes.

When you enable the virtual scheduler, vCluster also enables these sync features:

Manually disabling the preceding features while using the virtual scheduler may result in incorrect pod scheduling.


info

If you also enable syncing PersistentVolumeClaim resources, vCluster mirrors relevant CSIStorageCapacity, CSINode, and CSIDriver resources to the virtual cluster so the scheduler can make storage-aware scheduling decisions.

Config reference​

virtualScheduler required object pro​

VirtualScheduler defines if a scheduler should be used within the virtual cluster or the scheduling decision for workloads will be made by the host cluster.

enabled required boolean false pro​

Enabled defines if this option should be enabled.