2016-11-03 8 views
1

私はraftを使って複数のインスタンスからリーダーを選ぶアプリケーションを持っています。これらのインスタンスはゴシッププロトコルを使用するため、残りのインスタンスを検出するために別のインスタンスを知る必要があります。kubernetesのレプリカセット内のポッドは、kubernetes APIを使用せずに互いにどのように検出して会話できますか?

各インスタンスをkubernetesポッドとして実行し、レプリケーションコントローラでレプリケーションを管理します。また、これらのノードの前にサービスを配置して、クラスター内の他のアプリケーションと通信できるようにします。

私の問題は次のとおりです。kubernetes APIを使わずに複製セット内のポッドを互いに見つけ出すにはどうすればよいですか?これはDNSを介して可能ですか、またはkubernetesはいくつかの環境変数を提供していますか?

答えて

1

解決策は、ヘッドレスサービスを使用することです。たとえば、myservice-discoveryというヘッドレスサービスを導入できます。このサービスはヘッドレスなので、ロードバランシングやクラスタIPアドレスを取得することはありません。ポッドのIPアドレスを取得するには、DNSサーバーにmyservice-discovery.myclusterを照会してAレコードのリストを取得します。

ポッドも他のサービスやポッドからアクセスできる必要がある場合は、2番目の通常(ヘッドレスではない)サービスを設定することもできます。

関連する問題