当前位置:首页 > 服务端 > ECK安装elasticsearch集群及es配置x-pack

ECK安装elasticsearch集群及es配置x-pack

2022年09月15日 23:12:49服务端16

目录

 

ECK安装elasticsearch集群

elasticsearch安装x-pack插件

Elasticsearch Springboot 开发


ECK安装elasticsearch集群

  • ECK为elasticsearch官方提供的在k8s集群上安装es集群的方式
  • 因为es集群为有状态,ECK进行了很好的封装
  • 生产环境面临大的集群状态的话,尝试通过k8s进行es集群的维护会是以后的发展趋势

ECK安装的前提条件

  • k8s集群
  • 配置好pv,可以采用nfs和cephFS,pvc由ECK进行维护
  • 配置好镜像仓库 harbor
  • 将es的镜像从远程服务器下载下来,这样本地拉的时候会快很多

k8s集群部署NFS

k8s集群部署ECK

  • 下载ECK定义的CRD资源和RCAB规则
    kubectl apply -f https://download.elastic.co/downloads/eck/1.4.0/all-in-one.yaml
  • 查看日志
    kubectl -n elastic-system logs -f statefulset.apps/elastic-operator
  • 创建单个节点的es operator自动创建节点
 cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: quickstart
spec:
  version: 7.11.1
  nodeSets:
  - name: default
    count: 1
    config:
      node.store.allow_mmap: false
EOF

(设置node.store.allow_mmap: false对性能有影响,应针对虚拟虚拟机一节中所述的生产工作负载进行调整。)

  • 创建成功之后监控节点的健康状态
    kubectl get elasticsearch
