swarm 部署es集群
参考资料https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docker.html
version: '3.7'
services:
es01:
image: elasticsearch:7.4.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=false
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- dms
deploy:
placement:
constraints:
- "node.labels.elasticsearch.cluster==master"
es02:
image: elasticsearch:7.4.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=false
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- dms
deploy:
placement:
constraints:
- "node.labels.elasticsearch.cluster==node1"
es03:
image: elasticsearch:7.4.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=false #必须关闭,我测试好多次,打开之后就会报错JVM,各种方法测试了也没用
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
ports:
- 9200:9200 #定义暴露端口
networks:
- dms #定义dms共享网络,这样集群之类才能互相通信,自动分配IP
deploy:
placement:
constraints:
- "node.labels.elasticsearch.cluster==node2" #定义节点分配位置
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
#定义服务网桥名称
dms:
#指定网桥驱动,有bridge/overlay,默认是bridge
driver: overlay
#false-统自动创建网桥名,格式为: 目录名_网桥名,默认为false; true-使用外部创建的网桥,需要自己手动创建
external: true
docker stack deploy -c es-ekf.yml es-ekf
浙公网安备 33010602011771号