Aide-mémoire CKAD

exemple YAML livenessProbe k8s

Les probes sont sur le conteneur. kubectl run ne les pose pas : dry-run, éditer, apply.

Un officier à genoux sonde un chasseur dans un hangar au coucher du soleil. Un officier à genoux sonde un chasseur dans un hangar au coucher du soleil.
httpGet
apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
    - name: web
      image: nginx:1.27
      ports:
        - containerPort: 80
      startupProbe:
        httpGet:
          path: /
          port: 80
        failureThreshold: 30
        periodSeconds: 2
      livenessProbe:
        httpGet:
          path: /healthz
          port: 80
        initialDelaySeconds: 5
        periodSeconds: 10
      readinessProbe:
        httpGet:
          path: /ready
          port: 80
        periodSeconds: 5
exec
livenessProbe:
  exec:
    command: ["cat", "/tmp/healthy"]
  periodSeconds: 10
tcpSocket
readinessProbe:
  tcpSocket:
    port: 3306
  periodSeconds: 5

Champs

startupProbe
Tourne en premier. liveness et readiness attendent son succès.
livenessProbe
Échec → kubelet redémarre le conteneur.
readinessProbe
Échec → le Pod reste, sorti des endpoints du Service.
httpGet
path doit commencer par /.

Pièges

  • startupProbe tourne en premier. liveness et readiness attendent son succès.
  • readiness KO → le Pod reste, sorti des endpoints du Service. liveness KO → le conteneur redémarre.
  • httpGet.path doit commencer par /. port est un numéro ou un containerPort nommé.

Doc officielle Probes

S’entraîner sur un cluster réel →