The module does not have any mandatory parameters.

The module is enabled by default in the following bundles: Default, Managed. The module is disabled by default in the Minimal bundle.

How to explicitly enable the module…

Set the spec.enabled module parameter to true or false to explicitly enable or disable the module.

Example of enabling the descheduler module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: descheduler
spec:
  enabled: true

Example of disabling the descheduler module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: descheduler
spec:
  enabled: false

The module is configured using the ModuleConfig custom resource named descheduler (learn more about setting up Deckhouse…).

Example of the ModuleConfig/descheduler resource for configuring the module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: descheduler
spec:
  version: 1
  enabled: true
  settings: # <-- Module parameters from the "Parameters" section below.

Parameters

Schema version: 1

  • highNodeUtilizationboolean

    This strategy nodes that are under utilized and evicts pods in the hope that these pods will be scheduled compactly into fewer nodes.

    Default: false

  • lowNodeUtilizationboolean

    The descheduler finds underutilized nodes and evicts pods from overutilized nodes hoping that these pods will be rescheduled on underutilized ones.

    Default: false

  • nodeSelectorobject

    The same as the spec.nodeSelector pod parameter in Kubernetes.

    If the parameter is omitted or false, it will be determined automatically.

  • podLifeTimeboolean

    This strategy ensures that pods that are Pending for more than 24 hours are deleted from nodes.

    Default: false

  • removeDuplicatesboolean

    This strategy ensures that only one pod associated with ReplicaSet (RS), ReplicationController (RC), StatefulSet, or Job runs on a node.

    Default: false

  • removePodsHavingTooManyRestartsboolean

    This strategy ensures that pods having over a hundred container restarts (including init-containers) are removed from nodes.

    Default: false

  • removePodsViolatingInterPodAntiAffinityboolean

    This strategy ensures that all pods violating node affinity rules are removed from the nodes.

    Default: true

  • removePodsViolatingNodeAffinityboolean

    This strategy ensures that all pods violating anti-affinity rules are removed from the nodes.

    Default: true

  • removePodsViolatingNodeTaintsboolean

    This strategy ensures that pods violating NoSchedule taints on nodes are evicted.

    Default: false

  • removePodsViolatingTopologySpreadConstraintboolean

    This strategy ensures that pods violating the Pod Topology Spread Constraints are evicted from nodes.

    Default: false

  • tolerationsarray of objects

    The same as spec.tolerations for the Kubernetes pod.

    If the parameter is omitted or false, it will be determined automatically.

    • tolerations.effectstring
    • tolerations.keystring
    • tolerations.operatorstring
    • tolerations.tolerationSecondsinteger
    • tolerations.valuestring