docker 安装集群es

问题一,max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

大致意思是单个进程的最大虚拟内存面积不足,应该设置的大一点。

# 永久生效:修改/etc/sysctl.conf文件添加 vm.max_map_count=262144 配置
vim /etc/sysctl.conf
# 但是需要重启,本次不想重启则执行以下指令即可。后续系统重启则会应用上面修改的参数
sysctl -w vm.max_map_count=262144

问题二,集群启动报权限不足

# 如果是root用户启动报错,则将文件夹权限设置为 777。不建议使用
chown 777 -R /data/elasticsearch1
# 专门用户启动的话,为用户授予文件夹可执行权限
chown elstic-user /data/elasticsearch1 -R

问题二,网络通信问题

具体表现在,容器内部无法访问宿主机网络。
我的原因是本人在docker服务已经启动时修改了虚拟机网络适配器
解决方案,关闭所有docker容器后,重启docker服务。再不行就重启虚拟机。
vm.max_map_count=262144

宿主机准备外挂文件夹

从原来的单体外挂复制一份过来,删除 data、log文件夹里面的历史文件
image

配置elasticsearch.yml文件

elasticsearch1

cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.name: node-1
node.master: true
node.data: true
node.ingest: false
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["172.17.0.1:9301","172.17.0.1:9302","172.17.0.1:9303"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

elasticsearch2

cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.name: node-2
node.master: true
node.data: true
node.ingest: false
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["172.17.0.1:9301","172.17.0.1:9302","172.17.0.1:9303"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

elasticsearch3

cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.name: node-3
node.master: true
node.data: true
node.ingest: false
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["172.17.0.1:9301","172.17.0.1:9302","172.17.0.1:9303"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

依次启动es服务,需要注意的是启动脚本去掉了指定单机运行环境

第1台,注意单机启动的-e "discovery.type=single-node" 配置去掉了

docker run -it --name es1 
-p 9201:9200 -p 9301:9300 
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
-v /data/elasticsearch1/config:/usr/share/elasticsearch/config 
-v /data/elasticsearch1/data:/usr/share/elasticsearch/data 
-v /data/elasticsearch1/logs:/usr/share/elasticsearch/logs 
-v /data/elasticsearch1/plugins:/usr/share/elasticsearch/plugins 
elasticsearch:7.14.0

第2台,注意单机启动的-e "discovery.type=single-node" 配置去掉了

docker run -it --name es1 
-p 9201:9200 -p 9301:9300 
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
-v /data/elasticsearch1/config:/usr/share/elasticsearch/config 
-v /data/elasticsearch1/data:/usr/share/elasticsearch/data 
-v /data/elasticsearch1/logs:/usr/share/elasticsearch/logs 
-v /data/elasticsearch1/plugins:/usr/share/elasticsearch/plugins 
elasticsearch:7.14.0

第3台,注意单机启动的-e "discovery.type=single-node" 配置去掉了

docker run -it --name es1 
-p 9201:9200 -p 9301:9300 
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
-v /data/elasticsearch1/config:/usr/share/elasticsearch/config 
-v /data/elasticsearch1/data:/usr/share/elasticsearch/data 
-v /data/elasticsearch1/logs:/usr/share/elasticsearch/logs 
-v /data/elasticsearch1/plugins:/usr/share/elasticsearch/plugins 
elasticsearch:7.14.0
原文地址:https://www.cnblogs.com/jiangdewen/p/15119574.html