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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群

發(fā)布時(shí)間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群 小編覺(jué)得挺不錯(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-new
??accessModes:?[?"ReadWriteOnce"?]
??resources:
????requests:
??????storage:?50Gi

#?============安全配置============
##?設(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)

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???????????9200:30200/TCP,9300:30209/TCP???3m35s
service/elasticsearch-client-headless???ClusterIP???None????????????????????9200/TCP,9300/TCP???????????????3m35s
service/elasticsearch-data??????????????ClusterIP???10.96.219.21????????????9200/TCP,9300/TCP???????????????4m12s
service/elasticsearch-data-headless?????ClusterIP???None????????????????????9200/TCP,9300/TCP???????????????4m12s
service/elasticsearch-master????????????ClusterIP???10.96.37.135????????????9200/TCP,9300/TCP???????????????5m11s
service/elasticsearch-master-headless???ClusterIP???None????????????????????9200/TCP,9300/TCP???????????????5m15s
service/kibana-kibana???????????????????NodePort????10.96.107.176???????????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

總結(jié)

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

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