KubernetesDevOpsProd

Kubernetes : liveness, readiness et startup probes expliquées

23 juillet 2026 · Sphinx-Digital

Les probes Kubernetes sont le mécanisme qui permet au cluster de savoir si un pod est vivant, prêt à recevoir du trafic, ou en train de démarrer. Mal configurées, elles causent des redémarrages intempestifs ou du trafic envoyé vers des pods non prêts.

Les trois probes et leurs rôles

Liveness probe — le pod est-il vivant ? Si elle échoue, Kubernetes redémarre le conteneur.

Readiness probe — le pod est-il prêt à recevoir du trafic ? Si elle échoue, le pod est retiré du Service sans être redémarré.

Startup probe — l’application a-t-elle terminé son démarrage ? Utile pour les applications lentes à démarrer.

spec:
  containers:
    - name: api
      image: myapp:1.0
      
      startupProbe:        # Attend que l'app démarre (max 5min)
        httpGet:
          path: /healthz
          port: 8080
        failureThreshold: 30
        periodSeconds: 10
      
      livenessProbe:       # Redémarre si l'app est bloquée
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 0
        periodSeconds: 15
        failureThreshold: 3
      
      readinessProbe:      # Retire du Service si pas prêt
        httpGet:
          path: /ready
          port: 8080
        periodSeconds: 5
        failureThreshold: 2

Erreurs classiques à éviter

Utiliser la même route pour liveness et readiness — la liveness doit retourner 200 dès que le process tourne. La readiness doit vérifier que les dépendances (DB, cache) sont accessibles.

# ✅ Deux endpoints distincts
@app.get("/healthz")   # liveness — retourne toujours 200 si le process tourne
async def liveness():
    return {"status": "alive"}

@app.get("/ready")     # readiness — vérifie les dépendances
async def readiness():
    await db.ping()
    await redis.ping()
    return {"status": "ready"}

Liveness trop agressive — une liveness avec failureThreshold: 1 et periodSeconds: 5 redémarre le pod à la moindre lenteur passagère. Préférez failureThreshold: 3 et periodSeconds: 15.

Notre formation Kubernetes couvre la configuration des probes avec des scénarios de panne réels.