日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Helm部署ElasticSearch Kibana 7 集群

發(fā)布時(shí)間:2025/1/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Helm部署ElasticSearch Kibana 7 集群 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、簡(jiǎn)介

  • Elasticsearch 是一個(gè)分布式的搜索和分析引擎,可以用于全文檢索、結(jié)構(gòu)化檢索和分析,并能將這三者結(jié)合起來(lái)。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便,輕松擴(kuò)展服務(wù)節(jié)點(diǎn),更能用于日志收集快速檢索等等一些列功能。
  • Kibana 是一個(gè)為 Elasticsearch 平臺(tái)分析和可視化的開源平臺(tái),使用 Kibana 能夠搜索、展示存儲(chǔ)在 Elasticsearch 中的索引數(shù)據(jù)。使用它可以很方便用圖表、表格、地圖展示和分析數(shù)據(jù)。
  • Helm:Helm(注意:helm 2.0 版本與 3.0 有很大區(qū)別)是與 kubernetes 的 kube-apiserver 進(jìn)行交互,通過(guò) Kubernetes API 控制應(yīng)用啟動(dòng)、更新與刪除的客戶端。

二、資源準(zhǔn)備

ElasticSearch 安裝有最低安裝要求,如果執(zhí)行 Helm 安裝命令后 Pod 無(wú)法正常啟動(dòng),請(qǐng)檢查是否符合最低要求的配置。

1、資源要求

ElasticSearch節(jié)點(diǎn)CPU最小要求內(nèi)存最小要求
Kubernetes master核心數(shù) > 2內(nèi)存 > 2Gi
Kubernetes data核心數(shù) > 1內(nèi)存 > 2Gi
Kubernetes client核心數(shù) > 1內(nèi)存 > 2Gi

2、ElasticSearch 集群環(huán)境

集群名稱節(jié)點(diǎn)類型副本數(shù)目存儲(chǔ)大小網(wǎng)絡(luò)模式描述
elasticsearchKubernetes Master35GiClusterIP主節(jié)節(jié)點(diǎn),用于控制 ES 集群
elasticsearchKubernetes Data350GiClusterIP數(shù)據(jù)節(jié)點(diǎn),用于存儲(chǔ) ES 數(shù)據(jù)
elasticsearchKubernetes Client2無(wú)NodePort(30200)負(fù)責(zé)處理用戶請(qǐng)求,實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)、負(fù)載均衡

3、Kibana 環(huán)境信息

應(yīng)用名稱副本數(shù)目存儲(chǔ)大小網(wǎng)絡(luò)模式描述
Kibana1無(wú)NodePort(30601)用于展示 ElasticSearch 數(shù)據(jù)的應(yīng)用

三、配置 StorageClass

配置一個(gè) SotrageClass,用于創(chuàng)建 Kubernetes 存儲(chǔ)用的 PV、PVC,因?yàn)?ElasticSearch 部署的是 StatefulSet 類型資源,涉及到自動(dòng)卷分配,需要一個(gè)存儲(chǔ)卷分配服務(wù)。例如,使用 NFS 存儲(chǔ)就需要 NFS 共享網(wǎng)絡(luò)卷的 NFS-Provisioner 服務(wù),能夠幫我們自動(dòng)創(chuàng)建存儲(chǔ)空間及 PV 與 PVC,請(qǐng)確認(rèn) Kubernetes 集群中存在這樣的卷分配服務(wù)。這里使用的是 NFS 存儲(chǔ)卷,且存在 NFS Provisioner 服務(wù),使用之前創(chuàng)建的 StorageClass,如下:

$ kubectl get StorageClass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE nfs-storage-new (default) nfs-client Delete Immediate false 6d4h

四 、提前下載鏡像

提前將要部署的應(yīng)用的鏡像下載,避免安裝時(shí)因?yàn)殓R像下載過(guò)慢而導(dǎo)致安裝失敗。這里我們主要用到的兩個(gè)鏡像,下載操作如下:

## 拉取 elasticsearch 鏡像 docker pull elasticsearch:7.7.1## 拉取 kibana 鏡像 docker pull kibana:7.7.1

