Куберне количество стручков в соответствии с задачами
У меня есть определенная задача обработки, которую я хочу решить с kubernetes. Основная концепция заключается в том, что в рабочей очереди есть определенное количество элементов, которые я хочу обработать. Элементы могут быть добавлены в очередь и удалены, как только модуль завершит обработку. Предпочтительный рабочий процесс будет:
- Определение максимального количества стручков (например, 40)
- помещать элементы в очередь (например, 20)
- количество блоков создается в соответствии с количеством элементов в очереди (=>20)
- в то время как контейнеры все еще обрабатывают 20 элементов, еще 40 элементов помещаются в очередь, что приводит к созданию еще 20 блоков (максимальное количество которых достигнуто), и как только первые из них заканчиваются, дополнительные блоки создаются до конца очередь достигнута.
Есть ли какая-то сборка в решении с использованием kubectl? Используя шаблон работы, я могу определить количество параллельных модулей, но они работают все время до успеха и не масштабируются по другим критериям.
Спасибо за вашу помощь!
1 ответ
Решение
Используйте Горизонтальный Pod Autoscaler. Возможно, вам придется определить пользовательские метрики для получения количества элементов в очереди и использовать его в HPA.