Back to archive

Most Pod Restarts Are Self-Inflicted

Four pod settings decide whether checkout survives real traffic: probes, requests, limits, and QoS.

Production idea

Liveness, readiness, startup probes, requests, limits, and OOMKilled.

kubectl get pod <pod> -o jsonpath='{.status.qosClass}'kubectl get pod <pod> -o jsonpath='{.status.containerStatuses[0].lastState.terminated.reason}'
  • Keep dependency health out of liveness probes.
  • Use startup probes for slow boot.
  • Set memory requests and limits deliberately.
  • Avoid BestEffort production pods.