通过helm方式安装elasticsearch 7.17.3

下载安装包

安装elasticsearch有很多种方法,比如裸机安装、通过docker安装、通过k8s pod安装、通过Helm安装。
本文提供了通过Helm安装elasticsearch集群的方案,该方案出自于es官方。做了点小改动,可以直接在k8s集群中运行。

helm repo add elastic https://helm.elastic.co
helm pull elastic/elasticsearch --version 7.17.3

修改helm 的value文件中的配置

clusterName: "es-cluster"
nodeGroup: "master"

masterService: ""
roles:
  master: "true"
  ingest: "true"
  data: "true"
  remote_cluster_client: "true"
  ml: "true"

replicas: 3
minimumMasterNodes: 2

运行helm安装

helm install elasticsearch elasticsearch -n default

创建PV

如果集群中有3个基点,要另外增加两个PV,并改名字“es-cluster-master-es-cluster-master-0” 为 “es-cluster-master-es-cluster-master-1” 和 “es-cluster-master-es-cluster-master-2”

PV文件 模板如下 es-pv1.yaml:

apiVersion: "v1"
kind: "PersistentVolume"
metadata:
  name: "es-cluster-master-es-cluster-master-0"
spec:
  capacity:
    storage: "100Gi"
  accessModes:
    - "ReadWriteOnce"
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: /data/db/es-data

kubectl apply -f es-pv1.yaml
kubectl apply -f es-pv2.yaml
kubectl apply -f es-pv3.yaml

创建密码

可以查看values.yaml文件,中有说明使用secret方式创建密码。

测试

 curl -XGET --user http://172.16.xx.xx:9200/_cat/nodes

通过docker-compose方式:

master1,master2,master3的ip:
172.16.79.1,172.16.79.2,172.16.79.3

3 台机器的docker-compose文件:

master1
version: '3'
services:
  es:                    # 服务名称
    image: elasticsearch:7.3.0      # 使用的镜像
    container_name: es01   # 容器名称
    restart: always                 # 失败自动重启策略
    environment:
      - node.name=es01                 # 节点名称,集群模式下每个节点名称唯一
      - network.host=0.0.0.0                # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,即本机
      - network.publish_host=172.16.79.1      # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP
      - discovery.seed_hosts=172.16.79.1,172.16.79.2,172.16.79.3        # es7.0之后新增的写法,写入候选主节点的设备地址,在开启服务后,如果master挂了,哪些可以被投票选为主节点
      - cluster.initial_master_nodes=es01  # es7.0之后新增的配置,初始化一个新的集群时需要此配置来选举master
      - cluster.name=es-cluster-prod     # 集群名称,相同名称为一个集群, 三个es节点须一致
      - bootstrap.memory_lock=true  # 内存交换的选项,官网建议为true
      - node.master=true
      - node.data=true
      - http.port=9200
      - transport.tcp.port=9300
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g" # 设置内存,如内存不足,可以尝试调低点
    ulimits:        # 栈内存的上限
      memlock:
        soft: -1    # 不限制
        hard: -1    # 不限制
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点
      - ./data:/usr/share/elasticsearch/data  # 存放数据的文件
      - ./logs:/usr/share/elasticsearch/logs  #存放日志文件
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 #存放证书, 证书生成请自行查阅
    ports:
      - 9200:9200    # http端口,可以直接浏览器访问
      - 9300:9300    # es集群之间相互访问的端口,jar之间就是通过此端口进行tcp协议通信,遵循tcp协议。
    networks:
      - elk
networks:
  elk:
    driver: bridge
    ```

##### master2
```bash
version: '3'
services:
  es:                    # 服务名称
    image: elasticsearch:7.3.0      # 使用的镜像
    container_name: es01   # 容器名称
    restart: always                 # 失败自动重启策略
    environment:
      - node.name=es01                 # 节点名称,集群模式下每个节点名称唯一
      - network.host=0.0.0.0                # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,即本机
      - network.publish_host=172.16.79.2      # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP
      - discovery.seed_hosts=172.16.79.1,172.16.79.2,172.16.79.3        # es7.0之后新增的写法,写入候选主节点的设备地址,在开启服务后,如果master挂了,哪些可以被投票选为主节点
      - cluster.initial_master_nodes=es01  # es7.0之后新增的配置,初始化一个新的集群时需要此配置来选举master
      - cluster.name=es-cluster-prod     # 集群名称,相同名称为一个集群, 三个es节点须一致
      - bootstrap.memory_lock=true  # 内存交换的选项,官网建议为true
      - node.master=true
      - node.data=true
      - http.port=9200
      - transport.tcp.port=9300
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g" # 设置内存,如内存不足,可以尝试调低点
    ulimits:        # 栈内存的上限
      memlock:
        soft: -1    # 不限制
        hard: -1    # 不限制
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点
      - ./data:/usr/share/elasticsearch/data  # 存放数据的文件
      - ./logs:/usr/share/elasticsearch/logs  #存放日志文件
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 #存放证书, 证书生成请自行查阅
    ports:
      - 9200:9200    # http端口,可以直接浏览器访问
      - 9300:9300    # es集群之间相互访问的端口,jar之间就是通过此端口进行tcp协议通信,遵循tcp协议。
    networks:
      - elk
networks:
  elk:
    driver: bridge
    ```
##### master3
```bash
version: '3'
services:
  es:                    # 服务名称
    image: elasticsearch:7.3.0      # 使用的镜像
    container_name: es01   # 容器名称
    restart: always                 # 失败自动重启策略
    environment:
      - node.name=es01                 # 节点名称,集群模式下每个节点名称唯一
      - network.host=0.0.0.0                # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,即本机
      - network.publish_host=172.16.79.3      # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP
      - discovery.seed_hosts=172.16.79.1,172.16.79.2,172.16.79.3        # es7.0之后新增的写法,写入候选主节点的设备地址,在开启服务后,如果master挂了,哪些可以被投票选为主节点
      - cluster.initial_master_nodes=es01  # es7.0之后新增的配置,初始化一个新的集群时需要此配置来选举master
      - cluster.name=es-cluster-prod     # 集群名称,相同名称为一个集群, 三个es节点须一致
      - bootstrap.memory_lock=true  # 内存交换的选项,官网建议为true
      - node.master=true
      - node.data=true
      - http.port=9200
      - transport.tcp.port=9300
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g" # 设置内存,如内存不足,可以尝试调低点
    ulimits:        # 栈内存的上限
      memlock:
        soft: -1    # 不限制
        hard: -1    # 不限制
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点
      - ./data:/usr/share/elasticsearch/data  # 存放数据的文件
      - ./logs:/usr/share/elasticsearch/logs  #存放日志文件
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 #存放证书, 证书生成请自行查阅
    ports:
      - 9200:9200    # http端口,可以直接浏览器访问
      - 9300:9300    # es集群之间相互访问的端口,jar之间就是通过此端口进行tcp协议通信,遵循tcp协议。
    networks:
      - elk
networks:
  elk:
    driver: bridge
    ```

### 启动容器
三台机器上执行,docker-compose up -d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值