【发布时间】:2017-11-10 01:56:09
【问题描述】:
我的环境是两台物理机,都运行在 docker-compose 中。
我想创建跨两个 docker 容器的 elasticsearch 集群。
两个容器不能相互连接,有什么想法吗?
docker 镜像正在使用 elasticsearch:5.4.2
docker-compose.yml
version: '2'
services:
elasticsearch:
image: es:542
hostname: es2
container_name: es2
user: elasticsearch
ports:
- 9200:9200
- 9300:9300
environment:
- ES_JAVA_OPTS=-Xms1g -Xmx1g
command: /usr/share/elasticsearch/bin/elasticsearch
elasticsearch.yml
http.host: 0.0.0.0
transport.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 2
cluster.name: prod_es_cluster
node.name: prod_es_node1
node.master: true
node.data: true
discovery.zen.ping_timeout: 10s
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "[::1]"]
和日志
ES1
[2017-11-09T05:56:10,552][INFO][o.e.t.TransportService] [prod_es_node1] 发布地址{172.24.0.2:9300}, bound_addresses {[::]:9300}
[2017-11-09T05:56:10,558][INFO][o.e.b.BootstrapChecks][prod_es_node1] 绑定或发布到非环回或非链接本地地址,执行引导检查
[2017-11-09T05:56:40,576][WARN][o.e.n.Node][prod_es_node1]timed out while waiting for initial discovery state - timeout: 30s
[2017-11-09T05:56:40,584][INFO][o.e.h.n.Netty4HttpServerTransport] [prod_es_node1] publish_address {172.24.0.2:9200}, bound_addresses {[::]:9200}
[2017-11-09T05:56:40,587][INFO][o.e.n.Node][prod_es_node1] 开始
ES2
[2017-11-09T09:37:20,084][WARN][o.e.d.z.ZenDiscovery][prod_es_node2]无法连接到主[{prod_es_node1}{BxKzhOnJTUC50cYTz_Hm fA}{zqtU07jfQJOrmB9AYL01Ig}@98765432{172.24.0.2}{172.24.0.2:9300}], retrying...
org.elasticsearch.transport.ConnectTransportException:[prod_es_node1][172.24.0.2:9300] connect_timeout[30s]
在 org.elasticsearch.transport.netty4.Netty4Transport.connectToChannels(Netty4Transport.java:361) ~[?:?]
在 org.elasticsearch.transport.TcpTransport.openConnection(TcpTransport.java:549) ~[elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.transport.TcpTransport.connectToNode(TcpTransport.java:473) ~[elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:315) ~[elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:302) ~[elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.discovery.zen.ZenDiscovery.joinElectedMaster(ZenDiscovery.java:468) [elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.discovery.zen.ZenDiscovery.innerJoinCluster(ZenDiscovery.java:420) [elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.discovery.zen.ZenDiscovery.access$4100(ZenDiscovery.java:83) [elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.discovery.zen.ZenDiscovery$JoinThreadControl$1.run(ZenDiscovery.java:1197) [elasticsearch-5.4.2.jar:5.4.2]
在 org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-5.4.2.
罐子:5.4.2]
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
引起:io.netty.channel.AbstractChannel$AnnotatedConnectException:Connection refused: 172.24.0.2/172.24.0.2:9300
在 sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
【问题讨论】:
标签: elasticsearch docker-compose