Skip to content

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.