有时候我们不需要负载均衡,以及单独的 Service IP。 遇到这种情况,可以通过指定 Cluster IP(spec.clusterIP)的值为 "None" 来创建无头服务。通过无头服务的标签选择器(Label Selector)可以将后端的 Pod 列表返回给调用的客户端。
对于无头服务,不会为其分配 Cluster IP,kube-proxy 不会处理它们, 而且平台也不会为它们进行负载均衡和路由。 DNS 如何实现自动配置,取决于这些无头服务是否定义了选择器(selectors)。
1、定义了选择器的无头服务
对定义了选择器的无头服务,Endpoint 控制器在 API 中创建了 Endpoints 记录, 并且修改 DNS 配置返回所有的 A 记录(IP 地址),通过这些地址可以直接到达 Service 的后端 Pod 上。
2、没有定义选择器的无头服务
对没有定义选择器的无头服务,Endpoint 控制器不会创建 Endpoints 记录。 DNS 系统会按照下面的方式查找和配置:文章来源:https://www.toymoban.com/news/detail-607316.html
a)对于 ExternalName 类型的服务,查找其 CNAME 记录。
b)对所有其他类型的服务,查找与 Service 名称相同的任何 Endpoints 的 A 记录。文章来源地址https://www.toymoban.com/news/detail-607316.html
到了这里,关于k8s 中的无头服务 (Headless Services)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!