2016-11-03 26 views
1

我有一个应用程序使用木筏从多个实例中选出一个领导。这些实例使用八卦协议,因此只需要知道另一个实例即可发现其余实例。kubernetes副本集中的pod如何在没有kubernetes API的情况下彼此发现和交谈?

我计划将每个实例作为kubernetes窗格运行,并通过复制控制器进行复制管理。我还会在这些节点的前面放置一个服务,以便集群中的其他应用程序可以与之通话。

我的问题是:如何获得副本集内的pod以在没有kubernetes API的情况下发现彼此?这可能通过DNS,或者kubernetes是否提供了一些环境变量?

回答

1

解决方案是使用无头服务。例如,我们可以部署一个名为myservice-discovery的无头服务。由于该服务是无头的,因此它不会执行任何负载平衡或获取群集IP地址。要获取pod的IP地址,您然后查询DNS服务器以获取myservice-discovery.mycluster以获取A记录的列表。

如果Pod还需要可供其他服务和Pod访问,则还可以设置第二个正常(非无头)服务。

相关问题