具有弹性簇的docker群
我是初学者,有弹性和码头工人群。我花了两个星期的时间学习并尝试准备一个有弹性的码头工人群。我想用docker swarm准备一个弹性集群。在这里,我们可以轻松地使用缩放。我认为我们需要swarm来做到这一点,需要弹性集群来保持swarm节点之间的数据同步。我还认为,为了实现完全自动化,我希望使用配置了容器主机名的Zen。 由于swarm round rubin的“elasticsearch”主机名应返回所有ip具有弹性簇的docker群,docker,
elasticsearch,nginx,docker-swarm,Docker,
elasticsearch,Nginx,Docker Swarm,我是初学者,有弹性和码头工人群。我花了两个星期的时间学习并尝试准备一个有弹性的码头工人群。我想用docker swarm准备一个弹性集群。在这里,我们可以轻松地使用缩放。我认为我们需要swarm来做到这一点,需要弹性集群来保持swarm节点之间的数据同步。我还认为,为了实现完全自动化,我希望使用配置了容器主机名的Zen。 由于swarm round rubin的“elasticsearch”主机名应返回所有ip docker版本为:17.06.2-ce elastic docker图像版本为:
- docker版本为:17.06.2-ce
- elastic docker图像版本为:elasticsearch:最新
- docker compose版本>=3
version: '3'
services:
elasticsearch:
image: 'elasticsearch:5'
command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=elasticsearch, -E, discovery.zen.minimum_master_nodes=1 ]
nginx:
image: 'nginx:1'
ports:
- '9200:9200'
command: |
/bin/bash -c "echo '
server {
listen 9200;
add_header X-Frame-Options "SAMEORIGIN";
location / {
proxy_pass http://elasticsearch:9200;
proxy_http_version 1.1;
proxy_set_header Connection keep-alive;
proxy_set_header Upgrade $$http_upgrade;
proxy_set_header Host $$host;
proxy_set_header X-Real-IP $$remote_addr;
proxy_cache_bypass $$http_upgrade;
}
}' | tee /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
它不起作用。
后来我做了一些改变:
- 我已经创建了自己的映像,并直接在nginx配置文件中设置nginx参数李>
- 这是我的docker compose文件的新配置
version: '3'
services:
elasticsearch:
image: elasticsearch:latest
deploy:
replicas: 2
ports: ["9300:9300"]
command: [elasticsearch, -E, network.bind_host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=elasticsearch, -E, discovery.zen.minimum_master_nodes=1]
nginx:
image: 'dodi1983/nginx:0.1'
ports:
- 9200:9200
depends_on:
- elasticsearch
后果:
- nginx正在工作
- 从nginx容器elasticsearch解析dns正在工作,并在到节点之间进行负载平衡
谢谢。为我帮助的官方文件
我相信您指的是此页面。部署堆栈后是否运行了
docker service update--endpoint mode=dnsrr
?
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata02:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata01:
driver: local
esdata02:
driver: local
networks:
esnet: