kubernetes 是否需要对statefulsets使用无头服务?

wfsdck30  于 2022-11-28  发布在  Kubernetes
关注(0)|答案(2)|浏览(216)

有几个关于无头服务的问题:
1.对于有状态的集合,是否需要使用headless服务?我是否也可以对有状态的集合使用normal service.yml?
1.是否需要使用一个服务,然后是无头服务?我可以直接使用无头服务吗?
1.我可以不使用pod连接到服务而不是无头服务吗?

x9ybnkn6

x9ybnkn61#

1.从技术上讲,您不必使用Headless服务,但如果您希望利用StatefulSet中每个Pod的粘性标识,则使用Headless服务通常是有意义的(即,按名称寻址特定Pod,而不是像普通服务那样随机寻址任何Pod)。
1.不确定您的意思。您可以通过定义ClusterIP服务并将clusterIP字段设置为None来创建无头服务。
1.您也可以通过某些工具(例如kubectl port-forward)直接使用Pod名称,但Headless Service会为所有Pod创建DNS名称,以便您可以使用更通用的方式对其进行寻址。

n53p2ov0

n53p2ov02#

Headless服务不携带任何clusterIP,它只是通过主机名将您直接带到您需要通信的特定pod。
让我们举个例子-
假设您安装了Kafka statefulset,在其中运行3个代理,现在您希望与一个代理进行通信,这可以通过headless服务来完成。
任何普通服务都可以进行流量的随机分配(如果您没有添加任何特定的关联),普通服务也可以为您进行,这完全基于用例场景

相关问题