命中 HeadlessService 的端点 - Kubernetes

Hitting an endpoint of HeadlessService - Kubernetes

我们希望将 podnames 解析为 IP 以配置 akka 集群中的种子节点。这是通过在 Kubernetes 中使用无头服务和有状态集的概念而发生的。但是,如何在外部公开无头服务以从外部访问端点?

很难将 Kubernetes 服务暴露给外部,因为这需要一些复杂的 TCP 代理。这样做的原因是,headless 服务只是一个 DNS 记录,每个 pod 都有一个 IP。但是这些 IP 只能从集群内访问。

一种解决方案是通过节点端口公开它,这意味着端口在主机本身上打开。不幸的是,这会使服务发现变得更加困难,因为您不知道哪个主机上有预定的 pod。

您可以通过以下方式设置节点端口:

另一种选择是使用 LoadBalancer,如果您的云提供商支持的话。不幸的是,您无法对每个实例本身进行寻址,因为它们共享相同的 IP。这可能不适合您的应用程序。