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
andstrategies
follow the descheduler’s documentation.- spec.deschedulerPolicy.globalParametersobject
Parameters that apply to all policies.
- spec.deschedulerPolicy.globalParameters.evictFailedBarePodsboolean
Allows Pods without
ownerReferences
and infailed
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.globalParameters.evictFailedBarePodsboolean
- spec.deschedulerPolicy.strategiesobject
List of strategies with corresponding parameters for a given Descheduler instances.
- spec.deschedulerPolicy.strategies.highNodeUtilizationobject
This strategy finds nodes that are over 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.highNodeUtilization.enabledboolean
- 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.lowNodeUtilization.enabledboolean
- 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.removeDuplicates.enabledboolean
- 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.removeFailedPods.enabledboolean
- 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.removePodsHavingTooManyRestarts.enabledboolean
- 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.removePodsViolatingInterPodAntiAffinity.enabledboolean
- 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.removePodsViolatingNodeAffinity.enabledboolean
- 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.removePodsViolatingNodeTaints.enabledboolean
- 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.
- spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.enabledboolean
- spec.deschedulerPolicy.strategies.highNodeUtilizationobject
- spec.deschedulerPolicy.globalParametersobject
- spec.deploymentTemplateobject