上一篇 我们介绍了 Elasticsearch ILM 索引生命周期管理。使用 ILM 的前提是具有冷热架构的 ES 集群,本篇就来介绍如何在 Kubernetes 部署这样的集群。
「冷热架构」官方的说法是「热温冷架构」
今天我们讨论 2 个案例,单节点集群和大型多节点集群。
1.20+
3.8+
7.10+
, 8.x
helm repo add sir5kong https://helm-charts.itboon.top/sir5kong
helm repo update sir5kong
因为官方 helm charts 已经不维护了,并且 8.x 版本有严重 bug,所以我复刻了一份并进行了修改。
单节点集群用来做实验,或者作为开发测试环境都是可以的。
helm upgrade --install elasticsearch \
--namespace es-demo \
--create-namespace \
--set singleNodeEnabled="true" \
sir5kong/elasticsearch
helm uninstall elasticsearch --namespace es-demo
我们将会部署 3 组节点:
master
节点data_hot
节点data_cold
节点master 可以跟其他节点部署在一起,但是不建议这么操作;
data_cold
是可选的,不部署也没有关系。
helm upgrade --install elasticsearch-master \
--namespace es-demo \
--create-namespace \
--set clusterName="elasticsearch" \
--set nodeGroup="master" \
--set "roles={master,remote_cluster_client}" \
--set replicas="3" \
sir5kong/elasticsearch
helm upgrade --install elasticsearch-data-cold \
--namespace es-demo \
--create-namespace \
--set clusterName="elasticsearch" \
--set nodeGroup="data-hot" \
--set "roles={data,data_content,data_hot,data_warm,ingest,ml,remote_cluster_client,transform}" \
--set replicas="3" \
sir5kong/elasticsearch
helm upgrade --install elasticsearch-data-cold \
--namespace es-demo \
--create-namespace \
--set clusterName="elasticsearch" \
--set nodeGroup="data-cold" \
--set "roles={data_cold}" \
--set replicas="2" \
sir5kong/elasticsearch
data_cold
是可选的,不部署也没有关系。data_cold
可以选择价格低廉的存储,通过 --set volumeClaimTemplate.storageClassName="Your_Storage_Class"
指定存储类型。https://github.com/sir5kong/helm-charts-hub/tree/main/charts/elasticsearch/examples/tiers
## master
clusterName: elasticsearch
nodeGroup: "master"
roles:
- master
- remote_cluster_client
replicas: 3
esJavaOpts: "-Xmx1g -Xms1g"
resources:
requests:
cpu: 100m
memory: 2G
limits:
cpu: 4
memory: 6G
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
# storageClassName: gp2
resources:
requests:
storage: 20Gi
clusterName: elasticsearch
nodeGroup: "data-hot"
masterService: "elasticsearch-master"
roles:
- data
- data_content
- data_hot
- data_warm
#- data_cold
- ingest
- ml
- remote_cluster_client
- transform
replicas: 3
esJavaOpts: "-Xmx4g -Xms4g"
resources:
requests:
cpu: 2
memory: 6G
limits:
cpu: 6
memory: 12G
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
# storageClassName: gp2
resources:
requests:
storage: 50Gi
具体资源配额和节点调度请根据实际环境进行调整
helm uninstall elasticsearch-master --namespace es-demo
helm uninstall elasticsearch-data-hot --namespace es-demo
helm uninstall elasticsearch-data-cold --namespace es-demo
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。