неймспейсом, чтобы под неймспейс сразу выдавались требуемые ресурсы? Сейчас есть ResourceQuota, но если поду нужно больше памяти в процессе эксплуатации, но на ноде нет памяти, то под выселяется. Ставить request=limit не вариант, т.к. в неймспейсе еще должно быть немного места для деплоя в этом неймспейсе
https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/
а почему квота не подходит? у вас поды при запуске занимают все 100% ЦПУ?
вроде не то. Тут устанавливают ренж лимитов и реквестов. То есть если request != limit то под выселят на другую ноду, если на текущей ноде не будет памяти
cpu нет, но память может быстро расти. Может случиться так, что есть под1 и деплоится другой под2, под1 начинает больше жрать памяти и его выселяет. Хотелось бы чтобы request был не равен limit, т.к. ресурсов в кластере не много, и чтобы если под начинает жрать много и памяти в ns нет, то его убивал бы oom
так сделайте дополнительно лимит на сам под, чтобы его по ООМ убило
на вытеснение подов из ноды еще влияет priority (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/). Но это правда больше про шедулинг
ну в общем: 1. на ноде 16GB RAM, при этом свободно 1GB 2. запущен под request 2G, limit 5G 3. под начинает жрать +1GB и его тут выселяет на другую ноду, т.к. на этой ноде нет ресурса Хотелось бы ограничить 16GB на неймспейс на все поды в нем, чтобы если вдруг кто-то внутри неймспейса начинает отъедать много, то его просто убил oom, а не начинал искать ресурсы в кластере на других нодах
ноды виртуалки да
Тут только 1.21 ставить там нормально лимиты работают, в отличие от прежних схем работы с cgroup в предыдущих версиях кубера под гипервизорами.
Обсуждают сегодня