DevOps
KRR

Dimensioner un cluster Kubernetes avec KRR

KRR (Kubernetes Resource Recommender) est un outil open source qui analyse l’utilisation réelle des ressources (CPU, mémoire) de vos pods et propose des recommandations pour optimiser les requests/limits. Cela permet de réduire la sur-allocation, d’optimiser les coûts et d’améliorer la stabilité du cluster.

Installation de KRR

KRR peut être installé en tant que binaire ou via un conteneur Docker.

Installation via binaire

curl -L https://github.com/robusta-dev/krr/releases/latest/download/krr-linux-amd64 -o krr
chmod +x krr
sudo mv krr /usr/local/bin/

Installation via Docker

docker pull ghcr.io/robusta-dev/krr:latest

Connecter au monitoring Prometheus

KRR se connecte à Prometheus pour récupérer les métriques d’utilisation des pods. Il faut fournir l’URL de Prometheus (souvent accessible via un port-forward ou une URL interne du cluster).

Exemple de lancement :

krr recommend --prometheus-url http://localhost:9090 --namespace my-namespace

  • Pour accéder à Prometheus depuis l’extérieur du cluster :
    kubectl port-forward svc/prometheus-k8s 9090:9090 -n monitoring
  • Vous pouvez cibler un namespace, un déploiement ou tout le cluster.

KRR génère un rapport avec les recommandations de requests/limits pour chaque pod analysé.

Visualisation des données dans k9s et Grafana

  • k9s : Après avoir appliqué les recommandations, utilisez k9s pour visualiser en temps réel l’état des pods, leur consommation et les éventuels OOM ou throttling.
  • Grafana : Connecté à Prometheus, Grafana permet de visualiser l’évolution de la consommation CPU/mémoire, de comparer les requests/limits actuels et recommandés, et de suivre l’impact des optimisations.

Exemple de dashboard Grafana

Bonnes pratiques

  • Appliquez les recommandations KRR d’abord en environnement de test.
  • Surveillez l’impact sur la stabilité et la performance après modification.
  • Répétez l’analyse régulièrement pour adapter les ressources à l’évolution de la charge.

Ressources utiles