前提・実現したいこと
既に配備されたDockerコンテナを利用して3台構成、かつ全ノードがMaster権DataノードとなるようにElasticSearchのクラスタ環境を構築しようとしています
■前提
- 3台のマシンにそれぞれElasticSearch用のDockerコンテナが配備済み
- 全てのマシンは同一ネットワークに所属
- コンテナ配備時にクラスタ構成を構築せず、配備されたコンテナでクラスタを構築したい
発生している問題・エラーメッセージ
全コンテナ共通して、下記のようなエラーメッセージが出ております
[es_node1] failed to send join request to master [{es_node2}{hTLkzi_vQlq01lVfaZFpcg}{gQ9hnqMyRHaHpGey0_36KA}{<Groval_IP>}{<Groval_IP>:32980}], reason [RemoteTransportException[[es_node2][172.17.0.3:9300][internal:discovery/zen/join]]; nested: ConnectTransportException[[es_node1][<Target_Groval_IP>:32980] connect_exception]; nested: IOException[Connection refused: <Target_Groval_IP>/<Target_Groval_IP>:32980]; nested: IOException[Connection refused]; ]
該当のソースコード
■コンテナA,B,Cの情報(ポート部分のみ記載)
- コンテナA(ホストA)
0.0.0.0:32983->9200/tcp, 0.0.0.0:32984->9300/tcp
- コンテナB(ホストB)
0.0.0.0:32973->9200/tcp, 0.0.0.0:32974->9300/tcp
- コンテナC(ホストC)
0.0.0.0:32979->9200/tcp, 0.0.0.0:32980->9300/tcp
■コンテナA,B,CのElasticSearch.yml(クラスタ部分のみ記載)
- コンテナA
cluster.name: es_cluster node.name: es_master node.master: true node.data: true network.host: 0.0.0.0 # Set a custom port for HTTP: http.port: 9200 transport.tcp.port: 9300 transport.publish_host: <ホストAのグローバルIP> transport.publish_port: 32984 discovery.zen.ping.unicast.hosts: ["<ホストAのグローバルIP>:32984", "<ホストBのグローバルIP>:32974", "<ホストCのグローバルIP>:32974"] discovery.zen.minimum_master_nodes: 2
- コンテナB
cluster.name: es_cluster node.name: es_node1 node.master: true node.data: true network.host: 0.0.0.0 # Set a custom port for HTTP: http.port: 9200 transport.tcp.port: 9300 transport.publish_host: <ホストBのグローバルIP> transport.publish_port: 32974 discovery.zen.ping.unicast.hosts: ["<ホストAのグローバルIP>:32984", "<ホストBのグローバルIP>:32974", "<ホストCのグローバルIP>:32980"] discovery.zen.minimum_master_nodes: 2
- コンテナC
cluster.name: es_cluster node.name: es_node2 node.master: true node.data: true network.host: 0.0.0.0 # Set a custom port for HTTP: http.port: 9200 transport.tcp.port: 9300 transport.publish_host: <ホストCのグローバルIP> transport.publish_port: 32980 discovery.zen.ping.unicast.hosts: ["<ホストAのグローバルIP>:32984", "<ホストBのグローバルIP>:32974", "<ホストCのグローバルIP>:32980"] discovery.zen.minimum_master_nodes: 2
試したこと
エラーメッセージを見るに、通信が通っていないものと判断しましたがコンテナ間からcurlによるグローバルIPを用いた通信は正常に各コンテナ間で行えています。
グローバルIPではなくDocketコンテナの論理IPでも試したが結果は同じでした。
補足情報(FW/ツールのバージョンなど)
ホスト/コンテナのOSはCentOS7.3を利用しています。
ElasticSearchのバージョンは全コンテナにおいて6.6.1を利用しています
回答1件
あなたの回答
tips
プレビュー