- Home
- Operations Guide
- Administer an MKE cluster
- Configure Kubernetes descheduler
- Descheduler policy configuration
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.