How to fix Deployment replicas not ready, pods failing health checks in Kubernetes
KubernetesINTERMEDIATEHIGHUpdated Dec 6, 2025ยท 180 views
Deployment pods stay in not-ready state due to failing health checks, application crashes, or resource constraints. Fix by debugging pods, adjusting probe settings, fixing application issues, or increasing resources.
Quick fix
Fixes DEPLOYMENT_NOT_READY
kubectl describe deployment -n <namespace> <name>
kubectl get pods -n <namespace> -o wide
kubectl logs -n <namespace> <pod-name>- Check deployment status
- Increase initialDelaySeconds
- Fix application configuration
- Increase resource requests
kubernetes โ error
kubectl describe deployment -n <namespace> <name>kubectl get pods -n <namespace> -o widekubectl logs -n <namespace> <pod-name>Deployment replicas not ready, pods failing health checks
What this error means
A deployment is considered "not ready" when fewer pods are in Ready state than the desired replica count. This means: 1. Pods are created and running 2. Their readiness probes are failing 3. Traffic doesn't route to them 4. Your deployment is effectively offline Unlike pending pods, NotReady pods indicate application-level issues, not scheduling issues.
Typical symptoms
- kubectl get deployment shows 0/3 ready
- Pod shows ContainerReady=False
- Application logs show startup errors
- Readiness probe endpoint returns non-200
- Deployment stuck at same replica count for minutes
- kubectl logs shows successful startup but probe fails
Common causes
- Readiness probe misconfigured
- Application startup too slow
- Missing environment variables or config
- Database/dependency unavailable
- Port mismatch between probe and application
- Resource constraints causing slow startup
How to fix "Deployment replicas not ready, pods failing health checks"
1Check deployment status
bash
kubectl describe deployment -n <namespace> <name>
kubectl get pods -n <namespace> -o wide
kubectl logs -n <namespace> <pod-name>2Increase initialDelaySeconds
bash
kubectl edit deployment -n <namespace> <name>
# Increase readiness probe delay:
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 60 # Increased3Fix application configuration
bash
# Check environment variables:
kubectl describe pod -n <namespace> <pod-name>
# Check application logs:
kubectl logs -n <namespace> <pod-name> --previous4Increase resource requests
bash
kubectl edit deployment -n <namespace> <name>
# Increase resources:
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"5Verify all replicas are ready
bash
kubectl get deployment -n <namespace> <name>
# READY should show N/NAdvanced notes
For debugging, disable readiness probe temporarily by setting failureThreshold to 999999.
Frequently asked questions
- What does "DEPLOYMENT_NOT_READY" mean?
- A deployment is considered "not ready" when fewer pods are in Ready state than the desired replica count. This means: 1. Pods are created and running 2.
- How do I fix "DEPLOYMENT_NOT_READY"?
- Deployment pods stay in not-ready state due to failing health checks, application crashes, or resource constraints. Fix by debugging pods, adjusting probe settings, fixing application issues, or increasing resources.
- What causes "DEPLOYMENT_NOT_READY"?
- Readiness probe misconfigured Application startup too slow Missing environment variables or config
- Is the "DEPLOYMENT_NOT_READY" error serious?
- Yes. This is a high-severity error that usually blocks work until it is fixed, but the steps above resolve it.
Official resources & further reading
- ๐Kubernetes Official Documentation
- ๐Deployments - Kubernetes Docs(Official Docs)