前言
因为本人的网站要做全文检索性能,自身我是应用mongodb做为数据库的,然而思考到前期数据量十分大而且用户体验也要跟上,所以筹备动手elasticsearch做为我的站内搜索,现分享给大家。
装置
看过我文章的小伙伴应该晓得,之前曾经应用过helm3装置过redis、rabbitmq,所以套路都是一样的,咱们先来搜寻elasticsearch和kibana。
命令:
helm search repo elasticsearchhelm search repo kibana
输入:
NAME CHART VERSION APP VERSION DESCRIPTIONbitnami/elasticsearch 18.2.9 8.2.2 Elasticsearch is a distributed search and analy...elastic/elasticsearch 7.17.3 7.17.3 Official Elastic helm chart for Elasticsearchstable/elasticsearch 1.32.5 6.8.6 DEPRECATED Flexible and powerful open source, d...stable/elasticsearch-curator 2.2.3 5.7.6 DEPRECATED A Helm chart for Elasticsearch Curatorstable/elasticsearch-exporter 3.7.0 1.1.0 Elasticsearch stats exporter for Prometheusbitnami/dataplatform-bp2 12.0.3 1.0.1 This Helm chart can be used for the automated d...bitnami/grafana 7.6.5 8.3.4 Grafana is an open source, feature rich metrics...bitnami/kibana 10.1.9 8.2.2 Kibana is an open source, browser based analyti...elastic/eck-operator 2.2.0 2.2.0 A Helm chart for deploying the Elastic Cloud on...stable/apm-server 2.1.7 7.0.0 DEPRECATED The server receives data from the El...stable/dmarc2logstash 1.3.1 1.0.3 DEPRECATED Provides a POP3-polled DMARC XML rep...stable/elastabot 1.2.1 1.1.0 DEPRECATED A Helm chart for Elastabot - a Slack...stable/elastalert 1.5.1 0.2.4 DEPRECATED ElastAlert is a simple framework for...stable/fluentd 2.5.3 v2.4.0 DEPRECATED A Fluentd Elasticsearch Helm chart f...stable/kibana 3.2.7 6.7.0 Kibana is an open source data visualization plu...elastic/eck-operator-crds 2.2.0 2.2.0 A Helm chart for installing the ECK operator Cu...
NAME CHART VERSION APP VERSION DESCRIPTIONbitnami/kibana 10.1.9 8.2.2 Kibana is an open source, browser based analyti...elastic/kibana 7.17.3 7.17.3 Official Elastic helm chart for Kibanastable/kibana 3.2.7 6.7.0 Kibana is an open source data visualization plu...elastic/eck-operator 2.2.0 2.2.0 A Helm chart for deploying the Elastic Cloud on...bitnami/dataplatform-bp2 12.0.3 1.0.1 This Helm chart can be used for the automated d...elastic/eck-operator-crds 2.2.0 2.2.0 A Helm chart for installing the ECK operator Cu...
而后找到本人想要的repo拉下来,比方我这里选用的是bitnami/elasticsearch和bitnami/kibana,接着输出以下命令:
命令:
helm pull bitnami/elasticsearchhelm pull bitnami/kibana
下载下来之后,咱们先关上elasticsearch的values.yaml文件,查阅之后,咱们设置咱们想要的配置如下所示:
elasticsearch values.yaml
global: storageClass: "alicloud-cnfs-nas" elasticsearch: service: name: elasticsearch ports: restAPI: 9200 kibanaEnabled: falseservice: type: NodePortmaster: replicaCount: 1data: replicaCount: 1coordinating: replicaCount: 1ingest: replicaCount: 1
留神:因为我应用的是阿里云的K8S所以storageClass我用的是alicloud-cnfs,之前文章有说过如何装置,有趣味的能够前去查看,之后正本我都应用的是1,起因也是想节约资源。
配置好之后,接下来咱们来装置,命令如下:
helm install -f test-values.yaml test-elasticsearch bitnami/elasticsearch --namespace elasticsearch
输入:
NAME: test-elasticsearchLAST DEPLOYED: Wed Jun 15 10:11:40 2022NAMESPACE: elasticsearchSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:CHART NAME: elasticsearchCHART VERSION: 18.2.10APP VERSION: 8.2.2------------------------------------------------------------------------------- WARNING Elasticsearch requires some changes in the kernel of the host machine to work as expected. If those values are not set in the underlying operating system, the ES containers fail to boot with ERROR messages. More information about these requirements can be found in the links below: https://www.elastic.co/guide/en/elasticsearch/reference/current/file-descriptors.html https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html This chart uses a privileged initContainer to change those settings in the Kernel by running: sysctl -w vm.max_map_count=262144 && sysctl -w fs.file-max=65536** Please be patient while the chart is being deployed ** Elasticsearch can be accessed within the cluster on port 9200 at test-elasticsearch.elasticsearch.svc.cluster.local To access from outside the cluster execute the following commands: export NODE_PORT=$(kubectl get --namespace elasticsearch -o jsonpath="{.spec.ports[0].nodePort}" services test-elasticsearch) export NODE_IP=$(kubectl get nodes --namespace elasticsearch -o jsonpath="{.items[0].status.addresses[0].address}") curl http://$NODE_IP:$NODE_PORT/
这样就装置好了,接下来,咱们通过以下命令来获取IP和PORT目标是拜访咱们曾经装置好的elasticsearch
# 获取端口kubectl get --namespace elasticsearch -o jsonpath="{.spec.ports[0].nodePort}" services test-elasticsearch# 获取IPkubectl get nodes --namespace elasticsearch -o jsonpath="{.items[0].status.addresses[0].address}"
实现获取之后,咱们把地址关上会呈现如下显示,则证实装置胜利。
{ "name" : "test-elasticsearch-coordinating-0", "cluster_name" : "elastic", "cluster_uuid" : "fd9jc0k3QY2E5wYHgcGNbA", "version" : { "number" : "8.2.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef", "build_date" : "2022-05-25T15:47:06.259735307Z", "build_snapshot" : false, "lucene_version" : "9.1.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search"}
装置好之后,接下来咱们装置kibana,跟装置elasticsearch相似,咱们配置一下pull 下来的values.yaml文件
service: type: NodePortelasticsearch: hosts: [your-elasticsearch-ip] port: your-elasticsearch-portpersistence: storageClass: "alicloud-cnfs-nas" size: 10Gi
配置完之后,咱们执行一下命令:
helm install -f test-values.yaml test-kibana bitnami/kibana --namespace elasticsearch
输入:
NAME: test-kibanaLAST DEPLOYED: Wed Jun 15 21:55:26 2022NAMESPACE: elasticsearchSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:CHART NAME: kibanaCHART VERSION: 10.1.9APP VERSION: 8.2.2** Please be patient while the chart is being deployed **1. Get the application URL by running these commands: export NODE_PORT=$(kubectl get --namespace elasticsearch -o jsonpath="{.spec.ports[0].nodePort}" services test-kibana) export NODE_IP=$(kubectl get nodes --namespace elasticsearch -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORTWARNING: Kibana is externally accessible from the cluster but the dashboard does not contain authentication mechanisms. Make sure you follow the authentication guidelines in your Elastic stack.+info https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-up-authentication.html
这样就装置好了,接下来,咱们通过以下命令来获取IP和PORT目标是拜访咱们曾经装置好的elasticsearch
# 获取端口kubectl get --namespace elasticsearch -o jsonpath="{.spec.ports[0].nodePort}" services test-kibana# 获取IPkubectl get nodes --namespace elasticsearch -o jsonpath="{.items[0].status.addresses[0].address}"
实现获取之后,咱们把地址关上会呈现如下显示,则证实装置胜利,当初开始你的elasticsearch之旅吧。
总结
1、bitnami/elasticsearch曾经集成了kibana,就看你想应用集成的还是独立的了
援用
Springboot + ElasticSearch 构建博客检索系统