Pod removed from service endpoints due to failing readiness probe
Production Risk
Affected pod receives zero traffic; overall service capacity is reduced.
When the readiness probe fails, Kubernetes removes the pod from the Service's Endpoints list so it receives no traffic, but does not restart the container. This is a protective mechanism. The pod will be re-added to endpoints once the probe passes again. Unlike liveness probe failure, readiness probe failure does not cause a restart.
- 1Application is not yet ready to serve traffic (still initializing)
- 2Downstream dependency (database, cache) is temporarily unavailable
- 3Readiness endpoint path, port, or expected response is misconfigured
- 4Application entered a degraded state and intentionally returning non-2xx on health endpoint
Pod shows Running but receives no traffic; endpoints list is empty for the service.
kubectl get endpoints myservice # NAME ENDPOINTS AGE # myservice <none> 10m kubectl describe pod mypod | grep -A 5 "Readiness:" kubectl get events --field-selector involvedObject.name=mypod,reason=Unhealthy
expected output
Warning Unhealthy ... Readiness probe failed: Get "http://10.0.0.5:8080/ready": connection refused
Fix 1
Check service endpoints and probe configuration
WHEN Service is not routing traffic
kubectl get endpoints myservice kubectl describe pod mypod | grep -A 15 "Readiness:"
Why this works
Confirms the pod is excluded from endpoints and shows the probe configuration.
Fix 2
Verify the readiness endpoint is functional
WHEN Probe configuration looks correct
kubectl exec mypod -- curl -v http://localhost:8080/ready
Why this works
Tests the readiness endpoint directly to see the actual response.
Kubernetes Documentation
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev