mettre en place l’autoscaling kubernetes pour une application saas node.js avec hpa
04/07/2025
Pourquoi l’autoscaling Kubernetes est crucial pour votre SaaS Node.js
Dans un contexte SaaS, la capacité à absorber les pics de trafic sans dégrader l’expérience utilisateur est un avantage concurrentiel. Grâce à l’autoscaling Kubernetes via le Horizontal Pod Autoscaler (HPA), vos pods Node.js s’ajustent automatiquement selon la charge CPU ou custom metrics. Ce guide technique vous accompagnera pas à pas dans l’implémentation de l’HPA, avec des exemples concrets et commandes CLI.
Étapes pour mettre en place l’autoscaling Kubernetes pour votre SaaS Node.js
- Installer le metrics-server
# récupérer la dernière version metrics-server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Le
metrics-server
fournit à Kubernetes les métriques CPU/mémoire nécessaires à l’HPA. - Packager votre application en conteneur
Si ce n’est pas déjà fait, créez un Dockerfile adapté :
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install --production COPY . . CMD ["node", "server.js"]
- Déployer l’application sur Kubernetes
# déploiement minimal kubectl apply -f deployment.yaml # service exposé kubectl apply -f service.yaml
Assurez-vous que votre
deployment.yaml
définit au minimumresources.requests.cpu
etresources.limits.cpu
. - Créer et appliquer l’HPA
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: saas-nodejs-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: saas-nodejs minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60
Enregistrez ce fichier sous
hpa.yaml
puis exécutez :kubectl apply -f hpa.yaml
. - Vérifier l’autoscaling
kubectl get hpa saas-nodejs-hpa --watch
Vous verrez les champs
CURRENT CPU %
etREPLICAS
évoluer selon la charge réelle. - Simuler un pic de charge
# depuis une autre machine ab -n 100000 -c 200 http://[SERVICE_IP]/api/endpoint
Observez l’échelle horizontale monter jusqu’à
maxReplicas
si nécessaire.
Bonnes pratiques et pièges à éviter
- Définir
resources.requests
etlimits
pour éviter le « CPU throttling ». - Privilégier la version
autoscaling/v2
pour custom metrics (ex. file descriptors, latency). - Configurer un
--horizontal-pod-autoscaler-sync-period
raisonnable (par défaut 15 s). - Superviser l’agrégation de logs/metrics via un outil d’observabilité (Prometheus, Loki).
- Si vous rencontrez une erreur « no metrics API resource », vérifiez l’installation du
metrics-server
.
Conclusion
En automatisant la montée et descente en charge de votre application SaaS Node.js sur Kubernetes, vous assurez performance et maîtrise des coûts cloud. Cette mise en place, simple à démarrer, est essentielle pour garantir la fiabilité de votre service. Pour un accompagnement sur-mesure, n’hésitez pas à nous contacter.