如果没有kubernetes API,kubernetes复制集中的吊舱如何发现并相互通信?

如果没有kubernetes API,kubernetes复制集中的吊舱如何发现并相互通信?,kubernetes,service-discovery,leader,Kubernetes,Service Discovery,Leader,我有一个应用程序,它使用raft从多个实例中选择一个领导者。这些实例使用八卦协议,所以它只需要知道另一个实例就可以发现其余的实例 我计划将每个实例作为kubernetes吊舱运行,由复制控制器管理复制。我还将在这些节点前面放置一个服务,以便群集中的其他应用程序可以与之对话 我的问题是:如果没有kubernetes API,如何让副本集中的pod相互发现?这是通过DNS实现的,还是kubernetes提供了一些环境变量?解决方案是使用无头服务。例如,我们可以部署一个名为myservice disc

我有一个应用程序,它使用raft从多个实例中选择一个领导者。这些实例使用八卦协议,所以它只需要知道另一个实例就可以发现其余的实例

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


我的问题是:如果没有kubernetes API,如何让副本集中的pod相互发现?这是通过DNS实现的,还是kubernetes提供了一些环境变量?

解决方案是使用无头服务。例如,我们可以部署一个名为
myservice discovery
的无头服务。因为该服务是无头的,所以它不进行任何负载平衡或获取集群ip地址。要获取POD的ip地址,您需要在DNS服务器上查询
myservice discovery.mycluster
以获取记录列表

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