Лучший способ узнать и установить лимиты ресурсов приложения / запрос к kubernetes - PullRequest
0 голосов
/ 17 января 2019

Надеюсь, вы можете помочь мне с этим!

Каков наилучший подход для получения и установки запроса и ограничения ресурсов для модулей?

Я думал об установке ожидаемого количества трафика и коде некоторых нагрузочных тестов, затем запустил один модуль с некоторыми «низкими пределами» и запускал нагрузочный тест до OOMed, затем снова настраивал (что-то вроде разгона) память до тех пор, пока не будет найдено узкое место. затем атаковать процессор, пока все не станет "стабильным" и так далее. Тогда я бы использовал этот «предел» в качестве «значения запроса» и использовал бы двойное значение «значения запроса» в качестве «предела» (или безопасного значения, основанного на результатах). Наконец, масштабируйте их для среднего трафика (фиксированное количество модулей) и установите правила автоматического масштабирования модулей для пиковых значений производительности.

Это хороший подход? Какие инструменты и показатели вы рекомендуете? Я использую Prometheus-оператор для мониторинга и Вегета для нагрузочного тестирования.

А как насчет вертикального автомасштабирования? ты использовал это? готово ли производство?

Кстати: я использую развернутое решение AWS с модулем terraform

Спасибо за чтение

Ответы [ 2 ]

0 голосов
/ 19 января 2019

VerticalPodAutoScaler больше заботится о том, чтобы Pod мог работать. Таким образом, он начинает с низкого уровня и удваивает память каждый раз, когда получает OOMKilled. Это может потенциально привести к перехвату ресурсов Pod. Он также ограничен, поскольку не учитывает недостаточную производительность. Если у вашего приложения недостаточно ресурсов, оно может по-прежнему отвечать, но не реагировать в сроки, которые вы считаете приемлемыми.

Я думаю, что вы подходите правильно, когда смотрите на приложение под нагрузкой и оцениваете, что оно должно выполнять так, как вы этого хотите. Я сомневаюсь, что могу предложить какие-либо инструменты, о которых вы еще не знаете, но если это поможет, в есть еще кое-что для обсуждения. Как правильно выбрать миллипоры процессоров для контейнера? и темы, ссылающиеся на него

0 голосов
/ 19 января 2019

Обычно я запускаю свои модули без ограничений и ресурсов. Затем я оставляю их на некоторое время под нормальной нагрузкой для сбора метрик потребления ресурсов.

Затем я устанавливаю запросы памяти и ЦП на + 10% от максимального потребления, полученного за тестовый период, и ограничивает + 25% запросов.

Это всего лишь пример стратегии, поскольку для этого не существует единого подхода, подходящего для всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...