Elasticsearch设计为以集群模式运行,我所要做的就是通过环境变量在集群中定义相关的节点IP,只要网络连接可用,它就会连接并加入集群的其他节点。以群模式运行Elasticsearch容器
我有3个节点,1个充当码头群管理员,另外两个是工作人员。我已经初始化了管理员并加入了工作节点,从这个角度来看,一切看起来都不错。
现在我试图以允许我将所有节点加入同一个elasticsearch集群的方式运行elasticsearch容器,但是,我希望节点使用其覆盖网络接口加入,这意味着我需要在运行docker service create
命令时知道容器内部IP地址,我该怎么做?我必须使用领事这样的东西来实现吗?
一些澄清:
我需要知道,在服务创建时所有参与者Elasticsearch的IP地址(或DNS名称),这样我就可以正常启动群集。这必须在创建时,而不是在之后。此外,据我所知,我可以公开端口9200/9300的所有服务,并与外部机器IP协同工作,但我想使用覆盖网络来完成所有这些通信(我认为这是什么群集模式是)。
此外领事那里也是Zookeeper和Etcd。 –
@MattSchuchard我不能用群体的核心来做到这一点吗? *我*有*使用外部服务发现吗? –
不知道;因此评论并没有回答。不要在乎我自己;更喜欢Mesosphere(Zookeeper)或Kubernetes(Consul/Etcd?)。 Swarm似乎对我来说太黑了。 –