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
 
 
posted @ 2022-06-09 09:05  不敲代码  阅读(167)  评论(0)    收藏  举报