Kubernetes - инициирует восстановление баланса стручков - PullRequest
0 голосов
/ 31 августа 2018

У меня есть кластер 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, чтобы освободить место для нового модуля?

Помощь

1 Ответ

0 голосов
/ 31 августа 2018

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

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

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

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

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

apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
  "LowNodeUtilization":
     enabled: true
     params:
       nodeResourceUtilizationThresholds:
         thresholds:
           "memory": 50
         targetThresholds:
           "memory": 51
           "pods": 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...