结论:Service 为一组 Pod 提供稳定访问入口,主要类型有 ClusterIP(集群内访问,默认)、NodePort(节点端口暴露)、LoadBalancer(云厂商负载均衡器)、ExternalName(DNS 别名),另有 Headless Service 用于直连 Pod。

展开:1)ClusterIP:分配集群内虚拟 IP,由 kube-proxy 通过 iptables/IPVS 规则把流量转发到后端 Pod,只可在集群内部访问,是服务间通信的标准方式。2)NodePort:在每个节点开一个 30000-32767 范围的静态端口,外部通过 任意节点IP:端口 访问,底层仍走 ClusterIP 转发,适合测试或配合自建 LB。3)LoadBalancer:在 NodePort 之上向云厂商申请外部负载均衡器,获得公网 IP,生产对外暴露常用,通常配合 Ingress 收敛入口数量。4)Headless(clusterIP: None):不做负载均衡,DNS 直接返回所有 Pod IP 或按 Pod 名解析,StatefulSet 和有状态集群成员发现靠它。易错点:kube-proxy 是 L4 轮询,没有会话亲和之外的七层能力,要灰度、限流需 Ingress/Service Mesh;Service 通过 label selector 关联 Pod,selector 写错会表现为 endpoints 为空、访问超时。可用 kubectl get endpoints <svc> 快速诊断。