【问题标题】:Deploying elasticsearch cluster on 3 vms在 3 个 vm 上部署 elasticsearch 集群
【发布时间】:2018-02-17 18:11:53
【问题描述】:

我用 docker-machine 和 VirtualBox 创建了 3 个虚拟机,我正在尝试部署 elasticseach。 我创建了这个 docker-compose:

version: '3.0'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.1
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - esdatavm1:/usr/share/elasticsearch/data
    deploy:
      placement:
        constraints: [node.role == manager]
    ports:
      - 9200:9200
    networks:
      - esvmnet
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.1
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    volumes:
      - esdatavm2:/usr/share/elasticsearch/data
    deploy:
      placement:
        constraints: [node.role == worker]
    networks:
      - esvmnet
  elasticsearch3:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.1
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    volumes:
      - esdatavm3:/usr/share/elasticsearch/data
    deploy:
      placement:
        constraints: [node.role == worker]
    networks:
      - esvmnet
volumes:
  esdatavm1:
    driver: local
  esdatavm2:
    driver: local
  esdatavm3:
    driver: local
networks:
  esvmnet:

但是elasticsearch不能上去,我收到这些警告信息:

[2018-02-17T17:40:12,751][WARN ][o.e.b.JNANatives         ] Unable to lock JVM Memory: error=12, reason=Cannot allocate memory
[2018-02-17T17:40:12,753][WARN ][o.e.b.JNANatives         ] This can result in part of the JVM being swapped out.
[2018-02-17T17:40:12,753][WARN ][o.e.b.JNANatives         ] Increase RLIMIT_MEMLOCK, soft limit: 65536, hard limit: 65536
[2018-02-17T17:40:12,753][WARN ][o.e.b.JNANatives         ] These can be adjusted by modifying /etc/security/limits.conf, for example: 
    # allow user 'elasticsearch' mlockall
    elasticsearch soft memlock unlimited
    elasticsearch hard memlock unlimited

在那个弹性模具之后:

ERROR: [1] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked
[2018-02-17T17:40:26,490][INFO ][o.e.n.Node               ] [F8VD2bv] stopping ...

我应该像警告中所说的那样设置 ulmits 吗? 在 boot2docker 中我没有任何 /etc/security/limits.conf 我应该在哪里设置该选项?

有人可以帮我吗? 非常感谢。 问候。

【问题讨论】:

  • 请用正确的错误更正问题。这不是问题。

标签: docker elasticsearch docker-compose docker-machine boot2docker


【解决方案1】:

问题不同。我已经尝试在我的机器上使用单节点进行复制。

问题如下

[o.e.b.BootstrapChecks ] [4qfUlP0] 绑定或发布到非环回或非链接本地地址,强制执行引导检查 错误:[1] 引导检查失败 [1]:elasticsearch进程请求内存锁定,但内存未锁定

只需取消注释环境中的行

- bootstrap.memory_lock=true

另外,请清楚阅读有关环境变量的 Elastic 文档。

【讨论】:

  • bootstrap.memory_lock=true 未注释。我无法在 compose 中设置 ulimit,因为 compose 文件版本 3 和堆栈部署忽略了 ulimits 选项
猜你喜欢
  • 1970-01-01
  • 2023-02-21
  • 2021-08-26
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2014-12-25
  • 1970-01-01
相关资源
最近更新 更多