[英]Elasticsearch in Docker container cluster
我想在 2 個不同的主機上運行 2 個 Elasticsearch 實例。
我已經基於 Ubuntu 14.04 和 1.3.2 版本的 Elasticsearch 構建了自己的 Docker 鏡像。 如果我在 1 台主機上運行 2 個 ES 容器,則每個實例都可以看到另一個實例並與之通信; 但是當我在 2 個不同的主機上運行 2 個 ES 實例時,它不起作用。 容器的 9300 端口綁定到 9300 主機的端口。
是否可以使用我的配置創建 ES 集群?
我能夠在兩個 docker 主機上使用單播使集群工作。 我只是碰巧使用了ehazlett/elasticsearch
圖像,但我認為這並不重要。 真正重要的一點似乎是將network.publish_host
設置設置為其 docker 主機的公共或可路由 IP。
eth0: 192.168.1.10
Docker version 1.4.1, build 5bc2ff8/1.4.1
eth0: 192.168.1.20
Docker version 1.4.1, build 5bc2ff8/1.4.1
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 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。 如果它不起作用,您也可以嘗試使用單播配置 ElasticSearch,在您的 elasticsearch.yml 中充分設置機器 IP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.