docker 安装elasticsearch集群

1.拉取镜像 docker pull elasticsearch:6.5.4 

2.创建配置文件es-node01 ,es-node02,es-node03,如下es-node01基本配置,其它节点改一下HTTP端口9200与集群内部通讯端口9300,集群角色设置看情况修改。(discovery.zen.minimum_master_nodes:选主需要的最低有master资格的节点数,设置不对会出现集群脑裂问题。如宕掉master再启动可能发现它未加入到之前的集群而是自己一个独立成了一个新集群的master:解决方法——如这里三节点集群设置master选举的资格节点数为2,即(N/2+1,N为节点数)个节点才能进行选主。)

cluster.name: es-cluster
node.name: es-node01
network.bind_host: 0.0.0.0
network.publish_host: 192.168.0.108
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.0.108:9300","192.168.0.108:9301","192.168.0.108:9302"]
discovery.zen.minimum_master_nodes: 2

cluster.name: es-cluster
node.name: es-node02
network.bind_host: 0.0.0.0
network.publish_host: 192.168.0.108
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.0.108:9300","192.168.0.108:9301","192.168.0.108:9302"]
discovery.zen.minimum_master_nodes: 2

cluster.name: es-cluster
node.name: es-node03
network.bind_host: 0.0.0.0
network.publish_host: 192.168.0.108
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.0.108:9300","192.168.0.108:9301","192.168.0.108:9302"]
discovery.zen.minimum_master_nodes: 2

3.docker run创建容器同时启动, -d后台启动,刚开始最好不要-d便于查看日志

docker run -v  /home/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml     
-v /home/es/data:/usr/share/elasticsearch/data/nodes  -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d  -p 9200:9200 -p 9300:9300  --name es-node01 elasticsearch:6.5.4

 容器创建后再启动容器 ,需要将docker run改成docker create  并去掉参数 -d ,然后docker start es-node01 && docker logs -f es-node01,很多情况下这样更方便,如下如伪集群批量启动 docker start es-node01 es-node02  es-node03 最好把jvm.options配置文件也挂载到宿主机config下方便修改,宿主机data目录可以使用同一个

docker create -v  /home/es/config/elasticsearch1.yml:/usr/share/elasticsearch/config/elasticsearch1.yml -v /home/es/data1:/usr/share/elasticsearch/data  -e ES_JAVA_OPTS="-Xms256m -Xmx256m"   -p 9200:9200 -p 9300:9300  --name es-node01 elasticsearch:6.5.4


docker create -v  /home/es/config/elasticsearch1.yml:/usr/share/elasticsearch/config/elasticsearch2.yml -v /home/es/data2:/usr/share/elasticsearch/data  -e ES_JAVA_OPTS="-Xms256m -Xmx256m"   -p 9201:9200 -p 9301:9300  --name es-node02 elasticsearch:6.5.4


docker create -v  /home/es/config/elasticsearch3.yml:/usr/share/elasticsearch/config/elasticsearch3.yml -v /home/es/data3:/usr/share/elasticsearch/data  -e ES_JAVA_OPTS="-Xms256m -Xmx256m"   -p 9202:9200 -p 9302:9300  --name es-node03 elasticsearch:6.5.4

启动中可能报错:1.Bind for 0.0.0.0:9301 failed: port is already allocated =》systemctl restart docker 一般就可以解决

                             2."docker-proxy": executable file not found in $PAT 或 docker-runc not installed on system =》cd /usr/libexec/docker 为两个脚本建个软连接 ln -s docker-proxy-current  docker-proxy  ln -s docker-runc-current  docker-runc

                            3.启动还可能报错权限问题,chmod 777 /home/es -R 粗暴递归最高权限

                            4.如果之前没装过es,还可能遇到两三个报错,参考tar包解压安装https://mp.csdn.net/postedit/89398393

                            5.container_linux.go:345: starting container process caused "process_linux.go:430 =>这个问题不只是docker安装es才会遇到,原因是docker 版本与Linux内核不匹配导致的,需要更换docker版本

 

4.集群通信网络问题

如果各个节点不-p 暴露port,全部使用--net host主机模式集群便没有网络问题,但是不太安全。

5.docker安装head,kibana连接测试 

 docker pull mobz/elasticsearch-head:5

 docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5

head使用很可能出现问题,最好搞个kibana,docker pull kibana:6.5.4,日志系统,搜索业务开发都好用   

docker run -it -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 --name kibana --net host kibana:6.5.4

浏览器访问192.168.0.108:5601即可

6. 新版本集群安装参考:https://www.cnblogs.com/werben/p/11550412.html ,插件部分可改为挂载宿主机插件目录

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值