基于swarm的elasticsearch集群搭建

es集群构建:

1、安装head插件:

  for Elasticsearch 5.x: docker run -p 9100:9100 mobz/elasticsearch-head:5

  ( docker run -p 9100:9100 10.211.121.26/library/elasticsearch-head )

   出现问题

      head主控页面是可以显示的,但是显示连接失败

      “集群健康值: 未连接”

   解决方案

    修改elasticsearch.yml文件

    vim $ES_HOME$/config/elasticsearch.yml

    # 增加如下字段

    http.cors.enabled: true

    http.cors.allow-origin: "*"


  运行:docker run -d -p 9100:9100 --name eshead 10.211.121.26/library/elasticsearch-head:5


2、安装中文分页插件:

  use elasticsearch-plugin to install ( version > v5.5.1 ):

  ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip


3、修改系统参数:sysctl -w vm.max_map_count=262144



4、启动elasticsearch集群:

  master:

      docker run -d  -p 9200:9200 -p 9300:9300 -v /data0/elasticsearch/data:/usr/share/elasticsearch/data  -v /data0/elasticsearch/logs:/usr/share/elasticsearch/logs  --name elasticsearch 10.211.121.26/library/elasticsearch:5.5.1_ik


      docker cp  elasticsearch.yml  elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml


  data:

    docker run -d  -p 9200:9200 -p 9300:9300 -v /data0/elasticsearch/data:/usr/share/elasticsearch/data  -v /data0/elasticsearch/logs:/usr/share/elasticsearch/logs  --name elasticsearch 10.211.121.26/library/elasticsearch:5.5.1_ik


    docker cp  elasticsearch.yml  elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml


5、启动kibana

 docker run --name kibana -e ELASTICSEARCH_URL=http://10.39.10.224:9200 -p 5601:5601 -d kibana:5.5.1




 



##################################################

如下为yml配置文件es.yml :



version: '3.2'

services:

  es_master:

    image: '10.211.121.26/library/elasticsearch:5.5.1_ik'

    #command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=10.0.0.3, -E, discovery.zen.minimum_master_nodes=1 ]

    command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=es_master, -E, discovery.zen.minimum_master_nodes=1, -E, node.master=true ]

    volumes:

      - /data0/elasticsearch/data:/usr/share/elasticsearch/data

      - /data0/elasticsearch/logs:/usr/share/elasticsearch/logs

      #目录必须在主机节点存在


    networks:

       esnet:

    deploy:

      replicas: 3

      #默认是使用的vip模式,集群无法搭建成功。添加dnsrr后ok

      endpoint_mode: dnsrr

      placement:

        constraints: [node.labels.app_role == elasticsearch]


  nginx:

    image: 'nginx:1'

    ports:

       - '9200:9200'

    command: |

      /bin/bash -c "echo '

      server {

        listen 9200;

        add_header X-Frame-Options "SAMEORIGIN";

        location / {

           #proxy_pass http://elasticsearch:9200;

            proxy_pass http://es_master:9200;

            proxy_http_version 1.1;

            proxy_set_header Connection keep-alive;

            proxy_set_header Upgrade $$http_upgrade;

            proxy_set_header Host $$host;

            proxy_set_header X-Real-IP $$remote_addr;

            proxy_cache_bypass $$http_upgrade;

        }

      }' | tee /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"


    networks:

       esnet:

        #ipv4_address: 12.0.0.100


  eshead:

    image: '10.211.121.26/library/elasticsearch-head:5'

    ports:

      - '9100:9100'

    networks:

      esnet:


networks:

   esnet:

    driver: overlay

    ipam:

      driver: default

      config:

      - subnet: 12.0.0.0/24



#在主机上给指定的node 添加 elasticsearch 标签,限制es节点运行在指定主机上。

#  docker node  update  --label-add app_role=elasticsearch  nodename

#

#在swarm  master节点运行: docker stack deploy -c es.yml  es001  ,docker将自动完成集群创建操作。

#

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建 Docker Swarm 集群,你可以按照以下步骤进行操作: 1. 安装 Docker:在每个节点上安装 Docker,可以按照 Docker 官方文档的指引进行安装。确保所有节点上都安装了相同版本的 Docker。 2. 初始化 Swarm:选择其中一个节点作为 Swarm Manager,运行以下命令初始化 Swarm: ``` docker swarm init ``` 这将生成一个 Token,用于其他节点加入 Swarm。 3. 加入节点:在其他节点上运行以下命令,将它们加入 Swarm: ``` docker swarm join --token <token> <manager-ip>:<manager-port> ``` `<token>` 是在初始化 Swarm 时生成的 Token,`<manager-ip>` 和 `<manager-port>` 是 Swarm Manager 的 IP 地址和端口。 4. 部署服务:使用 Docker Stack 或 Docker Compose 编写服务的配置文件,并使用以下命令在 Swarm 上部署服务: ``` docker stack deploy -c <compose-file> <stack-name> ``` `<compose-file>` 是服务配置文件的路径,`<stack-name>` 是你给服务取的名称。 5. 扩展和管理集群:使用 Docker 命令扩展、更新、删除服务,以及管理集群中的节点。例如: - 扩展服务的副本数:`docker service scale <service-name>=<replica-count>` - 更新服务:`docker service update <service-name> --image <new-image>` - 删除服务:`docker stack rm <stack-name>` - 查看集群状态:`docker node ls` 这些步骤可以帮助你搭建一个简单的 Docker Swarm 集群。你可以根据实际需求进行配置和管理。如果需要更详细的指导,可以参考 Docker 官方文档中关于 Swarm 的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值