CrashLoopBackOff
The container starts, exits and is restarted with a growing delay. Find the reason in the previous attempt's logs and its exit code.
Troubleshooting guide · Running but not ready
A pod that is Running but shows 0/1 in the READY column has containers that started and a readiness check that is failing, so Kubernetes has taken it out of every Service that selects it. The probe's failure message is in the pod's events; a Service that reaches no pods at all is more often a selector that matches nothing.
Updated
Events like Readiness probe failed: HTTP probe failed with statuscode: 503, or connection refused:
kubectl describe pod <pod> -n <namespace>
Forward a local port to the pod, then request the probe's path on localhost:8080 from your machine:
kubectl port-forward pod/<pod> 8080:<port> -n <namespace>
If the pods are ready and the Service still sends no traffic, its selector probably matches no pods. A Service's endpoints list exactly which pods it will route to:
The endpoints behind a Service; ready addresses are the pods receiving traffic:
kubectl get endpointslices -n <namespace> -l kubernetes.io/service-name=<service>
The labels the Service selects on:
kubectl get service <service> -n <namespace> -o jsonpath='{.spec.selector}'
The pods those labels actually match. None means a typo, or labels changed on one side:
kubectl get pods -n <namespace> -l <key>=<value>
Check the Service's targetPort too: it must be the port the container listens on, by number or by the port's name.
In PodSteer
Read next
The container starts, exits and is restarted with a growing delay. Find the reason in the previous attempt's logs and its exit code.
The kubelet cannot build the container's configuration: a ConfigMap, Secret or key it names is missing, or a security setting cannot be met.
The pod was deleted but has not gone. A finalizer, a process ignoring SIGTERM, or a node nobody can reach is holding it.