无头service和普通的service有什么区别 ?
无头Service和普通Service的主要区别如下:
- 配置差异:在定义Service时,如果指定了spec.clusterIP: None,则没有为其分配ClusterIP,这就是所谓的无头Service。无头Service没有标签选择器,但是有对应的Endpoint。相反,普通Service有ClusterIP,并且可以通过解析Service的DNS返回service的ClusterIP。
- 用途差异:无头Service主要用于有状态部署,例如statefulSet。在这些场景中,每个Pod都有自己的DNS地址,通过解析Pod的DNS可以返回Pod的IP。而普通Service的负载均衡是由kube-proxy实现的,它发现普通Service有ClusterIP,就会处理它并对它负载均衡到后端的Pod上。
综上所述,无头Service和普通Service在配置和使用上有明显的区别。无头Service没有ClusterIP,主要用于有状态部署,而普通Service有ClusterIP,主要用于负载均衡。