Dans cet exercice vous allez configurer les probes d’un container.
-
Créez la spécification podinfo.yaml d’un Pod ayant un container basé sur l’image stefanprodan/podinfo. Nommez ce Pod podinfo.
-
Ajoutez une livenessProbe qui vérifie l’ouverture du port 9898 toutes les 10 seconds après un delai initial de 30 secondes.
-
Ajoutez une readinessProbe qui envoie une requête HTTP GET sur le endpoint /readyz et le port 9898 toute les 5 secondes après un délai initial de 30 secondes.
-
Créez le Pod et assurez-vous que le container passe dans l’état ready au bout d’une trentaine de secondes.
-
Supprimez le Pod.
Vous pouvez vous aider pour cela de la documentation officielle
Solution
- Créez la spécification podinfo.yaml d’un Pod ayant un container basé sur l’image stefanprodan/podinfo. Nommez ce Pod podinfo.
apiVersion: v1
kind: Pod
metadata:
name: podinfo
spec:
containers:
- image: stefanprodan/podinfo
name: podinfo
Note: vous pouvez également utiliser la commande impérative suivante pour créer cette spécification:
kubectl run podinfo --image=stefanprodan/podinfo --dry-run=client -o yaml > podinfo.yaml
- Ajoutez une livenessProbe qui vérifie l’ouverture du port 9898 toutes les 10 seconds après un delai initial de 30 secondes
apiVersion: v1
kind: Pod
metadata:
name: podinfo
spec:
containers:
- image: stefanprodan/podinfo
name: podinfo
livenessProbe:
tcpSocket:
port: 9898
periodSeconds: 10
initialDelaySeconds: 30
- Ajoutez une readinessProbe qui envoie une requête HTTP GET sur le endpoint /readyz et le port 9898 toute les 5 secondes après un délai initial de 30 secondes
apiVersion: v1
kind: Pod
metadata:
name: podinfo
spec:
containers:
- image: stefanprodan/podinfo
name: podinfo
livenessProbe:
tcpSocket:
port: 9898
periodSeconds: 10
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /readyz
port: 9898
periodSeconds: 5
initialDelaySeconds: 30
- Créez le Pod et assurez-vous que le container passe dans l’état ready au bout d’une trentaine de secondes.
kubectl apply -f podinfo.yaml
Vérification:
$ kubectl get po podinfo -w
NAME READY STATUS RESTARTS AGE
...
podinfo 0/1 Running 0 20s
podinfo 1/1 Running 0 32s
- Supprimez le Pod
kubectl delete po podinfo