云计算百科
云计算领域专业知识百科平台

Docker部署elasticsearch集群(多台服务器)

1.拉取镜像

docker pull elasticsearch:7.17.14

(以下192.168.0.105为主节点服务器ip,192.168.0.118为从节点服务器IP。)

2.配置工作

  • 首先将vm内存调大,否则无法启动集群,两台电脑都要做这个设置 #修改sysctl.conf
    vi /etc/sysctl.conf
    #修改max_map_count调大,如果没有这个设置,则新增一行
    vm.max_map_count=262144
    #改完保存后, 执行下面命令让sysctl.conf文件生效
    sysctl -p

    2.配置两个elasticsearch.yml文件,分别放到两台服务器的/home/es/config/下        

    其中主节点配置文件如下: # ======================== Elasticsearch Configuration =========================
    # 配置es的集群名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
    cluster.name: elasticsearch
    # 节点名称
    node.name: node-1
    # 指定该节点是否有资格被选举成为node
    node.master: true
    # 指定初始主节点,如果必要,修改成自己的ip地址
    cluster.initial_master_nodes: ["192.168.0.105:9300"]
    # 指定该节点是否存储索引数据,默认为true
    node.data: true
    # 设置绑定的ip地址还有其他节点和该节点交换的ip地址,本机ip
    network.host: 0.0.0.0
    network.publish_host: 192.168.0.105
    # 指定http端口
    http.port: 9200
    # 设置节点间交互的tcp端口,默认是9300
    transport.tcp.port: 9300
    # 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
    discovery.zen.ping.unicast.hosts: ["192.168.0.105:9300","192.168.0.118:9300"]
    # 如果要使用head,那么需要解决跨域问题,使head插件可以访问es
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    3.从节点配置如下

    # ======================== Elasticsearch Configuration =========================
    # 配置es的集群名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
    cluster.name: elasticsearch
    # 节点名称
    node.name: node-2
    # 指定该节点是否有资格被选举成为node
    node.master: true
    # 指定初始主节点
    cluster.initial_master_nodes: ["192.168.0.105:9300"]
    # 指定该节点是否存储索引数据,默认为true
    node.data: true
    # 设置绑定的ip地址还有其他节点和该节点交换的ip地址,本机ip
    network.host: 0.0.0.0
    network.publish_host: 192.168.0.118
    # 指定http端口
    http.port: 9200
    # 设置节点间交互的tcp端口,默认是9300
    transport.tcp.port: 9300
    # 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
    discovery.zen.ping.unicast.hosts: ["192.168.0.105:9300","192.168.0.118:9300"]
    # 如果要使用head,那么需要解决跨域问题,使head插件可以访问es
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    4创建文件挂载目录,两台电脑都要做

    #创建es配置目录

    mkdir /home/es/config –p#创建es数据目录

    mkdir /home/es/data #创建es插件目录

    mkdir /home/es/plugins#授权目录

    chmod -R 777 /home/es

    3.运行部署

    #容器1
    docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d –name es111 -p 9200:9200 -p 9300:9300 -v /home/es/data:/usr/share/elasticsearch/data -v /home/es/plugins:/usr/share/elasticsearch/plugins -v /home/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.17.14

    #容器2
    docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d –name es222 -p 9200:9200 -p 9300:9300 -v /home/es/data:/usr/share/elasticsearch/data -v /home/es/plugins:/usr/share/elasticsearch/plugins -v /home/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.17.14

    4.验证:

    验证:以任意一台服务器ip+9200端口访问以下路径,例如:192.168.0.105:9200/_cat/nodes?v=true&pretty。

  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » Docker部署elasticsearch集群(多台服务器)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!