3.3.3.5.2. 使用无头服务进行端点发现
使用无头服务的好处是您可以直接发现 pod 的 IP 地址。标准服务充当负载均衡器或代理,并使用服务名称来提供对工作负载对象的访问。使用无头服务时,服务名称将解析为服务分组的 pod 的 IP 地址集合。
当您查找标准服务的 DNS A
记录时,您将获得服务的负载均衡 IP。
$ dig frontend.test A +search +short
输出示例
172.30.232.77
但是,对于无头服务,您可以获取单个 pod 的 IP 列表。
$ dig frontend-headless.test A +search +short
输出示例
172.17.0.3 172.17.0.6
注意
对于使用带有 StatefulSet 的无头服务以及相关的用例,您需要在初始化和终止期间解析 pod 的 DNS,将 publishNotReadyAddresses
设置为 true
(默认值为 false
)。当 publishNotReadyAddresses
设为 true
时,这表示 DNS 实现必须发布与该服务关联的 Endpoints 子集的 notReadyAddresses
。