使用docker-compse在多服务器安装elasticserach 7,centos7
参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html
但官网是单服务器,我们需要的是多服务器。
步骤如下:

  1. 准备hosts文件
  2. 准备data目录
  3. 准备docker镜像
  4. 设置系统参数sysctl.conf
  5. 准备docker-compose.yaml
  6. 启动和观察

准备hosts文件

可以直接用ip,但hostname更容易理解

  1. # cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 172.29.2.114 es01
  5. 172.29.2.42 es02
  6. 172.29.2.168 es03

准备data目录

data目录要能让容器的elasticsearch用户使用

  1. mkdir -p /data/es
  2. chown 1000:0 /data/es

准备docker镜像

可以忽略,运行时在下载
elasticsearch:7.17.1和docker.elastic.co/elasticsearch/elasticsearch7.17.1其实是同一个镜像,哪个快下哪个

设置系统参数sysctl.conf

不设置日志会有错

  1. ]# cat /etc/sysctl.conf
  2. vm.max_map_count = 262144
  3. ]# sysctl -p

准备docker-compose.yaml

注意 network.publish_host修改成本地服务器ip,样例1:

  1. version: '2.2'
  2. services:
  3. es01:
  4. image: docker.elastic.co/elasticsearch/elasticsearch:7.17.1
  5. container_name: es01
  6. environment:
  7. - node.name=es01
  8. - cluster.name=es-docker-cluster
  9. - network.publish_host=172.29.2.114
  10. - discovery.seed_hosts=es02,es03
  11. - cluster.initial_master_nodes=es01,es02,es03
  12. - bootstrap.memory_lock=true
  13. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  14. ulimits:
  15. memlock:
  16. soft: -1
  17. hard: -1
  18. nofile:
  19. soft: 65535
  20. hard: 65535
  21. volumes:
  22. - /data/es:/usr/share/elasticsearch/data
  23. - /etc/hosts:/etc/hosts
  24. ports:
  25. - 9200:9200
  26. - 9300:9300
  27. volumes:
  28. data01:
  29. driver: local

启动和观察

dock-compose up -d
docker logs观察日志是否报错
观察集群节点状态:curl -X GET “localhost:9200/_cat/nodes?v=true&pretty”