Kubernetes 中的 Service 类型及选择策略:
-
Service 类型:
- ClusterIP:默认类型,为集群内部提供访问,无法从外部直接访问。
- NodePort:通过节点IP和静态端口(范围30000-32767)暴露服务,适用于临时测试或简单外部访问。
- LoadBalancer:依赖云服务商的负载均衡器(如AWS ELB、GCP LB),自动分配外部IP,适合生产环境外部访问。
- ExternalName:将服务映射到外部DNS(如数据库服务),不创建代理,用于集群内外服务别名。
- Headless Service(无头服务):通过指定
clusterIP: None
,直接暴露Pod IP,适用于有状态应用(如StatefulSet)。
-
选择策略:
- 内部服务:使用
ClusterIP
(如数据库、后端API)。 - 开发/测试环境外部访问:选择
NodePort
,或结合Ingress
控制流量。 - 生产环境外部访问:优先
LoadBalancer
(需云平台支持),配合Ingress Controller
实现高级路由。 - 集成外部服务:使用
ExternalName
简化DNS配置。 - 有状态服务直连:采用
Headless Service
,允许客户端直接访问Pod。
- 内部服务:使用