2016-11-03 30 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訪問,則還可以設置第二個正常(非無頭)服務。

相關問題