A transit Service shows no ready backends even though Pods are running. The Service selector is app=scheduler but Pods are labeled app=sched. What is the likely result?
Select an answer to reveal the explanation.
Short Explanation
Selectors are exact name tags — sched isn't scheduler, so the Service directory stays empty.
Full Explanation
A transit Service showing no ready backends even though Pods are running—because the Service selector is app=scheduler but Pods are labeled app=sched—likely has empty Endpoints because the selector does not match any Pod labels. Service-to-Pod association is exact label matching, not fuzzy prefix matching. A typo between sched and scheduler is a classic empty-Endpoints outage for schedule APIs.
kube-proxy does not fuzzy-match label prefixes so sched still joins Endpoints. The apiserver does not rewrite Pod labels to match any Service selector in the same namespace. Running Pods do not always appear in every Service's Endpoints regardless of selectors.
Exam caveat: also check readiness—Pods must be Ready to appear as ready backends even when labels match. Operational check: kubectl get endpoints/endpointslice for the Service, compare labels with kubectl get pods --show-labels, and align selector or labels. This distinction matters on the CKA because distractors often mix adjacent objects that sound related but solve a different control-plane problem. This distinction matters on the CKA because distractors often mix adjacent objects that sound related but solve a different control-plane problem.