Node load distribution module (Descheduler)

Descheduler is a tool that helps optimize the placement of pods in a cluster.

Descheduler analyzes the current state of the cluster and determines which pods should be moved to other nodes to achieve better performance, resource utilization, or compliance with certain rules.

To configure Descheduler in the client cluster interface of the Shturval platform:

  • in the side menu, open the Services and repositories section;
  • go to the Installed services page;
  • find the Node Load Distribution Module.

If the module is not displayed, go to the Services and Repositories section and open the Available Charts page, find the “shturval-descheduler” chart and click “Install”.

List of configurable parameters for the service
Parameter nameParameter descriptionParameter value
resources.requests.cpuRequested CPU Resources500m
resources.requests.memoryRequested memory resources256Mi
resources.limits.cpuCPU Limits100m
resources.limits.memoryMemory Limits128Mi
deschedulingIntervalTime interval between descheduler runs5m
DeschedulerPolicy.strategies parameters
Parameter nameParameter descriptionParameter value
RemoveDuplicates.enabledEnabling the Pod Duplicate Removal Strategytrue
RemovePodsHavingTooManyRestarts.enabledEnabling a pod removal strategy with frequent restartstrue
RemovePodsHavingTooManyRestarts.params.podsHavingTooManyRestarts.podRestartThresholdPod restart threshold at which the pod will be deleted100
RemovePodsHavingTooManyRestarts.params.podsHavingTooManyRestarts.includingInitContainersCount init containers when counting restartstrue
RemovePodsViolatingNodeTaints.enabledEnabling a removal strategy for pods that violate node restrictionstrue
RemovePodsViolatingNodeAffinity.enabledEnabling the removal strategy for pods that violate node affinitytrue
RemovePodsViolatingNodeAffinity.params.nodeAffinityTypeNode affinity typerequiredDuringSchedulingIgnoredDuringExecution
RemovePodsViolatingInterPodAntiAffinity.enabledEnabling a policy to remove pods that violate anti-affinity between podstrue
RemovePodsViolatingTopologySpreadConstraint.enabledEnabling strategydetection of hearths that violate topology distribution restrictionstrue
RemovePodsViolatingTopologySpreadConstraint.parapms.includeSoftConstraintsConsider soft constraints when making deletion decisionsfalse
LowNodeUtilization.enabledEnable Low Node Recycling Strategytrue
LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.cpuCPU resource usage threshold20
LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.memoryMemory resource usage threshold20
LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.podsPod Resource Usage Threshold20
LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.cpuTarget CPU resource usage threshold50
LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.memoryTarget Memory Threshold50
LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.podsPod Resource Usage Target Threshold50

Additional information can be found at Kubernetes Scheduler and github.