五、創(chuàng)建集群證書

ElasticSearch 7.x 版本默認(rèn)安裝了 X-Pack 插件,并且部分功能免費(fèi),這里我們配置安全證書文件。

1、生成證書文件

# 運(yùn)行容器生成證書 docker run --name elastic-charts-certs -i -w /app elasticsearch:7.7.1 /bin/sh -c \"elasticsearch-certutil ca --out /app/elastic-stack-ca.p12 --pass '' && \elasticsearch-certutil cert --name security-master --dns \security-master --ca /app/elastic-stack-ca.p12 --pass '' --ca-pass '' --out /app/elastic-certificates.p12"# 從容器中將生成的證書拷貝出來(lái) docker cp elastic-charts-certs:/app/elastic-certificates.p12 ./ # 刪除容器 docker rm -f elastic-charts-certs# 將 pcks12 中的信息分離出來(lái),寫入文件 openssl pkcs12 -nodes -passin pass:'' -in elastic-certificates.p12 -out elastic-certificate.pem

2、添加證書到集群

# 添加證書 kubectl create secret generic elastic-certificates --from-file=elastic-certificates.p12 kubectl create secret generic elastic-certificate-pem --from-file=elastic-certificate.pem# 設(shè)置集群用戶名密碼,用戶名不建議修改 kubectl create secret generic elastic-credentials \--from-literal=username=elastic --from-literal=password=admin@123

六、配置應(yīng)用參數(shù)

通過(guò) Helm 安裝 需要事先創(chuàng)建一個(gè)帶有配置參數(shù)的 values.yaml 文件。然后再執(zhí)行 Helm install 安裝命令時(shí),指定使用此文件。

1、ElasticSearch Master

創(chuàng)建 es-master-values.yaml 文件

# ============設(shè)置集群名稱============ ## 設(shè)置集群名稱 clusterName: "elasticsearch" ## 設(shè)置節(jié)點(diǎn)名稱 nodeGroup: "master" ## 設(shè)置角色 roles: master: "true" ingest: "false" data: "false" # ============鏡像配置============ ## 指定鏡像與鏡像版本 image: "docker.elastic.co/elasticsearch/elasticsearch" imageTag: "7.7.1" ## 副本數(shù) replicas: 3 # ============資源配置============ ## JVM 配置參數(shù) esJavaOpts: "-Xmx1g -Xms1g" ## 部署資源配置(生成環(huán)境一定要設(shè)置大些) resources: requests: cpu: "2000m" memory: "2Gi" limits: cpu: "2000m" memory: "2Gi" ## 數(shù)據(jù)持久卷配置 persistence: enabled: true ## 存儲(chǔ)數(shù)據(jù)大小配置 volumeClaimTemplate: storageClassName: nfs-storage-new accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 5Gi # ============安全配置============ ## 設(shè)置協(xié)議,可配置為 http、https protocol: http ## 證書掛載配置,這里我們掛入上面創(chuàng)建的證書 secretMounts: - name: elastic-certificates secretName: elastic-certificates path: /usr/share/elasticsearch/config/certs ## 允許您在/usr/share/elasticsearch/config/中添加任何自定義配置文件,例如 elasticsearch.yml ## ElasticSearch 7.x 默認(rèn)安裝了 x-pack 插件,部分功能免費(fèi),這里我們配置下 ## 下面注掉的部分為配置 https 證書,配置此部分還需要配置 helm 參數(shù) protocol 值改為 https esConfig: 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: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 # xpack.security.http.ssl.enabled: true # xpack.security.http.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 # xpack.security.http.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 ## 環(huán)境變量配置,這里引入上面設(shè)置的用戶名、密碼 secret 文件 extraEnvs: - name: ELASTIC_USERNAME valueFrom: secretKeyRef: name: elastic-credentials key: username - name: ELASTIC_PASSWORD valueFrom: secretKeyRef: name: elastic-credentials key: password # ============調(diào)度配置============ ## 設(shè)置調(diào)度策略 ## - hard:只有當(dāng)有足夠的節(jié)點(diǎn)時(shí) Pod 才會(huì)被調(diào)度,并且它們永遠(yuǎn)不會(huì)出現(xiàn)在同一個(gè)節(jié)點(diǎn)上 ## - soft:盡最大努力調(diào)度 antiAffinity: "hard" ## 容忍配置(一般 kubernetes master 或其它設(shè)置污點(diǎn)的節(jié)點(diǎn),只有指定容忍才能進(jìn)行調(diào)度,如果測(cè)試環(huán)境只有三個(gè)節(jié)點(diǎn),則可以開啟在 master 節(jié)點(diǎn)安裝應(yīng)用) #tolerations: # - operator: "Exists" ##容忍全部污點(diǎn)

