Node load distribution module (Descheduler)
Раздел «For cluster administrators»: быстрый переход по подразделам
На этой странице
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 name | Parameter description | Parameter value |
|---|---|---|
| resources.requests.cpu | Requested CPU Resources | 500m |
| resources.requests.memory | Requested memory resources | 256Mi |
| resources.limits.cpu | CPU Limits | 100m |
| resources.limits.memory | Memory Limits | 128Mi |
| deschedulingInterval | Time interval between descheduler runs | 5m |
DeschedulerPolicy.strategies parameters
| Parameter name | Parameter description | Parameter value |
|---|---|---|
| RemoveDuplicates.enabled | Enabling the Pod Duplicate Removal Strategy | true |
| RemovePodsHavingTooManyRestarts.enabled | Enabling a pod removal strategy with frequent restarts | true |
| RemovePodsHavingTooManyRestarts.params.podsHavingTooManyRestarts.podRestartThreshold | Pod restart threshold at which the pod will be deleted | 100 |
| RemovePodsHavingTooManyRestarts.params.podsHavingTooManyRestarts.includingInitContainers | Count init containers when counting restarts | true |
| RemovePodsViolatingNodeTaints.enabled | Enabling a removal strategy for pods that violate node restrictions | true |
| RemovePodsViolatingNodeAffinity.enabled | Enabling the removal strategy for pods that violate node affinity | true |
| RemovePodsViolatingNodeAffinity.params.nodeAffinityType | Node affinity type | requiredDuringSchedulingIgnoredDuringExecution |
| RemovePodsViolatingInterPodAntiAffinity.enabled | Enabling a policy to remove pods that violate anti-affinity between pods | true |
| RemovePodsViolatingTopologySpreadConstraint.enabled | Enabling strategydetection of hearths that violate topology distribution restrictions | true |
| RemovePodsViolatingTopologySpreadConstraint.parapms.includeSoftConstraints | Consider soft constraints when making deletion decisions | false |
| LowNodeUtilization.enabled | Enable Low Node Recycling Strategy | true |
| LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.cpu | CPU resource usage threshold | 20 |
| LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.memory | Memory resource usage threshold | 20 |
| LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.pods | Pod Resource Usage Threshold | 20 |
| LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.cpu | Target CPU resource usage threshold | 50 |
| LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.memory | Target Memory Threshold | 50 |
| LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.pods | Pod Resource Usage Target Threshold | 50 |
Additional information can be found at Kubernetes Scheduler and github.