Descheduler policy configuration

The descheduler policy governs plugin selection and behavior. You configure it by editing a ConfigMap in the kube-system namespace. MKE automatically detects any updates and restarts the descheduler Pods to apply them.

Locate the descheduler policy

The policy.yaml key is located in the kube-system/ucp-descheduler-policy ConfigMap. The document must use the DeschedulerPolicy API version supported by the bundled ucp-descheduler image — for example, apiVersion: descheduler/v1alpha2 and kind: DeschedulerPolicy.

On a fresh enable, or after a clean install, profiles may be empty. The descheduler process runs but performs no plugin work until you add at least one profile.

Update the descheduler policy

To update the descheduler policy, edit the policy.yaml key, and either apply a manifest that sets data.policy.yaml or run the following command:

kubectl edit configmap ucp-descheduler-policy -n kube-system

After you save the valid policy.yaml key, MKE automatically restarts the descheduler Pods using a hash-based rollout to pick up the changes.

Each profile you enable must match the pluginConfig requirements of your descheduler version. Refer to the Kubernetes descheduler documentation for plugin-specific configuration — for example,``RemovePodsViolatingNodeTaints``.

Important

Descheduler evicts Pods, so make sure to test policy changes in non-production clusters before applying them to production. Take nodeFit and cluster size into consideration, as if too few suitable nodes are available, evicted workloads may remain in a Pending state.