У модуля нет обязательных настроек.

Модуль включен по умолчанию в наборах модулей: Default, Managed. Модуль выключен по умолчанию в наборе модулей Minimal.

Как явно включить или отключить модуль…

Установите spec.enabled в true или false в настройках модуля для его явного включения или выключения.

Пример включения модуля descheduler:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: descheduler
spec:
  enabled: true

Пример выключения модуля descheduler:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: descheduler
spec:
  enabled: false

Модуль настраивается с помощью 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строка