Куберне количество стручков в соответствии с задачами

У меня есть определенная задача обработки, которую я хочу решить с kubernetes. Основная концепция заключается в том, что в рабочей очереди есть определенное количество элементов, которые я хочу обработать. Элементы могут быть добавлены в очередь и удалены, как только модуль завершит обработку. Предпочтительный рабочий процесс будет:

  • Определение максимального количества стручков (например, 40)
  • помещать элементы в очередь (например, 20)
  • количество блоков создается в соответствии с количеством элементов в очереди (=>20)
  • в то время как контейнеры все еще обрабатывают 20 элементов, еще 40 элементов помещаются в очередь, что приводит к созданию еще 20 блоков (максимальное количество которых достигнуто), и как только первые из них заканчиваются, дополнительные блоки создаются до конца очередь достигнута.

Есть ли какая-то сборка в решении с использованием kubectl? Используя шаблон работы, я могу определить количество параллельных модулей, но они работают все время до успеха и не масштабируются по другим критериям.

Спасибо за вашу помощь!

1 ответ

Решение

Используйте Горизонтальный Pod Autoscaler. Возможно, вам придется определить пользовательские метрики для получения количества элементов в очереди и использовать его в HPA.

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