标准答案
- Service 的 selector 生成或维护 EndpointSlice,流量按当前就绪后端转发。
- ClusterIP 只在集群内部提供虚拟访问,NodePort、LoadBalancer 或 Ingress 才可能把流量扩展到集群外。
- Service 端口、targetPort、协议和应用监听地址必须匹配,端口对象存在不代表应用可连。
- 排查要看 selector、EndpointSlice、就绪状态、DNS、网络策略和后端进程,而不是只看 Service YAML。
题目解析
Service 通过 selector 选择 Pod,并根据 EndpointSlice 中的可用后端提供稳定的虚拟访问入口。ClusterIP 是集群内的虚拟地址,NodePort、LoadBalancer 或 Ingress 才可能把访问扩展到集群外;Pod 重建时后端 IP 可以变,Service 身份不随之改变。
Service 对象存在不代表有后端,也不代表应用协议可用。排查要依次确认 selector、EndpointSlice、Pod readiness、端口/targetPort、DNS、NetworkPolicy、监听地址和应用响应;认证、超时、跨集群和业务健康仍由更上层负责。
常见误区
- 误区:把 Service IP 当成 Pod IP。改正:把 ClusterIP 视为虚拟入口,具体后端由 EndpointSlice 和 kube-proxy/网络插件处理。
- 误区:selector 写错后只检查 Service 状态。改正:查看 EndpointSlice 是否为空,并从调用方测试 DNS、TCP 和协议。