NAME          HEALTH    NODES     VERSION   PHASE         AGE
quickstart    green     1         7.11.1     Ready         1m
  • 查看pod
    kubectl get pods --selector='elasticsearch.k8s.elastic.co/cluster-name=quickstart'

  • 访问es,ECK会给es创建cluster IP,ECK自动集成了X-PACK插件,分别通过kubectl get svc quickstart-es-httpPASSWORD=$(kubectl get secret quickstart-es-elastic-user -o go-template='{ {.data.elastic | base64decode}}')获取IP和密码,默认端口9200
    curl -u "elastic:$PASSWORD" -k "https://quickstart-es-http:9200"

  • kubectl port-forward service/quickstart-es-http 9200
    curl -u "elastic:$PASSWORD" -k "https://localhost:9200"
    得到结果

  "name" : "quickstart1-es-default-0",
  "cluster_name" : "quickstart1",
  "cluster_uuid" : "cqEk6G9dQHKWL4MidTQYAw",
  "version" : {
    "number" : "7.11.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ff17057114c2199c9c1bbecc727003a907c0db7a",
    "build_date" : "2021-02-15T13:44:09.394032Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

elasticsearch安装x-pack插件

es6.8以上的版本默认集成了x-pack,但是需要配置开启

1.es证书生成

将证书文件生成到指定的目录下,这里指定为/etc/elasticsearch

cd $ES_HOME/bin
./elasticsearch-certutil ca -out /etc/elasticsearch/elastic-certificates.p12 -pass

./elasticsearch-certutil ca -out elastic-certificates.p12 -pass
此处操作为,在一台机器上生成,然后分发到集群中的其他机器上,文件要保持一致

2.配置elasticsearch.yml文件

集群中每台机器的配置文件都要添加配置

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12

3.重启es集群

重启es要用普通用户,加上-d命令在后台运行

su elastic
bin/elasticsearch -d

4.生成密码

执行下面的命令,会让输入各种密码

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

此处输入的账号和密码是elastic:OY3iPO2AK&gSz35D

6.验证

curl localhost:9200/_cat/indices?v -u "elastic:OY3iPO2AK&gSz35D"

可以查看到索引,即密码验证成功

6.坑

1.Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

原因是集群中elasticsearch证书不一致

2.ERROR: bootstrap checks failed memory locking requested for elasticsearch process but memory is not locked

在/etc/security/limits.conf中添加配置
* soft memlock unlimited 
* hard memlock unlimited

Elasticsearch Springboot 开发

1.配置文件application.properties

spring.data.elasticsearch.repositories.enabled=true
spring.elasticsearch.rest.uris=http://192.168.223.147:9200
spring.elasticsearch.rest.connection-timeout=30s

2.编写实体类entity
@Document
@Id
@Field

3.编写repository
继承ElasticsearchRepository

4.定义接口
Service

5.写接口实现方法

6.编写Controller

作者:剑侠365
来源链接:https://blog.csdn.net/u010603691/article/details/116641926

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/41600.html

分享给朋友:

“ECK安装elasticsearch集群及es配置x-pack” 的相关文章

python解释器安装教程以及环境变量的配置

python解释器安装教程以及环境变量的配置

一‘’Python是一门强大的语言,目前已支持所有主流操作系统,在Windows7,Windows10系统上需要安装一下: 打开官网 https://www.python.org/downloads/windows/ 下载中心 最上边是两个最新的版本,长期计划...

Linux CentOS操作系统下Docker的安装

Linux CentOS操作系统下Docker的安装

CentOS安装Docker 以Docker为代表的容器技术是目前非常流行的一类技术,对虚拟化、云计算以及软件开发流程都有革命性的影响。本文使用CentOS作为Docker的宿主机,我使用的是CentOS7,linux 3.10 内核,docker...

史上最好用的idea激活方法

史上最好用的idea激活方法

  最近idea老出现激活一段时间然后就让重新激活的情况,每次都网上搜索一大堆激活方法,各种网址被封,各种插件不能用。就通过朋友介绍搞到一种方式,目前对于2018版本和2019版本都能激活并且正常使用。不多说了,直接上解决方法。   一 通过下载jar包放到任意文...

Pycharm断点调试入门

Pycharm断点调试入门

断点调试是在开发过程中常用的功能,能清楚看到代码运行的过程,有利于代码问题跟踪。对我这个小白开发来说,还有一个作用是快速熟悉代码,拿到别人写的代码,有时看不太懂或看的很吃力,光这样看很无感,但是通过断点调试,可以很清楚的看到代码是怎么走的,每一步的参数的值...

IDEA重新激活JRebel方法

IDEA重新激活JRebel方法

笔者最近的JRebel激活失效了很不爽啊。 尝试了几次激活,都以失败告终.... 后面找到了官方文档,看了一下需要手动删除.... 先使用上面的命令删除,本地的许可证 再使用上面的命令重新设置一下,就可以了 从理论上讲是这么一回事,可...

Docker安装指定版本

今天新增一个Docker服务器,Docker安装顺利,启动hello-world测试的时候却出现了问题; $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: P...

IDEA输入注册码时出错:The license has been cancelled

IDEA输入注册码时出错:The license has been cancelled

今天在打开idea开发工具输入激活码的时候,突然就报The license has been cancelled这个错,我们发现在别的电脑使用这个激活码是可以的,于是我找到了解决办法 找到hosts文件:C:\Windows\System32\drivers\etc...

Linux for Ubuntu Intellij Idea 免費激活

注冊碼與方法請點擊這裏. 更改hosts方法: sudo gedit /etc/hosts 作者:可可可可KE是 来源链接:https://blog.csdn.net/tydyz/article/de...

IntelliJ IDEA 激活码,免费的就是香,1分钟快速激活IDEA!

IntelliJ IDEA 激活码,免费的就是香,1分钟快速激活IDEA!

一、IntelliJ IDEA 激活码 下边的 IDEA 激活码失效了的话,请关注微信公众号:码农code之路,然后发送“ 激活码 ”即可获取最新且有效的。 二、免费的就是香,1分钟快速激活IDEA YT8MCJ1MVC-eyJsaWNlb...

ItelliJ idea 16专业版 激活(破解)

[size=medium][color=brown][b]ItelliJ idea 16下载 激活(破解)[/b][/color][/size] [size=medium][color=indigo][b]1. 下载idea[/b][/color][/siz...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。