Kubernetes 中的 Service 类型主要有四种:ClusterIP(默认类型,用于集群内部通信)、NodePort(通过节点端口暴露服务)、LoadBalancer(集成云平台负载均衡器对外暴露)和 ExternalName(映射外部服务到集群内 DNS)。选择时,若仅需内部访问用 ClusterIP;需外部访问但环境无云负载均衡器时用 NodePort;云环境支持时用 LoadBalancer 自动分配外部 IP;ExternalName 用于代理外部服务。
延伸知识点:Headless Service
当 Service 的 clusterIP
字段设置为 None
时,称为 Headless Service。它不分配虚拟 IP,DNS 查询会直接返回后端 Pod 的 IP 列表,适用于有状态应用(如 StatefulSet)或需要直接访问 Pod 的场景。例如,数据库集群中每个 Pod 需独立寻址,客户端可通过 DNS 获取所有 Pod 地址并自行处理负载均衡或状态路由,避免了默认的代理层开销,提升了分布式场景下的通信灵活性。