【问题标题】:AWS EC2 issue with Docker Swarm using dnsrr to setup an ElasticSearch cluster discovery使用 dnsrr 设置 ElasticSearch 集群发现的 Docker Swarm 的 AWS EC2 问题
【发布时间】:2018-09-05 21:37:42
【问题描述】:

首先,我认为这个问题并不特定于 ElasticSearch(以免阻碍一些潜在的答案)。

我正在使用带有 dnsrr(DNS 循环)的 docker 服务,以允许发现集群中的每个节点:它们总是尝试使用主机名“elastic”并且(应该)获得不同的 IP。

当我在本地机器上创建 3 台虚拟机时,这工作得非常好,但我不明白为什么当我在 3 台 EC2 机器上运行它时,配置为 swarm 领导者的机器只尝试自己的 IP,而两个工作人员发现彼此没有问题。

我对 AWS 还很陌生,所以我想这一定是某个地方的某种错误配置,但我不知道要检查什么。

如果您对可能导致此问题的原因有任何想法,请提前致谢,如果您想出解决方案就更好了!

使用的docker compose文件如下,简化到最大以隔离问题。

version: "3.3"

services:

  elastic:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
    environment:
    - ES_JAVA_OPTS=-Xms1g -Xmx1g
    - discovery.zen.ping.unicast.hosts=elastic
    - discovery.zen.minimum_master_nodes=2
    volumes:
    - elastic_data:/usr/share/elasticsearch/data
    networks:
    - overnet
    logging:
      driver: "json-file"
      options: 
        max-size: "20m"
        max-file: "10"
    deploy:
      mode: global
      endpoint_mode: dnsrr

networks:
  overnet:
    driver: overlay
    driver_opts:
      encrypted: "true"

volumes:
    elastic_data:
      external: true

【问题讨论】:

    标签: amazon-web-services docker elasticsearch amazon-ec2 docker-swarm


    【解决方案1】:

    尝试在不启用加密的情况下重新创建,看看是否可行。

    还要确保您在三个节点之间有一个安全组all the proper ports open between them

    【讨论】:

    • 谢谢!我的 conf 中缺少 50 端口,我从错误的博客中获取了端口列表,我觉得有点愚蠢......如果你发现自己在里昂地区,请不要犹豫兑换你的免费啤酒 :)
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多