Lorsqu'on doit déployer une application sur un cluster Kubernetes, une bonne pratique est de définir des ressources "requests" et "limits" pour garantir le bon fonctionnement de celle-ci tout en garantissant la bonne santé du cluster qui l'accueille.
OK, mais quelles valeurs de "requests" et "limits" doit-on spécifier ? Pas assez de RAM et l'application sera "OOMKilled" ? Trop de CPU mais cela bloquera les autres déploiements ?
Après un tour d'horizon des différentes options pour paramétrer ces ressources, je vous présenterai un outil simple mais efficace pour vous aider à définir des valeurs pragmatiques : Goldilocks et l'utilisation automatique des Vertical Pod Autoscaler.
The Miserable Life of a CPU Instruction - Samuel Ortiz
https://www.youtube.com/watch?v=j6-yGGBTXGU
1. Standards : Prometheus, VictoriaMetrics, Datadog, etc.
2. Plus "avancées" : VPA
1. Standards : Prometheus, VictoriaMetrics, Datadog, etc.
2. Plus "avancées" : VPA
- Requests trop basses & HPA
"*Support for Memory QoS was initially added in Kubernetes v1.22, and later some limitations around the formula for calculating memory.high were identified. These limitations are addressed in Kubernetes v1.27*"