Есть ли известный метод определения порогового значения автоматического масштабирования?
Есть ли известный метод / ключевое слово / тема, чтобы решить, как определить пороговое значение автоматического масштабирования?
Возьмем, к примеру, K8s HPA. Я знаю только, что могу установить некоторые инструменты мониторинга, а затем проверить использование памяти, отображаемое на графике моими глазами, чтобы определить правильное пороговое значение 100Mi. Но почему бы не установить 99Mi, почему бы не установить 101Mi? Я считаю, что это слишком ручной метод.
- type: Resource
resource:
name: memory
target:
type: AverageValue
averageValue: 100Mi
Так как я не осваиваю информатику, хочу спросить
Есть ли известный способ решения такого рода проблем?
Или какой конечно накроет эту проблему?
Или по какому ключевому слову искать в академической статье?
1 ответ
Чтобы отобразить эту информацию без графика, вы можете использовать metrics server
. Запуск его в кластере позволяет использовать узлы и отдельные модули черезkubectl top
команда.
Вот пример, в котором я проверяю ресурсы узла:
➜ ~ kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
minikube 580m 28% 1391Mi 75%
А для стручка:
➜ ~ kubectl top pod
NAME CPU(cores) MEMORY(bytes)
front-end 0m 28Mi
Вы также можете увидеть использование ресурсов в отдельных контейнерах, а не в контейнерах, используя параметр --containers.
Я предполагаю, что если вы используете HPA, он у вас уже установлен, но стоит знать, что если вы используете minikube, вы можете легко включить metrics server
с участием minikube addons enable metrics-server
. Если вы загружаете свой сервер с помощью kubeadm, вам необходимо установить его и настроить в соответствии со всеми его требованиями для правильной работы.
Наконец, вы всегда можете вручную проверить использование модуля с помощью exec
внутрь:
kubectl exec -it <name_of_the_pod> top
Вы можете сюда для получения дополнительной информации о проде autoscalers.