docker搭建Elasticsearch集群

打印 上一主题 下一主题

主题 1012|帖子 1012|积分 3040

1.拉取es镜像

  1. docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.0
复制代码
版本根据本身需求举行拉取,我这边选择的是7.17.0,差别版本配置大概稍有差别!
2.配置配置文件

接纳文件挂载的方式,接纳宿主机配置文件,本文接纳的三台主机搭建集群,每一台主机的配置稍有区别!
主机一:
  1. # es1
  2. # 主master配置样例子
  3. # 集群的名称
  4. cluster.name: "docker-cluster"
  5. # 节点的名称
  6. node.name: node-1
  7. # 此节点是否可以用作master节点
  8. node.master: true
  9. # 此节点是否是存储节点
  10. node.data: false
  11. # 此节点是否是预处理节点 如果是master节点的话 建议这里是true
  12. node.ingest: true
  13. #
  14. network.host: 0.0.0.0
  15. # 配置端口
  16. http.port: 9200
  17. # 集群通信端口
  18. transport.port: 9300
  19. # 集群内节点信息 每个节点会共享自己的此参数
  20. # 这里我配置自己的dockerIP
  21. discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
  22. # 集群的master候选节点目录。只有在初始化的时候才生效。
  23. # 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
  24. cluster.initial_master_nodes: ["node-1"]
  25. # cross 跨域访问 配置这个之后 head就可以用了
  26. http.cors.enabled:  true
  27. http.cors.allow-origin:  "*"
复制代码
主机二:
  1. # es2
  2. # 从节点配置样例子
  3. # 集群的名称
  4. cluster.name: "docker-cluster"
  5. # 节点的名称
  6. node.name: node-2
  7. # 此节点是否可以用作master节点
  8. node.master: true
  9. # 此节点是否是存储节点
  10. node.data: true
  11. # 此节点是否是预处理节点 如果是master节点的话 建议这里是true
  12. node.ingest: true
  13. #
  14. network.host: 0.0.0.0
  15. # 配置端口
  16. http.port: 9200
  17. # 集群通信端口
  18. transport.port: 9300
  19. # 集群内节点信息 每个节点会共享自己的此参数
  20. # 这里我配置自己的dockerIP
  21. discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
  22. # 集群的master候选节点目录。只有在初始化的时候才生效。
  23. # 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
  24. cluster.initial_master_nodes: ["node-1"]
  25. # cross 跨域访问 配置这个之后 head就可以用了
  26. http.cors.enabled:  true
  27. http.cors.allow-origin:  "*"
复制代码
主机三:
  1. # es3
  2. # 从节点配置样例子
  3. # 集群的名称
  4. cluster.name: "docker-cluster"
  5. # 节点的名称
  6. node.name: node-3
  7. # 此节点是否可以用作master节点
  8. node.master: true
  9. # 此节点是否是存储节点
  10. node.data: true
  11. # 此节点是否是预处理节点 如果是master节点的话 建议这里是true
  12. node.ingest: true
  13. #
  14. network.host: 0.0.0.0
  15. # 配置端口
  16. http.port: 9200
  17. # 集群通信端口
  18. transport.port: 9300
  19. # 集群内节点信息 每个节点会共享自己的此参数
  20. # 这里我配置自己的dockerIP
  21. discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
  22. # 集群的master候选节点目录。只有在初始化的时候才生效。
  23. # 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
  24. cluster.initial_master_nodes: ["node-1"]
  25. # cross 跨域访问 配置这个之后 head就可以用了
  26. http.cors.enabled:  true
  27. http.cors.allow-origin:  "*"
复制代码
3.启动容器

  1. # 我自己的镜像版本是7.17.0
  2. # 必须限制es内存的大小 es默认内存是4g 单机docker模拟的话 不限制内存 资源是不够的
  3. docker run -d  --name es1 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9200:9200 -p 9300:9300 -v /Users/es/es1/e1.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0
  4. docker run -d  --name es2 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9201:9200 -p 9301:9300 -v /Users/es/es2/e2.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0
  5. docker run -d  --name es3 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9201:9200 -p 9301:9300 -v /Users/es/es2/e3.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0
复制代码
  -v /Users/es/es1/e1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v是挂载,将宿主机 /Users/es/es1/e1.yml挂载到/usr/share/elasticsearch/config/elasticsearch.yml,根据本身的实际目次自行设置,-p是端口映射,切记端口不可已被占用!
  使用ss -nlt 查看端口是否已启动

4.启动过程中碰到的题目

运行elasticsearch时连接时显示已拒绝连接,容器自动关闭的题目
通过docker logs -f CONTAINER ID 查看容器日志信息,看最后面发现一个error:
  1. ERROR: [1] bootstrap checks failed
  2. [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
复制代码
显示max_map_count的值太小了,需要设大到262144,此时查看max_map_count :
  1. cat /proc/sys/vm/max_map_count
  2. 65530
复制代码
设置max_map_count:
  1. sysctl -w vm.max_map_count=262144
  2. vm.max_map_count = 262144
复制代码
重启容器:
  1. docker start  容器id或名字
复制代码
如果重新构建需要删除大概更改容器名称,否则会报错,可以实行docker rm -f $(docker ps -a -q) ,删除所有已退出的容器
5.查看容器启动环境

访问的ip地点需要更改为集群所在宿主机的ip地点
  1. http://127.0.0.1:9200/_cat/nodes?pretty
复制代码


安装elasticsearch Head 插件!

添加集群ip地点就可以查看具体的集群信息,同时可以对集群举行操作!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表