Docker搭建elasticsearch集群

一、网络问题

节点之间的网络通讯,目前我们使用的是docker,所以我们要创建一个docker的网络

docker network ls   #查看docker的网络有那些

docker network create es-net   #创建es的网络

二、创建本地的目录,用来映射docker容器中目录

创建目录

mkdir -r /home/elasticsearch/master/config
mkdir -r /home/elasticsearch/master/data
mkdir -r /home/elasticsearch/master/logs
mkdir -r /home/elasticsearch/master/plugins

mkdir -r /home/elasticsearch/node1/config
mkdir -r /home/elasticsearch/node1/data
mkdir -r /home/elasticsearch/node1/logs
mkdir -r /home/elasticsearch/node1/plugins

mkdir -r /home/elasticsearch/node2/config
mkdir -r /home/elasticsearch/node2/data
mkdir -r /home/elasticsearch/node2/logs
mkdir -r /home/elasticsearch/node2/plugins

最后进行授权给一个 777 
chmod -R 777 *

三、创建配置文件

master配置

# 集群名称
cluster.name: edu

# 当前该节点的名称
node.name: elasticsearch_master

# 设置网关地址
network.host: 0.0.0.0

# 设置映射端口
http.port: 9200

discovery.seed_hosts: ["elasticsearch_master", "elasticsearch_node1", "elasticsearch_node2"]

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true

# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["elasticsearch_master", "elasticsearch_node1", "elasticsearch_node2"]

node1配置

# 集群名称
cluster.name: edu

# 当前该节点的名称
node.name: elasticsearch_node1

# 设置网关地址
network.host: 0.0.0.0

# 设置映射端口
http.port: 9200

discovery.seed_hosts: ["elasticsearch_master", "elasticsearch_node1", "elasticsearch_node2"]

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true

# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["elasticsearch_master", "elasticsearch_node1", "elasticsearch_node2"]

node2配置

# 集群名称
cluster.name: edu

# 当前该节点的名称
node.name: elasticsearch_node2

# 设置网关地址
network.host: 0.0.0.0

# 设置映射端口
http.port: 9200

discovery.seed_hosts: ["elasticsearch_master", "elasticsearch_node1", "elasticsearch_node2"]

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true

# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["elasticsearch_master", "elasticsearch_node1", "elasticsearch_node2"]

四、启动docker

#主节点
docker run -d -p 9201:9200 -p 9301:9300 \
--net es-net \
--name elasticsearch_master \
--restart=always \
--memory="4G" \
-v /home/elasticsearch/master/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/master/data/:/usr/share/elasticsearch/data/ \
-v /home/elasticsearch/master/plugins/:/usr/share/elasticsearch/plugins/ \
-v /home/elasticsearch/master/logs/:/usr/share/elasticsearch/logs/ \
-v /etc/localtime:/etc/localtime \
-e TZ="Asia/Shanghai" \
-e LANG="C.UTF-8" \
elasticsearch:7.12.1

#子节点
docker run -d -p 9202:9200 -p 9302:9300 \
--net es-net \
--name elasticsearch_node1 \
--restart=always \
--memory="4G" \
-v /home/elasticsearch/node1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/node1/data/:/usr/share/elasticsearch/data/ \
-v /home/elasticsearch/node1/plugins/:/usr/share/elasticsearch/plugins/ \
-v /home/elasticsearch/node1/logs/:/usr/share/elasticsearch/logs/ \
-v /etc/localtime:/etc/localtime \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e TZ="Asia/Shanghai" \
-e LANG="C.UTF-8" \
elasticsearch:7.12.1

#子节点
docker run -d -p 9203:9200 -p 9303:9300 \
--net es-net \
--name elasticsearch_node2 \
--restart=always \
--memory="4G" \
-v /home/elasticsearch/node2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/node2/data/:/usr/share/elasticsearch/data/ \
-v /home/elasticsearch/node2/plugins/:/usr/share/elasticsearch/plugins/ \
-v /home/elasticsearch/node2/logs/:/usr/share/elasticsearch/logs/ \
-v /etc/localtime:/etc/localtime \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e TZ="Asia/Shanghai" \
-e LANG="C.UTF-8" \
elasticsearch:7.12.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值