使用docker快速部署Elasticsearch集群的方法

2020-06-17 06:52:06易采站长站整理

本文将使用

Docker
容器(使用
docker-compose
编排)快速部署
Elasticsearch 集群
,可用于开发环境(单机多实例)或生产环境部署。

注意,

6.x
版本已经不能通过
-Epath.config
参数去指定配置文件的加载位置,文档说明:

For the archive distributions, the config directory location defaults to

$ES_HOME/config
. The location of the >config directory
can be changed
via the
ES_PATH_CONF
environment variable as follows:
ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch

Alternatively, you can export the ES_PATH_CONF environment variable via the command line or via your shell profile.

即交给环境变量

ES_PATH_CONF
来设定了(官方文档),单机部署多个实例且不使用容器的同学多多注意。

准备工作

安装

docker
&
docker-compose

这里推进使用 daocloud 做个加速安装:


#docker
curl -sSL https://get.daocloud.io/docker | sh

#docker-compose
curl -L
https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m`
> /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

#查看安装结果
docker-compose -v

数据目录


#创建数据/日志目录 这里我们部署3个节点
mkdir /opt/elasticsearch/data/{node0,nod1,node2} -p
mkdir /opt/elasticsearch/logs/{node0,nod1,node2} -p
cd /opt/elasticsearch
#权限我也很懵逼啦 给了 privileged 也不行 索性0777好了
chmod 0777 data/* -R && chmod 0777 logs/* -R

#防止JVM报错
echo vm.max_map_count=262144 >> /etc/sysctl.conf
sysctl -p

docker-compse 编排服务

创建编排文件

vim docker-compose.yml

参数说明

- cluster.name=elasticsearch-cluster

集群名称

- node.name=node0

- node.master=true

- node.data=true

节点名称、是否可作为主节点、是否存储数据

- bootstrap.memory_lock=true