Descheduler

Scope: Cluster
Version: v1alpha1

Descheduler is a description of a single descheduler instance.

  • apiVersionstring
  • kindstring
  • metadataobject
    • metadata.namestring
  • specobject

    Required value

    Defines the behavior of a descheduler instance.

    • spec.deploymentTemplateobject

      Defines Template of a descheduler Deployment.

      • spec.deploymentTemplate.nodeSelectorobject
      • spec.deploymentTemplate.tolerationsarray of objects
        • spec.deploymentTemplate.tolerations.effectstring
        • spec.deploymentTemplate.tolerations.keystring
        • spec.deploymentTemplate.tolerations.operatorstring
        • spec.deploymentTemplate.tolerations.tolerationSecondsinteger
        • spec.deploymentTemplate.tolerations.valuestring
    • spec.deschedulerPolicyobject

      globalParameters and strategies follow the descheduler’s documentation.

      • spec.deschedulerPolicy.globalParametersobject

        Parameters that apply to all policies.

        • spec.deschedulerPolicy.globalParameters.evictFailedBarePodsboolean

          Allows Pods without ownerReferences and in failed phase to be evicted.

        • spec.deschedulerPolicy.globalParameters.evictLocalStoragePodsboolean

          Allows Pods using local storage to be evicted.

        • spec.deschedulerPolicy.globalParameters.evictSystemCriticalPodsboolean

          Allows eviction of Pods of any priority (including Kubernetes system Pods).

        • spec.deschedulerPolicy.globalParameters.ignorePvcPodsboolean

          Prevents Pods with PVCs from being evicted.

        • spec.deschedulerPolicy.globalParameters.maxNoOfPodsToEvictPerNamespaceinteger

          Restricts maximum of Pods to be evicted per namespace.

        • spec.deschedulerPolicy.globalParameters.maxNoOfPodsToEvictPerNodeinteger

          Restricts maximum of Pods to be evicted per node.

        • spec.deschedulerPolicy.globalParameters.nodeSelectorstring
      • spec.deschedulerPolicy.strategiesobject

        List of strategies with corresponding parameters for a given Descheduler instances.

        • spec.deschedulerPolicy.strategies.highNodeUtilizationobject

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

          • spec.deschedulerPolicy.strategies.highNodeUtilization.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.highNodeUtilization.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.highNodeUtilization.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.highNodeUtilization.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.highNodeUtilization.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.lowNodeUtilizationobject

          This strategy finds nodes that are under utilized and evicts Pods, if possible, from other nodes in the hope that recreation of evicted Pods will be scheduled on these underutilized nodes.

          • spec.deschedulerPolicy.strategies.lowNodeUtilization.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.lowNodeUtilization.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.lowNodeUtilization.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.lowNodeUtilization.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.lowNodeUtilization.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removeDuplicatesobject

          This strategy makes sure that there is only one Pod associated with a ReplicaSet (RS), ReplicationController (RC), StatefulSet, or Job running on the same node.

          • spec.deschedulerPolicy.strategies.removeDuplicates.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removeDuplicates.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removeDuplicates.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removeDuplicates.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removeDuplicates.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removeFailedPodsobject

          This strategy evicts Pods that are in failed status phase.

          • spec.deschedulerPolicy.strategies.removeFailedPods.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removeFailedPods.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removeFailedPods.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removeFailedPods.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removeFailedPods.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestartsobject

          This strategy makes sure that Pods having too many restarts are removed from nodes.

          • spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinityobject

          This strategy makes sure that Pods violating interpod anti-affinity are removed from nodes.

          • spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinityobject

          This strategy makes sure all Pods violating node affinity are eventually removed from nodes.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaintsobject

          This strategy makes sure that Pods violating NoSchedule taints on nodes are removed.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.

        • spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraintobject

          This strategy makes sure that Pods violating topology spread constraints are evicted from nodes.

          • spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.enabledboolean

            Required value

          • spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.namespaceFilterobject

            Restricts Namespaces to which this strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.nodeFilterobject

            Filters Nodes to which the strategy applies.

          • spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.nodeFitboolean

            If set to true, the descheduler will consider whether or not the Pods that meet eviction criteria will fit on other nodes before evicting them.

          • spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.priorityFilterobject

            Only Pods with priority lower than this will be descheduled.