私は、3つのAWSホスト上のドッカーコンテナ内に3ノードのElasticsearch 2.1クラスタを実行しています。私は、コマンドラインでAWSのDockerized Elasticsearchクラスタ - 各ノードが自分自身を選択
network.host: 0.0.0.0
discovery.type: "ec2"
discovery.ec2.ping_timeout: "30s"
discovery.zen.ping.multicast.enabled: false
cloud.aws.access_key: ...
cloud.aws.secret_key: ...
cloud.aws.region: ...
: Elasticsearch.ymlは、いくつかの他のもののほか、次のものが含まれ
-Des.network.bind_host=0.0.0.0 -Des.cluster.name=XXX -Des.node.name=XXX-1 (up to -XXX-3)
データが動的にノード起動時にマウントEBSボリュームに保存されています。 AWS Cloud Pluginがインストールされています。
システム全体が一般的なネットワークの問題を解決するまでは、再起動と更新を含めてすべて正常に機能しました。そこで何が起こったのか分かりません。 {XXX-3} {5oQHbq_KS8-JrIuFfTTBdw} new_master
[cluster.service] [XXX-3]:その後 、各ノードは、開始それはXXXクラスタで実行されている主張するが、マスターとして自分自身をdeclairs {192.168.AAA.BB} {192.168.CCC.DD:9300}、 理由:禅ディスコジョイン(elected_as_master、[0]受信ジョイン)」}
Iが設定することにより、この問題を解決することに成功しnetwork.host: _ec2_
ホスト上の起動時に、このホストは実行中のインスタンスの1つに正常に接続した後、3番目のノードがでもクラスタに接続できました。今度はもう一度うまく走っています。
私はこの問題がなぜ発生したのか理解しようとしています。AWSで0.0.0.0を使用することは合法ではありませんか? 1つのノードnetwork.hostだけを_ec2_
に変更した後で再び動作する方法。 もう1つのポイントは、ローカル環境(迷路)で同じコマンドラインで同じサービスを使用したいのですが、この場合はec2を使用できません。
ありがとうございます。