Начиная с Kubernetes v1.18, v2beta2 API позволяет настраивать поведение масштабирования с помощью поля поведения Horizontal Pod Autoscalar (HPA). Я планирую применить HPA с настраиваемыми показателями к StatefulSet.
Вариант использования, который я рассматриваю, - это масштабирование с использованием настраиваемой метрики (например, количества пользовательских сеансов в моем приложении), но HPA не будет уменьшаться вообще. Этот вариант использования также описывается усовершенствованиями K8s SIG-Autoscaling - Настраиваемая скорость масштабирования для HPA ›› История 4: Масштабируйте как обычно, не уменьшайте.
behavior:
scaleDown:
policies:
- type: pods
value: 0
Пользовательские сеансы могут оставаться активными от минут до часов. Начиная с 1 реплики StatefulSet, когда количество пользовательских сеансов достигает верхнего предела (показанного с помощью сборщика Prometheus, а затем настроенного с использованием параметра настраиваемой метрики HPA), модули приложений будут масштабироваться. Новые модули начнут обслуживать новых пользователей.
Поскольку это StatefulSet, который нельзя просто резко уменьшить, мне нужна помощь в способах уменьшения масштаба, когда количество сеансов пользователей на новых репликах снижается до 0. Ссылка выше говорит о том, что уменьшение масштаба можно контролировать с помощью отдельного процесса. Не знаете, как это сделать? Ищем указатели.
Спасибо.