elasticsearch Docker swarm群集和elasticsearch,使用约束将服务绑定到特定节点
我希望这里有人能就我遇到的问题给我一些建议 我有一个Docker swarm集群,有3个节点,我想运行ELK堆栈,但我不知道如何存储我的数据
elasticsearch Docker swarm群集和elasticsearch,使用约束将服务绑定到特定节点,
elasticsearch,docker,docker-compose,elastic-stack,
elasticsearch,Docker,Docker Compose,Elastic Stack,我希望这里有人能就我遇到的问题给我一些建议 我有一个Docker swarm集群,有3个节点,我想运行ELK堆栈,但我不知道如何存储我的数据 version: '3' services: master01: image: elasticsearch:5.2.2 ports: - 9200:9200 - 9300:9300 networks: - es volumes: - /es/data:/usr/share/
version: '3'
services:
master01:
image: elasticsearch:5.2.2
ports:
- 9200:9200
- 9300:9300
networks:
- es
volumes:
- /es/data:/usr/share/elasticsearch/data
command: >
elasticsearch
-E network.host=_eth0_
-E node.master=true
-E discovery.zen.ping.unicast.hosts=es_master01,es_master02,es_master03
-E discovery.zen.minimum_master_nodes=3
-E cluster.name=ElasticCluster
-E node.name=es_master01
-E transport.tcp.port=9300
-E http.port=9200
-E node.max_local_storage_nodes=3
deploy:
replicas: 1
master02:
image: elasticsearch:5.2.2
ports:
- 9201:9200
- 9301:9300
networks:
- es
volumes:
- /es/data:/usr/share/elasticsearch/data
command: >
elasticsearch
-E network.host=_eth0_
-E node.master=true
-E discovery.zen.ping.unicast.hosts=es_master01,es_master02,es_master03
-E discovery.zen.minimum_master_nodes=3
-E cluster.name=ElasticCluster
-E node.name=es_master02
-E transport.tcp.port=9300
-E http.port=9200
-E node.max_local_storage_nodes=3
deploy:
replicas: 1
master03:
image: elasticsearch:5.2.2
ports:
- 9202:9200
- 9302:9300
networks:
- es
volumes:
- /es/data:/usr/share/elasticsearch/data
command: >
elasticsearch
-E network.host=_eth0_
-E node.master=true
-E discovery.zen.ping.unicast.hosts=es_master01,es_master02,es_master03
-E discovery.zen.minimum_master_nodes=3
-E cluster.name=ElasticCluster
-E node.name=es_master03
-E transport.tcp.port=9300
-E http.port=9200
-E node.max_local_storage_nodes=3
deploy:
replicas: 1
logstash:
image: logstash:5.2.2
ports:
- 5000:5000
networks:
- es
command: >
logstash -e 'input { tcp { port => 5000 } } output { elasticsearch { hosts => "master01:9200" } }'
deploy:
replicas: 1
kibana:
image: kibana:5.2.2
ports:
- 5601:5601
environment:
SERVER_NAME: "kibana"
SERVER_HOST: "0"
ELASTICSEARCH_URL: "http://elastic:changeme@master01:9200"
ELASTICSEARCH_USERNAME: "elastic"
ELASTICSEARCH_PASSWORD: "changeme"
XPACK_SECURITY_ENABLED: "true"
XPACK_MONITORING_ENABLED: "true"
networks:
- es
depends_on:
- master01
deploy:
replicas: 1
networks:
es:
driver: overlay
实际上,它的工作原理与以下事实不同:my master01、02、03是随机创建的,并且可以在3个节点上随机移动,这意味着他们将在新节点上重新制作后找不到数据时,将数据复制到新节点。
随着时间的推移,这意味着我的数据存在于x3
我无法正确地使用约束将3个弹性服务分别绑定到一个节点上,而且在搜索时似乎找不到任何有效的方法
我尝试过使用环境:“constraint:node==node1”但在使用我的compose文件构建时,它似乎根本没有任何效果
我四处搜索,找到了一些关于如何使用docker service create的示例,但似乎找不到有效的语法
第一次在这里发帖,所以如果我做错了什么,请温柔一点。我自己可能已经找到了解决办法
Gluster可能是一个完美的解决方案,如果它解决了我的问题,我明天会发布结果。我自己可能已经找到了解决方案 Gluster可能是完美的解决方案,如果它解决了我的问题,我明天会发布结果