2、ElasticSearch Data

創(chuàng)建 es-data-values.yaml 文件

# ============設(shè)置集群名稱============ ## 設(shè)置集群名稱 clusterName: "elasticsearch" ## 設(shè)置節(jié)點(diǎn)名稱 nodeGroup: "data" ## 設(shè)置角色 roles:master: "false"ingest: "true"data: "true"# ============鏡像配置============ ## 指定鏡像與鏡像版本 image: "docker.elastic.co/elasticsearch/elasticsearch" imageTag: "7.7.1" ## 副本數(shù) replicas: 3# ============資源配置============ ## JVM 配置參數(shù) esJavaOpts: "-Xmx1g -Xms1g" ## 部署資源配置(生成環(huán)境一定要設(shè)置大些) resources:requests:cpu: "1000m"memory: "2Gi"limits:cpu: "1000m"memory: "2Gi" ## 數(shù)據(jù)持久卷配置 persistence:enabled: true ## 存儲(chǔ)數(shù)據(jù)大小配置 volumeClaimTemplate:storageClassName: nfs-storage-newaccessModes: [ "ReadWriteOnce" ]resources:requests:storage: 50Gi# ============安全配置============ ## 設(shè)置協(xié)議,可配置為 http、https protocol: http ## 證書掛載配置,這里我們掛入上面創(chuàng)建的證書 secretMounts:- name: elastic-certificatessecretName: elastic-certificatespath: /usr/share/elasticsearch/config/certs ## 允許您在/usr/share/elasticsearch/config/中添加任何自定義配置文件,例如 elasticsearch.yml ## ElasticSearch 7.x 默認(rèn)安裝了 x-pack 插件,部分功能免費(fèi),這里我們配置下 ## 下面注掉的部分為配置 https 證書,配置此部分還需要配置 helm 參數(shù) protocol 值改為 https esConfig:elasticsearch.yml: |xpack.security.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12# xpack.security.http.ssl.enabled: true# xpack.security.http.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12# xpack.security.http.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 ## 環(huán)境變量配置,這里引入上面設(shè)置的用戶名、密碼 secret 文件 extraEnvs:- name: ELASTIC_USERNAMEvalueFrom:secretKeyRef:name: elastic-credentialskey: username- name: ELASTIC_PASSWORDvalueFrom:secretKeyRef:name: elastic-credentialskey: password# ============調(diào)度配置============ ## 設(shè)置調(diào)度策略 ## - hard:只有當(dāng)有足夠的節(jié)點(diǎn)時(shí) Pod 才會(huì)被調(diào)度,并且它們永遠(yuǎn)不會(huì)出現(xiàn)在同一個(gè)節(jié)點(diǎn)上 ## - soft:盡最大努力調(diào)度 antiAffinity: "hard" ## 容忍配置(一般 kubernetes master 或其它設(shè)置污點(diǎn)的節(jié)點(diǎn),只有指定容忍才能進(jìn)行調(diào)度,如果測(cè)試環(huán)境只有三個(gè)節(jié)點(diǎn),則可以開啟在 master 節(jié)點(diǎn)安裝應(yīng)用) #tolerations: # - operator: "Exists" ##容忍全部污點(diǎn)

3、ElasticSearch Client

創(chuàng)建 es-client-values.yaml 文件

