Bonne pratique3 min de lecture · Mis à jour le 29 sept. 2026
Kubernetes — checklist de mise en production d'une application
Les réglages indispensables d'un Deployment prêt pour la production : ressources, sondes, disruption budget, sécurité et observabilité.
- #containers
- #high-availability
- #hardening
Disponibilité
-
replicas ≥ 2et anti-affinité (outopologySpreadConstraints) entre nœuds/zones. -
PodDisruptionBudget(minAvailable: 1) pour survivre aux drains de nœuds. - Stratégie
RollingUpdateavecmaxUnavailable: 0,maxSurge: 1.
Sondes
readinessProbe: # retire le pod du Service tant qu'il n'est pas prêt
httpGet: { path: /ready, port: 8080 }
periodSeconds: 5
livenessProbe: # redémarre un pod bloqué — ne pas tester les dépendances ici
httpGet: { path: /live, port: 8080 }
initialDelaySeconds: 10
startupProbe: # protège les démarrages lents
httpGet: { path: /live, port: 8080 }
failureThreshold: 30
periodSeconds: 2
Ressources
resources:
requests: { cpu: 250m, memory: 256Mi }
limits: { memory: 512Mi }
Toujours des requests (ordonnancement) ; limite mémoire obligatoire ; limite CPU à discuter (bridage).
Sécurité
securityContext:
runAsNonRoot: true
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
- Image scannée (Trivy), épinglée par digest, registre privé.
- Secrets via
Secret/gestionnaire externe, jamais dans l'image. -
NetworkPolicyen refus par défaut dans le namespace. - ServiceAccount dédié,
automountServiceAccountToken: falsesi inutile.
Configuration et arrêt propre
- Configuration via
ConfigMap, rechargement ou redéploiement contrôlé. - Gestion de
SIGTERM+terminationGracePeriodSecondsadapté ;preStopcourt pour laisser les répartiteurs se mettre à jour.
Observabilité
- Logs structurés sur stdout.
- Endpoint
/metrics+ServiceMonitor. - Alertes : pods en CrashLoopBackOff, redémarrages, saturation mémoire, erreurs 5xx.
Vérifier
kubectl rollout status deploy/api
kubectl get pdb,hpa,netpol -n app
kubectl describe pod -l app=api | grep -A5 Events