【发布时间】:2017-03-09 04:58:59
【问题描述】:
我们希望将 podname 解析为 IP,以在 akka 集群中配置种子节点。这是通过在 Kubernetes 中使用无头服务和有状态集的概念来实现的。但是,如何在外部公开无头服务以从外部访问端点?
【问题讨论】:
标签: service kubernetes headless akka-cluster
我们希望将 podname 解析为 IP,以在 akka 集群中配置种子节点。这是通过在 Kubernetes 中使用无头服务和有状态集的概念来实现的。但是,如何在外部公开无头服务以从外部访问端点?
【问题讨论】:
标签: service kubernetes headless akka-cluster
很难将 Kubernetes 服务暴露给外部,因为这需要一些复杂的 TCP 代理。这样做的原因是,无头服务只是一个 DNS 记录,每个 pod 都有一个 IP。但这些 IP 只能从集群内访问。
一种解决方案是通过节点端口公开它,这意味着端口在主机本身上打开。不幸的是,这使服务发现变得更加困难,因为您不知道哪个主机上有调度的 pod。
您可以通过以下方式设置节点端口:
spec.containers[].ports[].hostPort
如果您的云提供商支持,另一种选择是使用LoadBalancer。不幸的是,您无法处理每个实例本身,因为它们共享相同的 IP。这可能不适合您的应用。
【讨论】: