Kubernetes HPA Автоматическое масштабирование скорости - PullRequest
1 голос
/ 24 октября 2019

Мы определили HPA для приложения, которое будет иметь минимальные 1 и 4 максимальные реплики с порогом 80% процессора.

То, что мы хотели, было, если процессор pod превышает 80%, приложение должнобыть увеличен на 1 за один раз. Вместо этого происходит масштабирование приложения до максимального количества реплик.

Как определить скорость масштабирования для масштабирования 1 модуля за раз. И снова, если один из модулей потребляет более 80% процессорного времени, увеличьте масштаб еще одного модуля, но не максимально допустимых копий.

Дайте мне знать, как этого добиться.

Ответы [ 3 ]

1 голос
/ 26 октября 2019

Прежде всего, загрузка ЦП 80% - это не порог, а целевое значение.

Алгоритм HPA для расчета требуемого количества реплик основан на следующей формуле:

X = N * (C/T)

Где:

  • X: желаемое количество реплик
  • N:текущее количество реплик
  • C: текущее значение метрики
  • T: целевое значение для метрики

Другими словами, алгоритм стремитсяпри подсчете количества реплик, которые сохраняют наблюдаемое значение метрики как можно ближе к целевому значению.

В вашем случае это означает, что если средняя загрузка ЦП в модулях вашего приложения ниже 80%, HPAимеет тенденцию уменьшать количество реплик (чтобы увеличить загрузку процессора оставшимися модулями). С другой стороны, если средняя загрузка ЦП по модулям превышает 80%, HPA имеет тенденцию увеличивать количество реплик, так что использование ЦП отдельными модулями уменьшается.

Количество реплик, которыеДобавление или удаление за один шаг зависит от того, насколько далеко текущее значение метрики находится от целевого значения, а также от текущего числа реплик. Это решение является внутренним для алгоритма HPA, и вы не можете напрямую влиять на него. Единственный контракт, который HPA заключает со своими пользователями, заключается в том, чтобы поддерживать значение метрики как можно ближе к целевому значению.

Если вам нужно очень специфическое поведение автоматического масштабирования, вы можете написать собственный контроллер (или оператор)для автоматического масштабирования вашего приложения вместо использования HPA.

0 голосов
/ 25 октября 2019

HPA имеет полный контроль над масштабированием на сегодняшний день. Точную настройку масштаба можно выполнить только с помощью следующего параметра:

- горизонтальная-под-автоматическая-масштабирование-вниз-стабилизация

Хорошая новость заключается в том, что существуетпредложение для Конфигурируемая скорость увеличения / уменьшения для HPA

0 голосов
/ 24 октября 2019

Это - https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details - расширяет алгоритм, который использует HPA, включая формулу для расчета количества «желаемых реплик».

Если я помню, в (некоторые) произошли некоторые (положительные) измененияHPA algo с v1.12.

...