Elasticsearch(二)Docker安装部署

1_BmvPfSSm2G8C-khX1rhCGg.png

Elasticsearch docker 安装部署

Elasticsearch(ES) 的docker镜像运用 Centos:7作为基础镜像。发布过的相关Docker镜像包可以在www.docker.elastic.co官网进行查。源码托管在Github上。

单节点安装

拉取镜像包

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.1

其他的版本镜像包可以去www.docker.elastic.co进行下载。

运行一个单节点集群的服务

运行一个单节点集群服务用来开发或者测试。并且要指定单节点发现来绕过引导检查。详细引导检查请查看引导检查

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.6.1

多节点集群安装

使用Docker Compose 启动一个多节点集群

  • 1 创建一个docker compose文件docker-compose.yml

      version: '2.2'
      services:
        es01:
          image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
          container_name: es01
          environment:
            - node.name=es01
            - cluster.name=es-docker-cluster
            - discovery.seed_hosts=es02,es03
            - cluster.initial_master_nodes=es01,es02,es03
            - bootstrap.memory_lock=true
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          ulimits:
            memlock:
              soft: -1
              hard: -1
          volumes:
            - data01:/usr/share/elasticsearch/data
          ports:
            - 9200:9200
          networks:
            - elastic
        es02:
          image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
          container_name: es02
          environment:
            - node.name=es02
            - cluster.name=es-docker-cluster
            - discovery.seed_hosts=es01,es03
            - cluster.initial_master_nodes=es01,es02,es03
            - bootstrap.memory_lock=true
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          ulimits:
            memlock:
              soft: -1
              hard: -1
          volumes:
            - data02:/usr/share/elasticsearch/data
          networks:
            - elastic
        es03:
          image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
          container_name: es03
          environment:
            - node.name=es03
            - cluster.name=es-docker-cluster
            - discovery.seed_hosts=es01,es02
            - cluster.initial_master_nodes=es01,es02,es03
            - bootstrap.memory_lock=true
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          ulimits:
            memlock:
              soft: -1
              hard: -1
          volumes:
            - data03:/usr/share/elasticsearch/data
          networks:
            - elastic
    
      volumes:
        data01:
          driver: local
        data02:
          driver: local
        data03:
          driver: local
    
      networks:
        elastic:
          driver: bridge
    

此Docker Compose 例子文件将创建一个3个节点的Elasticsearch集群。节点es01 监听 localhost:9200 并且在Docker网络中节点es02 和es03要和es01通信。

请记录此配置文件导出的端口号:9200,并且要在所有网络接口上配置Linux的iptables端口开放信息,这样Elasticsearch服务就有权限公开访问了。如果您不想公开端口9200,而是使用反向代理,请在docker-compose.yml文件中将9200:9200替换为127.0.0.1:9200:9200。 然后只能从主机本身访问Elasticsearch。

#开发9200端口
iptables -A INPUT -p tcp --dport 9200 -j ACCEPT
service iptables save

卷data01,data02,和data01直接存储着节点数据,没有用持久化存储,此种配置在重启服务后数据可能丢失

  • 2 确保为Docker Engine分配了至少4GiB的内存

    如果docker compose 没有安装请查看docs.docker.com网站进行安装

      sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      sudo chmod +x /usr/local/bin/docker-compose 
    

    查看版本

      # docker-compose --version
      docker-compose version 1.25.4, build 8d51620a
    
  • 3 运行docker compose 来创建拉起集群

      docker-compose up -d
    

    报错:
    iptables: No chain/target/match by that name
    原因:
    docker服务启动时定义的自定义链
    DOCKER由于某种原因被清掉重启docker服务及可重新生成自定义链DOCKER
    解决方案:

      iptables -t filter -F
    
      iptables -t filter -X
    
      systemctl restart docker
    

    docker 运行查看

      # docker ps|grep es0
      86b91ba4732f        docker.elastic.co/elasticsearch/elasticsearch:7.6.1   "/usr/local/bin/do..."   5 minutes ago       Up 5 minutes        0.0.0.0:9200->9200/tcp, 9300/tcp   es01
      706171c7357b        docker.elastic.co/elasticsearch/elasticsearch:7.6.1   "/usr/local/bin/do..."   5 minutes ago       Up 5 minutes        9200/tcp, 9300/tcp                 es02
      941ebc831b93        docker.elastic.co/elasticsearch/elasticsearch:7.6.1   "/usr/local/bin/do..."   5 minutes ago       Up 5 minutes        9200/tcp, 9300/tcp                 es03
    
  • 4 提交一个_cat/nodes 请求来查看节点是否被拉起来以及运行状态

      curl -X GET "localhost:9200/_cat/nodes?v&pretty"
    

    查看节点状态结果:

      # curl -X GET "localhost:9200/_cat/nodes?v&pretty"
      ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
      172.18.0.4           22          86   8    0.16    0.58     0.70 dilm      -      es03
      172.18.0.3           16          86   7    0.16    0.58     0.70 dilm      *      es01
      172.18.0.2           27          86   7    0.16    0.58     0.70 dilm      -      es02
    
  • 5 停止集群

      #数据将会保留
      docker-compose down
    
      #数据将被清除
      docker-compose down -v
    
      #重启集群
      docker-compose up -d
    

产品中使用注意事项

  • 1 设置 vm.max_map_count 至少为262144

      grep vm.max_map_count /etc/sysctl.conf
      vm.max_map_count=262144
    
      #如果没有设置运行如下命令
      sysctl -w vm.max_map_count=262144
    
  • 2 配置文件必须被elasticsearch用户可读

    默认情况下,Elasticsearch使用uid:gid 1000:0作为用户elasticsearch在容器内运行。

    如果您要绑定安装本地目录或文件,则elasticsearch用户必须可以读取它。 此外,该用户必须对数据和日志目录具有写权限。

    例如:准备一个本地目录通过mount来存储数据

      mkdir esdatadir
      chmod g+rwx esdatadir
      chgrp 0 esdatadir
    

参考:官方网站

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容