Docker容器集群中的Elasticsearch
我想在2个不同主机上运行2个ElasticSeach实例。 我已经build立了基于Ubuntu 14.04和1.3.2版本的elasticsearch的Docker镜像。 如果我在1主机上运行2 ES的容器,每个实例看到另一个可以通信,但是当我在2个不同的主机上运行ES的2个实例时,它不工作。 容器的9300端口绑定到9300主机的端口。
我的问题是:可以用我的configuration创build一个ES群集?
最好的问候,卢卡斯对手
我能够在两台Docker主机上使用单播进行集群工作。 我恰好正在使用ehazlett/elasticsearch
图像,但我认为这不应该太重要。 真正重要的一点似乎是将network.publish_host
设置为公共路由器或可路由的IP泊坞站主机。
组态
搬运工主机-01
eth0: 192.168.1.10 Docker version 1.4.1, build 5bc2ff8/1.4.1
搬运工主机-02
eth0: 192.168.1.20 Docker version 1.4.1, build 5bc2ff8/1.4.1
build立群集
在Docker主机01上
docker run -d \ -p 9200:9200 \ -p 9300:9300 \ ehazlett/elasticsearch \ --cluster.name=unicast \ --network.publish_host=192.168.1.10 \ --discovery.zen.ping.multicast.enabled=false \ --discovery.zen.ping.unicast.hosts=192.168.1.20 \ --discovery.zen.ping.timeout=3s \ --discovery.zen.minimum_master_nodes=1
在Docker主机02
docker run -d \ -p 9200:9200 \ -p 9300:9300 \ ehazlett/elasticsearch \ --cluster.name=unicast \ --network.publish_host=192.168.1.20 \ --discovery.zen.ping.multicast.enabled=false \ --discovery.zen.ping.unicast.hosts=192.168.1.10 \ --discovery.zen.ping.timeout=3s \ --discovery.zen.minimum_master_nodes=1
使用docker-compose比在命令行中手动运行要容易得多:
elasticsearch_master: image: elasticsearch:latest command: "elasticsearch -Des.cluster.name=workagram -Des.node.master=true -Des.node.data=false" environment: - ES_HEAP_SIZE=512m ports: - "9200:9200" - "9300:9300" elasticsearch1: image: elasticsearch:latest command: "elasticsearch -Des.cluster.name=workagram -Des.discovery.zen.ping.unicast.hosts=elasticsearch_master" links: - elasticsearch_master volumes: - "/opt/elasticsearch/data" environment: - ES_HEAP_SIZE=512m elasticsearch2: image: elasticsearch:latest command: "elasticsearch -Des.cluster.name=workagram -Des.discovery.zen.ping.unicast.hosts=elasticsearch_master" links: - elasticsearch_master volumes: - "/opt/elasticsearch/data" environment: - ES_HEAP_SIZE=512m
只要主机在需要的端口之间可以访问,您应该能够沟通在不同主机上运行的两个容器。 我认为你的问题是你正在尝试使用ElasticSearch多播发现,但是如果你需要公开端口54328的容器。 如果不起作用,您还可以尝试使用单播configurationElasticSearch,并在您的elasticsearch.yml中充分设置机器IP。
- 为无状态Web应用程序创build多节点Kubernetes群集
- Apache Spark:MesosClusterDispatcher可以在Docker容器中运行执行程序吗?
- 在HA负载平衡器后面集群Docker容器
- 有没有适用于多节点集群部署的Apache Spark 2.0.0公共Docker镜像?
- 如何将Kubernetes调度程序委托给Yarn
- MySQL – Galera OR Kubernetes复制控制器?
- 如何访问orientDB docker-compose集群?
- 我如何设置一个简单的dockerized RabbitMQ集群?
- 如何将Docker卷用作Mesos / Marathon的持久卷?