拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何用Elasticsearch Chart在Kubernetes构建多角色集群:master到data节点完整配置指南

如何用Elasticsearch Chart在Kubernetes构建多角色集群master到data节点完整配置指南【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址: https://gitcode.com/gh_mirrors/chart/charts在 Kubernetes 中部署 Elasticsearch 集群最省心的方式就是使用 Helm Chart。本指南带你用本仓库的 elasticsearch Chart位于 incubator/elasticsearch/一键部署master、client协调节点、data三种角色的多角色 Elasticsearch 集群master 负责集群状态管理client 作为接入层转发请求data 节点存储真实索引数据。整个过程无需手写任何 YAML改几个参数即可完成完整配置。快速了解这个Elasticsearch Chart这个 Chart 位于 incubator/elasticsearch/核心能力在 README.md 中有说明基于StatefulSet / Deployment实现动态可伸缩的 Elasticsearch 集群支持多角色部署master、clientcoordinating、data 节点通过指向 master 传输端口9300的 Service 实现节点发现无需 RBAC 权限支持缩容而不破坏集群⚠️ 注意Chart.yaml 中已标记该 Chart 弃用deprecated: true并提示其已毕业迁移到 stable 仓库生产环境建议优先使用 stable 版本。本文内容以 Chart 1.10.2Elasticsearch 6.4.2为准。多角色架构master、client、data 如何分工角色资源类型默认副本职责masterStatefulSet3集群状态管理、分片分配决策node.master角色clientDeployment2接入层接收查询并转发到 data 节点协调节点dataStatefulSet2存储与检索数据默认每个 Pod 挂载 30Gi PVC三种角色的模板分别对应master 节点templates/master-statefulset.yamldata 节点templates/data-statefulset.yamlclient 节点templates/client-deployment.yaml统一配置 elasticsearch.ymltemplates/configmap.yaml角色差异主要通过环境变量实现例如 data 节点显式设置NODE_MASTER: false而 client 节点同时关闭NODE_DATA和NODE_MASTER。所有节点通过DISCOVERY_SERVICE环境变量指向同一个 headless Service 完成服务发现。一键安装步骤按照 README.md 的说明安装只需两条命令前提Kubernetes 1.6且底层基础设施支持 PV 动态供给helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator helm install --name my-release incubator/elasticsearch安装完成后templates/NOTES.txt 会输出访问方式集群内部通过my-release-client.namespace.svc的 9200 端口访问集群外部根据 Service 类型选择kubectl port-forwardClusterIP 默认或直连 NodePort / LoadBalancer关键参数配置指南所有可调参数及默认值都集中在 values.yaml以下是构建生产集群时最需要关注的几项1. 副本数与防脑裂master.replicas与MINIMUM_MASTER_NODESmaster 默认 3 副本配合 values.yaml 中的cluster: env: MINIMUM_MASTER_NODES: 2这是防止split-brain脑裂的关键设置。规则是quorum 主节点数 / 2 13 个主节点时 quorum 为 2。README 中专门强调了这个设置的极端重要性——如果集群同时选出两个 master数据一致性将受到威胁。2. 节点伸缩replicas相关参数参数默认值说明client.replicas2client协调节点副本数master.replicas3master 节点副本数data.replicas2data 节点副本数例如把 data 节点扩到 5 个--set data.replicas5。data 节点使用 StatefulSet支持缩容而不降级集群data Pod 还内置了preStop / postStart 钩子定义在 configmap.yaml退出前自动把分片迁走新节点启动后自动重新参与分配让扩缩容对业务透明。3. 内存配置heapSize与resources默认堆大小client512m、master512m、data1536m。README 给出了一条必须遵守的公式堆大小 内存 requests 内存 limits例如 data 节点默认堆 1536mrequests 1536Milimits 建议 ≥ 2048Mi。修改时用--set data.heapSize2g --set data.resources.limits.memory4Gi之类的参数即可。4. 持久化存储persistence与storageClassmaster 和 data 节点默认开启持久化PVC 分别为4Gimaster和30Gidata可通过master.persistence.size、data.persistence.size调整。生产环境建议使用 SSD 存储类README 给出了 GCE 场景的示例helm install incubator/elasticsearch --name my-release \ --set data.storageClassssd,data.persistence.size100Gi5. 高级选项速查cluster.config追加到 elasticsearch.yml 的自定义配置例如开启内联脚本script.inline: oncluster.additionalJavaOpts向ES_JVA_OPTS追加 JVM 参数cluster.xpackEnable启用 X-Pack需先换成非 oss 镜像client.serviceType默认 ClusterIP可改为 NodePort / LoadBalancermaster.exposeHttp/data.exposeHttp默认 false仅在监控等需要时暴露 9200extraInitContainers以字符串方式注入额外 init 容器必须用字符串否则安装会失败验证集群健康状态Pod 就绪探针会请求/_cluster/health?localtrue所有节点 Ready 即代表集群拉起成功。你也可以通过 client 节点查看全局状态kubectl port-forward client-pod-name 9200:9200 curl http://127.0.0.1:9200/_cluster/health?pretty期望看到status: green、3 个 master 节点、2 个 data 节点。卸载与清理注意事项helm delete my-release kubectl delete pvc -l releasemy-release,componentdata⚠️ 两个常见坑来自 README.md删除 StatefulSet 不会级联删除 PVC必须手动清理否则重新部署时 PVC 冲突或残留旧数据从 5.5 升级到 6.x 版本时需要整集群重启删除安装保留 PV再用新版本重装或先升到 5.6 再迁移到 6.0常见问题速查FAQPod 起不来日志报vm.max_map_count错误Chart 已内置 sysctl init 容器自动设置为 262144若节点策略禁止特权容器需调整节点安全策略。内存告警Unable to lock JVM Memory这是 Kubernetes 当前无法调高内存锁定限制的限制README 有说明生产上建议为 JVM 预留足够内存缓冲。想开监控6.3 版本将镜像换成elasticsearch非 oss并设置cluster.xpackEnable: true、cluster.env.XPACK_MONITORING_ENABLED: true。总结用本仓库的 elasticsearch Chart 部署多角色集群核心就三步helm install 安装 → 用 values.yaml 调整副本/内存/存储 → 按需扩容缩容。牢记三条黄金法则master 节点保持奇数并配置MINIMUM_MASTER_NODES防脑裂内存满足堆 requests limits公式data 节点务必选择可靠的持久化存储。掌握这些你就能在 Kubernetes 上稳定运行一个专业的 Elasticsearch 集群。【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址: https://gitcode.com/gh_mirrors/chart/charts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门