Троттлинг в Kubernetes. Или как настроить лимиты, чтобы приложения не “тормозили”

Главная рекомендация - отказаться от лимитов!
А теперь подробнее.
Когда у вас много пользователей используют один кластер Kubernetes, возникает вопрос - как задать квоты, чтобы и приложениям хватало ресурса, и не случилось ситуации, когда из-за одного прожорливого соседа страдают все поды на ноде?
Начну с того, что самым распространенным способом является задание request и limit по CPU и RAM. С оперативной памятью все достаточно просто - при превышении потребления, OMM-Killer остановит процесс. А вот с CPU есть целый ряд нюансов и возможностей наступить на грабли.
Это происходит из-за того, что ресурс процессора делится не долями, а по времени.
Это можно представить так



