# ============設(shè)置集群名稱============ ## 設(shè)置集群名稱 clusterName: "elasticsearch" ## 設(shè)置節(jié)點(diǎn)名稱 nodeGroup: "client" ## 設(shè)置角色 roles: master: "false" ingest: "false" data: "false" # ============鏡像配置============ ## 指定鏡像與鏡像版本 image: "docker.elastic.co/elasticsearch/elasticsearch" imageTag: "7.7.1" ## 副本數(shù) replicas: 2 # ============資源配置============ ## JVM 配置參數(shù) esJavaOpts: "-Xmx1g -Xms1g" ## 部署資源配置(生成環(huán)境一定要設(shè)置大些) resources: requests: cpu: "1000m" memory: "2Gi" limits: cpu: "1000m" memory: "2Gi" ## 數(shù)據(jù)持久卷配置 persistence: enabled: false # ============安全配置============ ## 設(shè)置協(xié)議,可配置為 http、https protocol: http ## 證書掛載配置,這里我們掛入上面創(chuàng)建的證書 secretMounts: - name: elastic-certificates secretName: elastic-certificates path: /usr/share/elasticsearch/config/certs ## 允許您在/usr/share/elasticsearch/config/中添加任何自定義配置文件,例如 elasticsearch.yml ## ElasticSearch 7.x 默認(rèn)安裝了 x-pack 插件,部分功能免費(fèi),這里我們配置下 ## 下面注掉的部分為配置 https 證書,配置此部分還需要配置 helm 參數(shù) protocol 值改為 https esConfig: 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: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 # xpack.security.http.ssl.enabled: true # xpack.security.http.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 # xpack.security.http.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 ## 環(huán)境變量配置,這里引入上面設(shè)置的用戶名、密碼 secret 文件 extraEnvs: - name: ELASTIC_USERNAME valueFrom: secretKeyRef: name: elastic-credentials key: username - name: ELASTIC_PASSWORD valueFrom: secretKeyRef: name: elastic-credentials key: password # ============Service 配置============ service: type: NodePort nodePort: "30200"

4、Kibana 安裝的配置文件

創(chuàng)建 es-kibana-values.yaml 文件

# ============鏡像配置============ ## 指定鏡像與鏡像版本 image: "docker.elastic.co/kibana/kibana" imageTag: "7.7.1" ## 配置 ElasticSearch 地址 elasticsearchHosts: "http://elasticsearch-client:9200"# ============環(huán)境變量配置============ ## 環(huán)境變量配置,這里引入上面設(shè)置的用戶名、密碼 secret 文件 extraEnvs: - name: 'ELASTICSEARCH_USERNAME' valueFrom: secretKeyRef: name: elastic-credentials key: username - name: 'ELASTICSEARCH_PASSWORD' valueFrom: secretKeyRef: name: elastic-credentials key: password # ============資源配置============ resources: requests: cpu: "1000m" memory: "2Gi" limits: cpu: "1000m" memory: "2Gi" # ============配置 Kibana 參數(shù)============ ## kibana 配置中添加語(yǔ)言配置,設(shè)置 kibana 為中文 kibanaConfig: kibana.yml: | i18n.locale: "zh-CN" # ============Service 配置============ service: type: NodePort nodePort: "30601"

七、helm 安裝

ElasticSearch 與 Kibana 的 Helm Chart 模板是 ES 官方 Github 獲取的,它的 Github 地址為 https://github.com/elastic/helm-charts 可以訪問(wèn)該地址了解更多信息。

1、Helm 安裝 ElasticSearch

ElaticSearch 安裝需要安裝三次,分別安裝 ElasticSearch Master、ElasticSearch Data、ElasticSearch Client 三組。

  • 安裝的第一組 ElasticSearch 作為 Master 角色節(jié)點(diǎn),負(fù)責(zé)集群間的管理工作;
  • 安裝的第二組 ElasticSearch 作為 Data 節(jié)點(diǎn),負(fù)責(zé)存儲(chǔ)數(shù)據(jù);
  • 安裝的第三組 ElasticSearch 作為 Client 節(jié)點(diǎn),負(fù)責(zé)代理 ElasticSearch Cluster 集群,負(fù)載均衡。

