Skip to content

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-labels

Resolution 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.

Canonical link

Canonical URL: /atlas/service-has-no-endpoints