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