Автоматическое масштабирование Kubernetes недостаточно быстро - PullRequest
0 голосов
/ 07 мая 2018

Я работаю над проектом, который развернут в Kubernetes. Система состоит из нескольких микросервисов, один из которых выполняет интенсивную работу ЦП в течение 4-5 секунд при запросе через HTTP.

Мы находимся в ситуации, когда пользователи могут вызывать эту конечную точку много раз одновременно в течение короткого периода времени (возможно, в течение миллисекунд). Меня беспокоит то, что автоматическое масштабирование не может загружать новые модули достаточно быстро, чтобы удовлетворить потребности, и что несколько запросов будут отправляться на один модуль, что приведет к снижению производительности для каждого из этих запросов HTTP.

Приложение, запущенное в контейнере, фактически загружает новый процесс при каждом запросе. Это означает, что приложение может использовать более одного ядра при обработке более одного запроса.

Так что вопрос

Есть ли способ сделать молниеносно быстрым автоматическое масштабирование, т.е. отвечая в течение миллисекунд? Как эта проблема решается в других проектах?

Спасибо

1 Ответ

0 голосов
/ 08 мая 2018

Автоматическое масштабирование POD основано на показателях, которые извлекаются из запущенных модулей с помощью инструмента heapster. Этот инструмент по умолчанию очищает данные каждые 60 секунд. Кроме того, очистка данных занимает значительное количество времени (в секундах) для завершения (чем больше POD, тем дольше требуется время).

Тем не менее, должно быть ясно, что автоматическое масштабирование не может быть выполнено на скорости, которую вы требуете (миллисекунды).

«Решение», которое у вас есть, - это выделение нескольких POD, которые смогут разумно поддерживать ваш трафик во время пика. Это, конечно, пустая трата системных ресурсов, когда вы не в пике.

...