Проект инкубатора 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