Pod is running but readiness probe is failing
Production Risk
Pod receives no traffic; effective replica count is reduced, increasing load on healthy pods.
A pod in Running state with READY showing 0/1 (or fewer containers ready than total) means the container process is alive but the readiness probe is failing. Kubernetes removes such pods from Service endpoints, so they receive no traffic. This is a safety mechanism — the pod is running but not considered healthy enough to serve requests.
- 1Application is still starting up and not yet ready to handle requests
- 2Readiness probe endpoint returns non-2xx HTTP status or times out
- 3Readiness probe configuration (path, port, delay) does not match the application
- 4Downstream dependency (database, cache) is unavailable causing the health check to fail
Deployment rollout appears stuck; pods show Running but READY column shows 0/N.
kubectl get pods # NAME READY STATUS RESTARTS AGE # mypod 0/1 Running 0 5m kubectl describe pod mypod | grep -A 20 "Readiness:"
expected output
NAME READY STATUS RESTARTS AGE mypod 0/1 Running 0 5m
Fix 1
Check readiness probe events and configuration
WHEN Pod is Running but not Ready
kubectl describe pod mypod | grep -A 10 "Readiness:" kubectl get events --field-selector involvedObject.name=mypod | grep -i readiness
Why this works
Shows the probe configuration and any recent failure events.
Fix 2
Test the readiness endpoint manually
WHEN Probe path or port may be misconfigured
kubectl exec mypod -- wget -qO- http://localhost:8080/healthz # or for TCP probes kubectl exec mypod -- nc -z localhost 8080
Why this works
Directly tests the readiness endpoint from inside the container.
Fix 3
Increase initialDelaySeconds
WHEN Application needs more time to start before probing begins
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3Why this works
Delays the first probe attempt, giving the application time to initialize.
✕
Kubernetes Documentation
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev