Atlas Entry
Atlas: Service Has No Endpoints
Service exists but requests fail; endpoints/EndpointSlices are empty.
Text
Symptom → evidence → resolution.
Symptom
Service exists but requests fail; endpoints/EndpointSlices are empty.
NetworkingWorkloadsOperationsReliability
What this usually means
The Service has no eligible backends. Either it cannot find pods (label/selector mismatch) or pods are not considered Ready and therefore are withheld from routing.
Likely causes
Empty endpoints are almost always a mismatch or readiness gating.
- Service selector does not match pod labels.
- Pods exist but are not Ready (readinessProbe failing).
- Ports are misaligned (port vs targetPort vs container listener).
- Pods are in a different namespace (Services are namespace-scoped).
What to inspect first
Start with EndpointSlices, then selectors and labels.
- Confirm `.spec.selector` matches labels exactly.
- Confirm readiness is true for target pods.
kubectl
shell
kubectl get svc,ep,endpointslices -n <ns>
kubectl describe svc <svc> -n <ns>
kubectl get pods -n <ns> --show-labelsResolution guidance
Fix the mismatch and watch endpoints repopulate.
- Correct selector/labels (smallest edit).
- Fix readiness probes if they block ready state incorrectly.
- Verify port alignment and actual container listener.
Related
Canonical link
Canonical URL: /atlas/service-has-no-endpoints