Descheduler

Descheduler - это инструмент, который помогает оптимизировать размещение подов в кластере.

Descheduler анализирует текущее состояние кластера и определяет поды, которые стоит переместить на другие узлы для достижения лучшей производительности, утилизации ресурсов или соответствия определенным правилам.

Перечень конфигурируемых параметров для сервиса:

Наименование параметра Описание параметра Значение параметра
resources.requests.cpu Запрашиваемые ресурсы CPU 500m
resources.requests.memory Запрашиваемые ресурсы памяти 256Mi
resources.limits.cpu Ограничения CPU 100m
resources.limits.memory Ограничения памяти 128Mi
deschedulingInterval Интервал времени между запусками descheduler 5m

Параметры deschedulerPolicy.strategies:

Наименование параметра Описание параметра Значение параметра
RemoveDuplicates.enabled Включение стратегии удаления дубликатов подов true
RemovePodsHavingTooManyRestarts.enabled Включение стратегии удаления подов с частыми перезапусками true
RemovePodsHavingTooManyRestarts.params.podsHavingTooManyRestarts.podRestartThreshold Порог перезапусков пода, при котором под будет удален 100
RemovePodsHavingTooManyRestarts.params.podsHavingTooManyRestarts.includingInitContainers Учитывать init контейнеры при подсчете перезапусков true
RemovePodsViolatingNodeTaints.enabled Включение стратегии удаления подов, нарушающих запреты узлов true
RemovePodsViolatingNodeAffinity.enabled Включение стратегии удаления подов, нарушающих аффинити узлов true
RemovePodsViolatingNodeAffinity.params.nodeAffinityType Тип аффинити узлов requiredDuringSchedulingIgnoredDuringExecution
RemovePodsViolatingInterPodAntiAffinity.enabled Включение стратегии удаления подов, которые нарушают анти-аффинити между подами true
RemovePodsViolatingTopologySpreadConstraint.enabled Включение стратегии удаления подов, нарушающих ограничения распределения топологии true
RemovePodsViolatingTopologySpreadConstraint.parapms.includeSoftConstraints Учитывать мягкие ограничения во время принятия решений об удалении false
LowNodeUtilization.enabled Включение стратегии низкой утилизации узлов true
LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.cpu Порог использования ресурсов CPU 20
LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.memory Порог использования ресурсов памяти 20
LowNodeUtilization.params.nodeResourceUtilizationThresholds.thresholds.pods Порог использования ресурсов подов 20
LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.cpu Целевой порог использования ресурсов CPU 50
LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.memory Целевой порог использования ресурсов памяти 50
LowNodeUtilization.params.nodeResourceUtilizationThresholds.targetThresholds.pods Целевой порог использования ресурсов подов 50