Captain's Geek-Island Captain's Geek-Island
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)

SleepyOcean

走,找新大陆去
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)
  • 计算机基础

  • 并发专题

  • 性能调优专题

  • 工具专题

  • 源码框架专题

  • 设计模式

  • 分布式专题

  • 实战专题

    • QA展板
    • ES高可用集群搭建
      • 环境清单
      • 搭建步骤
    • Mysql主备复制架构
    • docker搭建基础中间件
    • docker部署微服务
    • k8s集群搭建
    • dockerhub私有容器仓库搭建
    • docker搭建sonarQube
    • docker搭建Confluence
    • docker搭建GitLab
    • Electron开发跨平台应用指南
    • Docker搭建ElasticSearch开发环境
    • Docker搭建Jenkins
    • Docker搭建ELK
    • Docker搭建nocas-server
    • Docker搭建各类Paas服务
  • 技术杂文

  • 云原生专题

  • 大数据分析专题

  • 前端专题

  • 运维专题

  • 经验专题

  • 面试专题

  • 软实力专题

  • 架构师的路
  • 实战专题
SleepyOcean
2020-04-19

ES高可用集群搭建

# 环境清单

三台虚拟机:

  • 192.168.31.201
  • 192.168.31.202
  • 192.168.31.203

# 搭建步骤

  1. 拉取elasticsearch镜像, 配置docker-compose工具
# 拉取elasticsearch镜像
docker pull elasticsearch:7.5.2

# 配置docker-compose工具
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
1
2
3
4
5
6
  1. 环境配置脚本
#!/bin/bash

echo "创建es映射目录及文件 开始..."
mkdir -p /ocean/docker/elasticsearch/config
mkdir -p /ocean/docker/elasticsearch/esdata
touch /ocean/docker/elasticsearch/config/elasticsearch.yml
chmod 777 /ocean/docker/elasticsearch/esdata
echo "创建es映射目录及文件 完成"

echo "配置内存 开始..."
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
echo "配置内存 完成"

touch /ocean/docker/elasticsearch/docker-compose.yml
echo "/ocean/docker/elasticsearch/docker-compose.yml 创建完成"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  1. 编写docker-compose.yml
version: '3'
services:
  elasticsearch:                    # 服务名称
    image: elasticsearch:7.5.2      # 使用的镜像
    container_name: elasticsearch   # 容器名称
    restart: always                 # 失败自动重启策略
    privileged: true				# 特权模式,自动生成相应目录
    environment:                                    
      - node.name=so-node-201                   # 节点名称,集群模式下每个节点名称唯一
      - network.publish_host=192.168.31.201  # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP
      - network.host=0.0.0.0                # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,即本机
      - discovery.seed_hosts=192.168.31.201,192.168.31.202,192.168.31.203          # es7.0之后新增的写法,写入候选主节点的设备地址,在开启服务后,如果master挂了,哪些可以被投票选为主节点
      - cluster.initial_master_nodes=192.168.31.201,192.168.31.202,192.168.31.203  # es7.0之后新增的配置,初始化一个新的集群时需要此配置来选举master
      - cluster.name=so-es-cluster     # 集群名称,相同名称为一个集群, 三个es节点须一致
      # - http.cors.enabled=true    # 是否支持跨域,是:true // 这里设置不起作用,但是可以将此文件映射到宿主机进行修改,然后重启,解决跨域
      # - http.cors.allow-origin="*" # 表示支持所有域名      // 这里设置不起作用,但是可以将此文件映射到宿主机进行修改,然后重启,解决跨域
      - bootstrap.memory_lock=true  # 内存交换的选项,官网建议为true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置内存,如内存不足,可以尝试调低点
    ulimits:        # 栈内存的上限
      memlock:
        soft: -1    # 不限制
        hard: -1    # 不限制
    volumes:
      - /ocean/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点
      - /ocean/docker/elasticsearch/esdata:/usr/share/elasticsearch/data  # 存放数据的文件, 注意:这里的esdata为 顶级volumes下的一项。
    ports:
      - 9200:9200    # http端口,可以直接浏览器访问
      - 9300:9300    # es集群之间相互访问的端口,jar之间就是通过此端口进行tcp协议通信,遵循tcp协议。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

无注释版:

version: '3'
services:
  elasticsearch:                    
    image: elasticsearch:7.5.2      
    container_name: elasticsearch   
    restart: always 
    privileged: true
    environment:                                    
      - node.name=so-node-201                   
      - network.publish_host=192.168.31.201  
      - network.host=0.0.0.0                
      - discovery.seed_hosts=192.168.31.201,192.168.31.202,192.168.31.203          
      - cluster.initial_master_nodes=192.168.31.201,192.168.31.202,192.168.31.203 
      - cluster.name=so-es-cluster  
      - bootstrap.memory_lock=true  
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
    ulimits:        
      memlock:
        soft: -1    
        hard: -1    
    volumes:
      - /ocean/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  
      - /ocean/docker/elasticsearch/esdata:/usr/share/elasticsearch/data  
    ports:
      - 9200:9200    
      - 9300:9300    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ElasticSearch #集群
上次更新: 2020/08/05, 09:08:00

← QA展板 Mysql主备复制架构 →

新鲜出炉
01
记录 - 快速搭建自动化部署平台
04-13
02
Docker搭建各类Paas服务
03-01
03
系统配置 - Android TV配置
02-12
更多文章>
Copyright © 2019-2022 SleepyOcean | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式