ElasticSearch 安裝部署如下:

  • -f:指定部署配置文件
  • –version:指定使用的 Helm Chart 版本號(hào)
# 添加 Chart 倉(cāng)庫(kù) helm repo add elastic https://helm.elastic.co helm repo update# 安裝 ElasticSearch Master 節(jié)點(diǎn) helm install elasticsearch-master -f es-master-values.yaml --version 7.7.1 elastic/elasticsearch# 安裝 ElasticSearch Data 節(jié)點(diǎn) helm install elasticsearch-data -f es-data-values.yaml --version 7.7.1 elastic/elasticsearch# 安裝 ElasticSearch Client 節(jié)點(diǎn) helm install elasticsearch-client -f es-client-values.yaml --version 7.7.1 elastic/elasticsearch

??注意:

?

在安裝 Master 節(jié)點(diǎn)后 Pod 啟動(dòng)時(shí)候會(huì)拋出異常,就緒探針探活失敗,這是個(gè)正常現(xiàn)象。在執(zhí)行安裝 Data 節(jié)點(diǎn)后 Master 節(jié)點(diǎn) Pod 就會(huì)恢復(fù)正常。

?

2、Helm 安裝 Kibana

helm install kibana -f es-kibana-values.yaml --version 7.7.1 elastic/kibana

八、查看安裝的應(yīng)用資源

查看部署完成后各個(gè)組件的列表與狀態(tài):

$ kubectl get service,pod | grep -E 'elasticsearch|kibana' service/elasticsearch-client NodePort 10.96.209.182 <none> 9200:30200/TCP,9300:30209/TCP 3m35s service/elasticsearch-client-headless ClusterIP None <none> 9200/TCP,9300/TCP 3m35s service/elasticsearch-data ClusterIP 10.96.219.21 <none> 9200/TCP,9300/TCP 4m12s service/elasticsearch-data-headless ClusterIP None <none> 9200/TCP,9300/TCP 4m12s service/elasticsearch-master ClusterIP 10.96.37.135 <none> 9200/TCP,9300/TCP 5m11s service/elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 5m15s service/kibana-kibana NodePort 10.96.107.176 <none> 5601:30601/TCP 90s pod/elasticsearch-client-0 0/1 Running 0 3m35s pod/elasticsearch-client-1 0/1 Running 0 3m35s pod/elasticsearch-data-0 0/1 Running 0 4m12s pod/elasticsearch-data-1 0/1 Running 0 4m12s pod/elasticsearch-data-2 0/1 Running 0 4m11s pod/elasticsearch-master-0 0/1 Running 0 5m11s pod/elasticsearch-master-1 0/1 Running 0 5m10s pod/elasticsearch-master-2 0/1 Running 0 5m9s pod/kibana-kibana-6f785f69c9-gzc2p 0/1 Running 0 88s

Pod 信息描述:

  • elasticsearch-master:ES 主節(jié)點(diǎn) Pod;
  • elasticsearch-data:ES 數(shù)據(jù)節(jié)點(diǎn) Pod;
  • elasticsearch-client:ES 客戶端節(jié)點(diǎn) Pod;
  • kibana-kibana:Kibana Pod;

十、訪問(wèn) Kibana 瀏覽 ElasticSearch 數(shù)據(jù)

由上面我們指定了 Kibana 的 NodePort 端口為 30601,所以這里我們輸入地址:http://nodeIp:30601 訪問(wèn) Kibana 界面。

然后我們可以看到,會(huì)出現(xiàn)登錄框,讓我們輸出用戶名、密碼,這里我們輸入上面配置的用戶名、密碼elastic/admin@123進(jìn)行登錄:

登錄

登錄成功后就跳轉(zhuǎn)到 Kibana 主界面:

Kibana 主界面

示例資料:

  • https://github.com/zuozewei/blog-example/tree/master/Kubernetes/k8s-ek

參考鏈接:
Kubernetes Helm3 部署 ElasticSearch & Kibana 7 集群

總結(jié)

以上是生活随笔為你收集整理的Helm部署ElasticSearch Kibana 7 集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。