Объединяет ли Kubernetes контейнеры / контейнеры для минимизации фрагментации ресурсов?

Мы использовали AWS-ECS для составления расписания наших контейнеров. Самая насущная проблема, которую я вижу с ECS, - это "фрагментация ресурсов".

Скажем, у меня есть следующие определения задач / модулей с соответствующими требованиями к ресурсам:

  POD    CPU    Desired  Total_CPU
- task1  1024      2       2048
- task2  512       4       2048
- task3  256       1       256

(Сохраняя только требования к процессору для простоты)

Если мы рассмотрим виртуальную машину с доступным CPU=2048, нам потребуется как минимум 3 виртуальные машины, чтобы запустить вышеупомянутые службы.

Более того, для развертывания Blue Green теоретически нам понадобится всего одна виртуальная машина с 2048 процессорами.

Однако, поскольку развертывания происходят со временем, контейнеры будут распределены по всем доступным виртуальным машинам. Это сделает развертывание Blue Green слишком долгим (или даже неудачным) из-за недоступности ресурсов.

Итак, чтобы развертывание Blue Green работало предсказуемо, нам понадобится еще много дополнительных виртуальных машин (больше $$$) в кластере.

Я хотел бы знать, предоставляет ли Kubernetes такую ​​функцию, которая объединит модули, чтобы сохранить минимальную фрагментацию ресурсов.

1 ответ

Решение

Kubernetes в настоящее время не перепланирует стручки, чтобы перебалансировать их между узлами, но планирование начало включать перепланировщик для этой цели в нашу версию 1.3 через несколько месяцев.

Другие вопросы по тегам