Всем привет!
Наличие Request и Limits одна из редких рекомендаций, которую стараются придерживаться как ИТ, так и ИБ-специалисты.
Самым частым вопросом с котором можно столкнуться при проработке – «А сколько надо? Как это можно понять?».
Например, с использованием утилиты Kubernetes Resource Recommender (KRR). Она анализирует данные, собираемые с
pod, из Prometheus и предоставляет рекомендаций по Requests/Limits для CPU/RAM конечному пользователю. С запросами, которые использует утилита для получения данных и с примерами ее работы можно ознакомиться в repo проекта.Альтернативный способ – Goldilocks. В основе результатов ее работы лежит механизм vertical-pod-autoscaler, запущенный в рекомендательном режиме. Подробнее о ней можно почитать в документации.
Хотя, даже зная какие ресурсы рекомендуется поставить конкретному ресурсу, можно столкнуться с некоторыми особенностями. Например, наличие Limits у CPU может привести к throttling, а наличие overcommit по RAM (Burstable QoS) более часто приводит к OOMKilled.
Если тема Вам интересна – рекомендуем посмотреть презентацию Henning Jacobs «Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latency», которую он рассказывал на HighLoad в 2018 году.