有状态集是否需要使用无头服务?

San*_*ndy 6 kubernetes kubernetes-statefulset kubernetes-service

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

  1. 有状态集是否需要使用无头服务?我也可以将普通的 service.yml 用于有状态集吗?
  2. 是否需要使用服务然后使用无头服务?我可以只使用无头服务吗?
  3. 我可以不使用 Pod 来附加到服务而不是无头服务吗?

wei*_*eld 6

  1. 从技术上讲,您不必使用 Headless Service,但如果您想利用 StatefulSet 中每个 Pod 的粘性身份(即通过名称而不是任何 Pod 来寻址特定 Pod),那么使用 Headless Service 通常是有意义的。随机的,就像正常服务的情况一样)。
  2. 不知道你的意思是什么。clusterIP您可以通过定义 ClusterIP 服务并将字段设置为 来创建 Headless Service None
  3. 您也可以通过某些工具(例如)直接使用 Pod 名称kubectl port-forward,但 Headless Service 会为所有 Pod 创建 DNS 名称,以便您可以以更通用的方式对它们进行寻址。

参考:


Tus*_*jan 3

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

让我们举个例子——

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

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