使用docker-compse在多服务器安装elasticserach 7,centos7
参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html
但官网是单服务器,我们需要的是多服务器。
步骤如下:
- 准备hosts文件
- 准备data目录
- 准备docker镜像
- 设置系统参数sysctl.conf
- 准备docker-compose.yaml
- 启动和观察
准备hosts文件
可以直接用ip,但hostname更容易理解
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.29.2.114 es01
172.29.2.42 es02
172.29.2.168 es03
准备data目录
data目录要能让容器的elasticsearch用户使用
mkdir -p /data/es
chown 1000:0 /data/es
准备docker镜像
可以忽略,运行时在下载
elasticsearch:7.17.1和docker.elastic.co/elasticsearch/elasticsearch7.17.1其实是同一个镜像,哪个快下哪个
设置系统参数sysctl.conf
不设置日志会有错
]# cat /etc/sysctl.conf
vm.max_map_count = 262144
]# sysctl -p
准备docker-compose.yaml
注意 network.publish_host修改成本地服务器ip,样例1:
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.1
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- network.publish_host=172.29.2.114
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- /data/es:/usr/share/elasticsearch/data
- /etc/hosts:/etc/hosts
ports:
- 9200:9200
- 9300:9300
volumes:
data01:
driver: local
启动和观察
dock-compose up -d
docker logs观察日志是否报错
观察集群节点状态:curl -X GET “localhost:9200/_cat/nodes?v=true&pretty”