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 ≥ 2 et anti-affinité (ou topologySpreadConstraints) entre nœuds/zones.
  • PodDisruptionBudget (minAvailable: 1) pour survivre aux drains de nœuds.
  • Stratégie RollingUpdate avec maxUnavailable: 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.
  • NetworkPolicy en refus par défaut dans le namespace.
  • ServiceAccount dédié, automountServiceAccountToken: false si inutile.

Configuration et arrêt propre

  • Configuration via ConfigMap, rechargement ou redéploiement contrôlé.
  • Gestion de SIGTERM + terminationGracePeriodSeconds adapté ; preStop court 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

Autres labs de cette technologie