有道-短记-Service选择器与Pod标签不匹配

Service 选择器与 Pod 标签不匹配

一份私有故障记录描述了 NodePort 可见、工作负载运行,但 Service 没有可用后端的情况。提炼出的诊断要点是:Service 的 selector 必须全部匹配目标 Pod 的标签;仅看到 Pod 处于 Running,不能证明 Service 已选中它。这里不保留原记录中的集群名称、节点、地址、端口、版本、文件路径或操作命令。

取证顺序

  1. 读取 Service 的 spec.selectorspec.ports,确认目标命名空间及端口映射。
  2. 查询与该 Service 关联的 EndpointSlice。若后端为空,先查选择器、Pod 标签及 Pod 就绪状态,再查外部访问链路。
  3. 逐项比较 selector 的键和值与目标 Pod 的标签;多一个未匹配的标签,也会使 Pod 无法被该 Service 选中。
  4. 若标签确实不匹配,应先确认声明式配置的所有者及预期选择范围,再修改配置。变更后重新检查 EndpointSlice 与应用层连通性。

EndpointSlice 为空还可能由 Pod 未就绪等原因造成,因此不能只凭空后端就断定 selector 错误。原记录的现场诊断和修复结果未经独立复现,本卡只保留可迁移的判定方法。

关联:Service 不通排查

参考:Kubernetes ServiceEndpointSlice