У модуля нет обязательных настроек.
Модуль включен по умолчанию в наборах модулей: Default
, Managed
.
Модуль выключен по умолчанию в наборе модулей Minimal
.
Модуль настраивается с помощью custom resource ModuleConfig
с именем descheduler
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/descheduler
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: descheduler
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- highNodeUtilizationбулевый
Эта стратегия находит узлы, которые недостаточно используются, и удаляет модули в надежде, что эти модули будут компактно распределены по меньшему количеству узлов.
По умолчанию:
false
- lowNodeUtilizationбулевый
Эта стратегия находит недоутилизированные узлы и вытесняет Pod’ы с нагруженных узлов (если это возможно) с надеждой, что они будут зашедулены на недоутилизированные узлы.
По умолчанию:
false
- nodeSelectorобъект
Структура, аналогичная
spec.nodeSelector
Kubernetes pod.Если ничего не указано или указано
false
— будет использоваться автоматика. - podLifeTimeбулевый
Эта стратегия гарантирует, что Pod’ы в состоянии Pending старше 24 часов будут удалены с узлов.
По умолчанию:
false
- removeDuplicatesбулевый
Эта стратегия гарантирует, что на одном узле работает только один Pod, связанный с ReplicaSet (RS), ReplicationController (RC), StatefulSet, или Job.
По умолчанию:
false
- removePodsHavingTooManyRestartsбулевый
Эта стратегия гарантирует, что Pod’ы, имеющие больше 100 перезапусков контейнеров (включая init-контейнеры), будут удалены с узлов.
По умолчанию:
false
- removePodsViolatingInterPodAntiAffinityбулевый
Эта стратегия гарантирует, что все Pod’ы, нарушающие node affinity, будут удалены с узлов.
По умолчанию:
true
- removePodsViolatingNodeAffinityбулевый
Эта стратегия гарантирует, что все Pod’ы, нарушающие anti-affinity, будут удалены с узлов.
По умолчанию:
true
- removePodsViolatingNodeTaintsбулевый
Эта стратегия гарантирует, что Pod’ы, нарушающие NoSchedule на узлах, будут удалены.
По умолчанию:
false
- removePodsViolatingTopologySpreadConstraintбулевый
Эта стратегия гарантирует, что Pod’ы, нарушающие Pod Topology Spread Constraints, будут вытеснены с узлов.
По умолчанию:
false
- tolerationsмассив объектов
Структура, аналогичная
spec.tolerations
в Kubernetes Pod.Если ничего не указано или указано
false
— будет использоваться автоматика.- tolerations.effectстрока
- tolerations.keyстрока
- tolerations.operatorстрока
- tolerations.tolerationSecondsцелочисленный
- tolerations.valueстрока