Descheduler
Scope: Cluster
Version: v1alpha1
Descheduler is a description of a single descheduler instance.
- apiVersion
- kind
- metadata
- metadata.name
- spec
Required value
Defines the behavior of a descheduler instance.
- spec.deploymentTemplate
Defines Template of a descheduler Deployment.
- spec.deploymentTemplate.nodeSelector
- spec.deploymentTemplate.tolerations
- spec.deploymentTemplate.tolerations.effect
- spec.deploymentTemplate.tolerations.key
- spec.deploymentTemplate.tolerations.operator
- spec.deploymentTemplate.tolerations.tolerationSeconds
- spec.deploymentTemplate.tolerations.value
- spec.deschedulerPolicy.globalParameters
Parameters that apply to all policies.
- spec.deschedulerPolicy.globalParameters.evictFailedBarePods
Allows Pods without
ownerReferences
and infailed
phase to be evicted. - spec.deschedulerPolicy.globalParameters.evictLocalStoragePods
Allows Pods using local storage to be evicted.
- spec.deschedulerPolicy.globalParameters.evictSystemCriticalPods
Allows eviction of Pods of any priority (including Kubernetes system Pods).
- spec.deschedulerPolicy.globalParameters.ignorePvcPods
Prevents Pods with PVCs from being evicted.
- spec.deschedulerPolicy.globalParameters.maxNoOfPodsToEvictPerNamespace
Restricts maximum of Pods to be evicted per namespace.
- spec.deschedulerPolicy.globalParameters.maxNoOfPodsToEvictPerNode
Restricts maximum of Pods to be evicted per node.
- spec.deschedulerPolicy.globalParameters.nodeSelector
- spec.deschedulerPolicy.strategies
List of strategies with corresponding parameters for a given Descheduler instances.
- spec.deschedulerPolicy.strategies.highNodeUtilization
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.enabled
Required value
- spec.deschedulerPolicy.strategies.highNodeUtilization.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.highNodeUtilization.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.highNodeUtilization.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.lowNodeUtilization
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.enabled
Required value
- spec.deschedulerPolicy.strategies.lowNodeUtilization.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.lowNodeUtilization.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.lowNodeUtilization.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removeDuplicates
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.enabled
Required value
- spec.deschedulerPolicy.strategies.removeDuplicates.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removeDuplicates.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removeDuplicates.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removeFailedPods
This strategy evicts Pods that are in failed status phase.
- spec.deschedulerPolicy.strategies.removeFailedPods.enabled
Required value
- spec.deschedulerPolicy.strategies.removeFailedPods.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removeFailedPods.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removeFailedPods.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts
This strategy makes sure that Pods having too many restarts are removed from nodes.
- spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.enabled
Required value
- spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removePodsHavingTooManyRestarts.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity
This strategy makes sure that Pods violating interpod anti-affinity are removed from nodes.
- spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.enabled
Required value
- spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingInterPodAntiAffinity.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity
This strategy makes sure all Pods violating node affinity are eventually removed from nodes.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.enabled
Required value
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeAffinity.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints
This strategy makes sure that Pods violating NoSchedule taints on nodes are removed.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.enabled
Required value
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingNodeTaints.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.
- spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint
This strategy makes sure that Pods violating topology spread constraints are evicted from nodes.
- spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.enabled
Required value
- spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.namespaceFilter
Restricts Namespaces to which this strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.nodeFilter
Filters Nodes to which the strategy applies.
- spec.deschedulerPolicy.strategies.removePodsViolatingTopologySpreadConstraint.nodeFit
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.priorityFilter
Only Pods with priority lower than this will be descheduled.