Docker build ES cluster

Spring Boot connected ES, spring-boot-starter-data-elasticsearch. You must be a cluster approach! Otherwise error!

Error:

None of the configured nodes are available

 

Installation steps: entering cd / user / local

1.mkdir -p es/config

2.cd es

3.mkdir data1

4.mkdir data2

5.mkdir data3

6.firewall-cmd --add-port=9300/tcp

7.firewall-cmd --add-port=9301/tcp

8.mkdir  plugins1
9.mkdir  plugins2

Step Analysis:

1. Contents file: is used to mount the synchronization profile. Container and external synchronization.

Two outer es 3. 4. 5. represented mount directory

6. 7. firewall settings

8.9 Segmentation plug-in storage

es1.yml

cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.212.252
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["192.168.91.66:9300","192.168.91.66:9301"]
discovery.zen.minimum_master_nodes: 1

es2.yml:

cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.212.252
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["192.168.91.66:9300","192.168.91.66:9301"]
discovery.zen.minimum_master_nodes: 1

 

Step Analysis:

node.name: es-node1 cluster guaranteed to be unique
discovery.zen.minimum_master_nodes: 1 master node has a 

pseudo-cluster mode, where two profiles are different: by distinguishing different port numbers ES
http.port,: 9200 
transport.tcp.port: 9300 


will be put to the above two configuration files:
ES / config

 


 

start up:

Container 1:

Easy to see:

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d  -p 9200:9200 -p 9300:9300 -p 5601:5601

-v   /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml 

-v /home/es/plugins1:/usr/share/elasticsearch/plugins   

-v /home/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch

 

It should be run like this: Formatting

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d  -p 9200:9200 -p 9300:9300 -p 5601:5601 -v  /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /home/es/plugins1:/usr/share/elasticsearch/plugins   -v /home/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch

 

Resolution: Set jvm memory port numbers mount

 

Container 2:

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301

-v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml 

-v /home/es/plugins2:/usr/share/elasticsearch/plugins   

-v /home/es/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch

 Formatting instructions:

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /home/es/plugins2:/usr/share/elasticsearch/plugins  -v /home/es/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch

 

Note: If ELK election 6.X version, then the need to open data1 data2 data3 777 => chmod 777 data1 data2 data3

Guess you like

Origin www.cnblogs.com/toov5/p/11361413.html