🔧 Часто недооценённая, но критичная тема для стабильности и производительности кластеров.

Неверные значения requests и limits приводят либо к перерасходу ресурсов, либо к OOM, Throttling и подам, которые бесконечно перезапускаются. Особенно больно это бьёт по продакшену.

🚀 Как правильно настраивать ресурсы:

  1. Понимай разницу между requests и limits**:**  

   - requests — это гарантированный минимум, который получит контейнер.  

   - limits — это максимум, выше которого контейнер не сможет использовать (CPU throttling или OOMKill для памяти).  

  1. CPU — без жестких лимитов:  

   - Лучше не указывать limits.cpu, чтобы избежать throttling.  

   - Но обязательно ставь requests.cpu, чтобы kube-scheduler мог правильно распланировать нагрузку.

  1. Memory — всегда с лимитом:  

   - Память не отбирается — контейнер либо получает всю, либо OOM.  

   - Обязательно ставь и requests.memory, и limits.memory.

  1. Используй VPA (Vertical Pod Autoscaler):  

   - Он поможет подобрать адекватные значения ресурсов на основе истории.  

   - ⚠️ На проде использовать осторожно — часто в “recommendation only” режиме.

  1. Метрики в помощь:  

   - Используй kubectl top, metrics-server, Prometheus/Grafana для анализа потребления.  

   - Наблюдай за container_cpu_usage_seconds_total, container_memory_usage_bytes.

  1. Профилируй и оптимизируй:  

   - Легковесный nginx или sidecar не должен просить 500Mi памяти.  

   - Java-приложение без указанных лимитов съест весь узел.

🧠 Вывод:  

Грамотно выставленные ресурсы — это баланс между надёжностью и эффективным использованием нод. Не копируй requests/limits вслепую из интернета — мерь, анализируй, настраивай под свой ворклоад.

Авторские права

Автор: Vasiliy Fakunin

Ссылка: https://notes.melancholic.tech/posts/kubernetes-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4-%D0%BA-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BD%D1%8B%D0%BC-%D0%BB%D0%B8%D0%BC%D0%B8%D1%82%D0%B0%D0%BC-%D0%B8-requests/

Лицензия: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша