3

关于无头服务有几个问题:

  1. 是否需要对有状态集使用无头服务?我也可以将正常的 service.yml 用于有状态集吗?
  2. 是否需要使用服务和无头服务?我可以只使用无头服务吗?
  3. 我可以不使用 pod 来附加到服务而不是无头服务吗?
4

2 回答 2

5
  1. 您不必StatefulSet 使用 Headless Service,但如果您想利用 StatefulService 中每个 Pod 的粘性标识(即通过名称而不是任何Pod 是随机的,就像普通服务一样)。
  2. 不知道你是什么意思。您可以通过定义 ClusterIP 服务并将clusterIP字段设置为 来创建无头服务None
  3. 您也可以通过一些工具(例如 )直接使用 Pod 名称kubectl port-forward,但是 Headless Service 会为所有 Pod 创建 DNS 名称,因此您可以以更通用的方式对其进行寻址。

参考:

于 2019-11-25T05:34:10.403 回答
3

Headless 服务不携带任何 clusterIP,它只是通过其主机名将您直接带到您需要与之通信的特定 pod。

举个例子——

假设您安装了 kafka statefulset,在其中运行 3 个代理,现在您想专门与一个代理进行通信,然后可以通过无头服务完成,

任何普通服务都可以做流量的随机分配(如果您没有添加任何特定的亲和度),普通服务也可以为您做,这一切都基于用例场景

于 2019-11-24T15:24:19.253 回答