Liveness - контейнер жив; при неудаче kubelet перезапускает контейнер. Readiness - контейнер готов принимать трафик; при неудаче Pod убирается из Service. Startup - для медленного старта; до первой успешной проверки liveness/readiness не считаются проваленными. В Go реализуют HTTP endpoint (например /health, /ready) или exec-проверку. Важно: readiness не должен падать при временной потере БД, иначе все Pod перестанут получать трафик.
livenessProbe:
httpGet: {path: /health, port: 8080}
initialDelaySeconds: 5
readinessProbe:
httpGet: {path: /ready, port: 8080}