Aller au contenu principal

Chapitre 3.8 - Health Checks

Objectifs d'Apprentissage

À la fin de ce chapitre, vous serez capable de:

  • Comprendre les trois types de probes
  • Configurer les Liveness Probes
  • Configurer les Readiness Probes
  • Utiliser les Startup Probes
  • Choisir la bonne stratégie de health check

Types de Probes

Kubernetes offre trois types de probes pour vérifier la santé des conteneurs:


1. Liveness Probe

Détermine si le conteneur doit être redémarré.

Exemple

livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3

Comportement

Si la probe échoue: Le conteneur est redémarré.


2. Readiness Probe

Détermine si le conteneur est prêt à recevoir du trafic.

Exemple

readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3

Comportement

Si la probe échoue: Le Pod est retiré des Endpoints du Service.


3. Startup Probe

Pour les applications lentes à démarrer.

Exemple

startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30 # 30 tentatives
periodSeconds: 10 # Toutes les 10 secondes
# Total: jusqu'à 5 minutes

Comportement

Pendant le startup: Les autres probes sont désactivées.


Types de Probes

HTTP GET

livenessProbe:
httpGet:
path: /health
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome

TCP Socket

livenessProbe:
tcpSocket:
port: 8080

Command Exec

livenessProbe:
exec:
command:
- cat
- /tmp/healthy

Configuration Complète

apiVersion: v1
kind: Pod
metadata:
name: healthy-pod
spec:
containers:
- name: app
image: my-app:1.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30
periodSeconds: 10

Bonnes Pratiques

Quand Utiliser Chaque Probe

  • Liveness: Si l'application peut se bloquer
  • Readiness: Si l'application a besoin de temps pour être prête
  • Startup: Si l'application démarre lentement (>30s)

Paramètres Recommandés

  • initialDelaySeconds: Assez long pour le démarrage
  • periodSeconds: 5-10 secondes
  • timeoutSeconds: 1-3 secondes
  • failureThreshold: 3 (par défaut)

Résumé

Dans ce chapitre, vous avez appris:

Liveness Probe: Redémarre le conteneur s'il plante
Readiness Probe: Retire le Pod du Service s'il n'est pas prêt
Startup Probe: Pour applications lentes à démarrer
Types: HTTP GET, TCP Socket, Command Exec
Configuration: initialDelaySeconds, periodSeconds, failureThreshold


Prochaines Étapes

Maintenant que vous maîtrisez les Health Checks:

Lab 3.4: Configuration des Health Checks
Quiz Module 3: Valider vos connaissances


Chapitre créé le: Décembre 2024