Kubernetes - инициирует восстановление баланса стручков

У меня есть кластер kubernetes с несколькими настроенными узлами. Я хочу убедиться, что стручки эффективно распределены по узлам.

Я объясню:

Давайте предположим, что у меня есть два узла: Node 1 - 2gb ram Node 2 - 2gb ram

И у меня есть эти стручки: Pod 1 - 1gb ram on Node 1 Pod 2 - 100mb ram on Node 1 Pod 3 - 1gb ram on Node 2 Pod 4 - 100mb ram on Node 2

Хорошо, теперь проблема: допустим, я хочу добавить модуль с 1 ГБ оперативной памяти в кластер. В настоящее время нет места ни в одном узле, поэтому kubernetes не сделает этого (если я не добавлю другой узел). Интересно, есть ли способ, которым kubernetes увидит, что он может переместить Pod 3 в узел 1, чтобы освободить место для нового pod?

Помогите

1 ответ

Проект инкубатора Descheduler в Kubernetes в конечном итоге будет интегрирован в Kubernetes для обеспечения возможности восстановления баланса. Это может быть вызвано недостаточным / чрезмерным использованием ресурсов узла, как предполагает ваш случай, или по другим причинам, например изменениям в узлах или сходствах.

В вашем случае вы можете запустить descheduler с LowNodeUtilization стратегия и тщательно настроенные пороги, чтобы некоторые стручки были выселены и добавлены обратно в очередь стручков после нового стручка 1 ГБ.

Другой метод может использовать классы приоритета для модуля pod, чтобы вызвать удаление модуля pod с более низким приоритетом и освободить место для нового входящего задания объемом 1 ГБ. Приоритеты модуля включены по умолчанию, начиная с версии 1.11. Приоритеты не должны быть механизмом перебалансировки, но я упоминаю об этом, потому что это жизнеспособное решение для обеспечения возможности планирования входящего модуля с более высоким приоритетом. Приоритеты устарели старого перепланировщика, который будет удален в 1.12.

Изменить - включить образец политики

Политика, которую я использовал для проверки этого ниже:

apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
  "LowNodeUtilization":
     enabled: true
     params:
       nodeResourceUtilizationThresholds:
         thresholds:
           "memory": 50
         targetThresholds:
           "memory": 51
           "pods": 0
Другие вопросы по тегам