Docker在多机器上搭建ES集群,各节点无法互通问题
1.检查ES的network.*配置
network.bind_host值可以设置为0.0.0.0(表示监听所有网卡)或宿主机Ip(如果设为宿主机Ip则不能通过localhost或127.0.0.1即回环地址进行访问es),我这里设置为0.0.0.0。
network.publish_host表示ES的发布地址,该项地址作为ES节点内部或集群交互地址。建议设置为宿主机地址
2.按上面配置了,但是各节点不能形成集群,每个节点都作为master节点?
本人在使用容器搭建集群时一开始就将ES的data目录挂载到宿主机的目录上,且一开始的network.host没有配置,没有配置的情况下默认使用本地地址,跨机器的节点无法相互发现。而我每次启动容器都是将宿主机的data目录映射到ES的目录上,导致了即使修改了network配置也形成不了集群。调试了差不多一天,终于在日志中发现问题所在:集群的version都升到50几了,而我每次都是修改配置后重新制作容器,正常的话version应该是1才对。想到容器每次启动指定了data目录,赶紧先把data目录清空,再按上述配置network,搞定。