172 похожих чатов

Всем привет! Пытаюсь настроить горизонтальное автомасштабирование сервиса в k8s. На

данный момент масштабирование вверх работает нормально, но вот уменьшение количества под не отрабатывает совсем. Подскажите, пожалуйста, в чем может быть причина?
Значения параметров пробовал разные, всё равно не отрабатывает как нужно. По метрикам масштабирование идёт по памяти, cpu не грузится более 10 процентов. Конфиг деплоймента:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: name
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: $CI_PROJECT_NAME
behavior:
scaleDown:
stabilizationWindowSeconds: 60
policies:
- type: Percent
value: 100
periodSeconds: 15
scaleUp:
stabilizationWindowSeconds: 10
policies:
- type: Pods
value: 1
periodSeconds: 15
selectPolicy: Max
minReplicas: 3
maxReplicas: 6
metrics:
- resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
type: Resource
- resource:
name: memory
target:
type: Utilization
averageUtilization: 95
type: Resource

11 ответов

6 просмотров

а приложения ваши очищают память после спада нагрузки?) Попробуйте по CPU только поскейлиться

Илья-Бочаров Автор вопроса
Gennady [sga] Shelapugin
а приложения ваши очищают память после спада нагру...

Только CPU работает нормально. Память очищает, причём по метрикам потребление большое только на старте, происходит увеличение под, а затем потребление памяти уходит на уровень 80-85 процентов от реквеста и далее стабильно на этих значениях держит.

Илья Бочаров
Только CPU работает нормально. Память очищает, при...

Дык а почему тогда считается что не работает?

Илья-Бочаров Автор вопроса
Aleksey Lazarev
Дык а почему тогда считается что не работает?

для памяти указано среднее потребление в 95 процентов, как триггер масштабирования, но когда уровень опускается до 80-85, уменьшение количества под не происходит.

Илья Бочаров
для памяти указано среднее потребление в 95 процен...

а ты посмотри в колонке TARGETS. Или в статусе спеки current показатели

Илья-Бочаров Автор вопроса
Dmitry Sergeev 🇺🇦
а ты посмотри в колонке TARGETS. Или в статусе спе...

к сожалению, не имею доступа к k8s непосредственно, метрики по кубу смотрю по workload борде в графане. и для приложения отдельно смотрю по подам значения для jvm. Порядки потребления примерно 130-150 мбайт потребляет jvm, пода целиком 180-200, реквест 256 выставлен.

Илья Бочаров
для памяти указано среднее потребление в 95 процен...

там логика примерно такая. Если у тебя по нескольким метрикам автомасштабирование, он считает среднее для каждой из них. И масштабирование идет по той, которая больше определенного для нее target

Илья Бочаров
к сожалению, не имею доступа к k8s непосредственно...

merics api часто в качестве метрики для памяти берет container_memory_working_set_bytes, а не container_memory_usage_bytes. И OOMKiller по ней же приходит

Илья Бочаров
к сожалению, не имею доступа к k8s непосредственно...

эти таргеты ты можешь посмотреть в графане также, тебе нужны метрики из kube-state-metrics

Илья-Бочаров Автор вопроса
Dmitry Sergeev 🇺🇦
merics api часто в качестве метрики для памяти бер...

Попробую запросить доступ к этим данным у коллег, Спасибо за советы!

Илья Бочаров
Попробую запросить доступ к этим данным у коллег, ...

а ты сделай тогда график/таблицу в grafana, который складывает container_memory_working_set_bytes и делит их на количество текущих реплик, и сравни с averageUtilization

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта