Helm3安裝ElasticSearch和Kibana

Awbeci發表於2022-06-26

前言

因為自己的網站要做全文檢索功能,本身我是使用mongodb做為資料庫的,但是考慮到後期資料量非常大而且使用者體驗也要跟上,所以準備入手elasticsearch做為我的站內搜尋,現分享給大家。

安裝

看過我文章的小夥伴應該知道,之前已經使用過helm3安裝過redis、rabbitmq,所以套路都是一樣的,我們先來搜尋elasticsearch和kibana。

命令:

helm search repo elasticsearch
helm search repo kibana

輸出:

NAME                             CHART VERSION    APP VERSION    DESCRIPTION
bitnami/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 Elasticsearch
stable/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 Curator
stable/elasticsearch-exporter    3.7.0            1.1.0          Elasticsearch stats exporter for Prometheus
bitnami/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    DESCRIPTION
bitnami/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 Kibana
stable/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/elasticsearch
helm pull bitnami/kibana

下載下來之後,我們先開啟elasticsearch的values.yaml檔案,查閱之後,我們設定我們想要的配置如下所示:

elasticsearch values.yaml

global:
  storageClass: "alicloud-cnfs-nas"
  elasticsearch:
    service:
      name: elasticsearch
      ports:
        restAPI: 9200
  kibanaEnabled: false
service:
  type: NodePort
master:
  replicaCount: 1
data:
  replicaCount: 1
coordinating:
  replicaCount: 1
ingest:
  replicaCount: 1

注意:因為我使用的是阿里雲的K8S所以storageClass我用的是alicloud-cnfs,之前文章有說過如何安裝,有興趣的可以前去檢視,之後副本我都使用的是1,原因也是想節約資源。

配置好之後,接下來我們來安裝,命令如下:

helm install -f test-values.yaml test-elasticsearch bitnami/elasticsearch --namespace elasticsearch

輸出:

NAME: test-elasticsearch
LAST DEPLOYED: Wed Jun 15 10:11:40 2022
NAMESPACE: elasticsearch
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: elasticsearch
CHART VERSION: 18.2.10
APP 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

# 獲取IP
kubectl 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: NodePort
elasticsearch:
  hosts: [your-elasticsearch-ip]
  port: your-elasticsearch-port
persistence:
  storageClass: "alicloud-cnfs-nas"
  size: 10Gi

配置完之後,我們執行一下命令:

helm install -f test-values.yaml test-kibana bitnami/kibana --namespace elasticsearch

輸出:

NAME: test-kibana
LAST DEPLOYED: Wed Jun 15 21:55:26 2022
NAMESPACE: elasticsearch
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: kibana
CHART VERSION: 10.1.9
APP 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_PORT

WARNING: 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

# 獲取IP
kubectl get nodes --namespace elasticsearch -o jsonpath="{.items[0].status.addresses[0].address}"

完成獲取之後,我們把地址開啟會出現如下顯示,則證明安裝成功,現在開始你的elasticsearch之旅吧。

image.png

總結

1、bitnami/elasticsearch已經整合了kibana,就看你想使用整合的還是獨立的了

引用

Springboot + ElasticSearch 構建部落格檢索系統

相關文章