Объединяет ли 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 через несколько месяцев.