KubernetesCoreOpsAtlassianPostmanAsked in SRE, DevOps engineer and Platform engineer roundsRead the full interview experience →PASS
All pods are Running, but the Service returns 503. How do you find the break?
The scenario
After a Helm upgrade, the checkout service's pods show Running and Ready 0/1. The ingress returns 503 for every request.
Model answer
Follow the request path and check each hop:
- 1Ready 0/1 is the cluethe readiness probe is failing, so the pods are removed from the Service's endpoints.
- 2kubectl get endpoints <svc> (or endpointslices)if it's empty, the Service has nothing to send traffic to.
- 3If the pods are Ready but endpoints are still empty, the Service selector doesn't match the pod labels. A Helm upgrade that renamed a label is a classic cause.
- 4Check targetPort against the port the container actually listens on.
- 5Then the ingressthe backend service name and port, and the ingress controller's logs.
- 6Fix the probe or the label, and confirm endpoints are populated before calling it done.
The follow-up they'll ask
“The readiness probe calls /health, which checks the database. Is that a good idea?”
Usually not for readiness. If the database blips, every pod goes unready at once and you turn a partial outage into a full one. Keep readiness about the pod's own ability to serve; alert on dependencies separately.
Common mistakes
- Restarting pods instead of reading the Ready column
- Not checking the endpoints object
- Mixing up port, targetPort and containerPort
Practise it in War Zone · 1 free tryChallenge: find the missing ServiceCoreOps · 60 min
Break it and fix it →