Elasticsearch 是一个分布式搜索和分析引擎,适用于网络搜索、日志监控和实时分析场景,是大数据应用的理想选择。本 Bitnami Helm Chart 用于在 Kubernetes 集群上通过 Helm 包管理器快速部署 Elasticsearch 集群。
Elasticsearch ***概述
商标说明:本软件列表由 Bitnami 打包。所提及的商标分属各自公司所有,使用这些商标并不意味着任何关联或背书。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像仓库,推出 Bitnami Secure Images 计划,具体变更如下:
详情参见 Bitnami Secure Images 公告。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/elasticsearch
指定发布名称和仓库参数:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/elasticsearch
注意:需将
REGISTRY_NAME和REPOSITORY_NAME替换为实际 Helm 仓库地址。Bitnami ***仓库示例:REGISTRY_NAME=registry-1.docker.io,REPOSITORY_NAME=bitnamicharts。
Bitnami Charts 允许为所有容器设置资源请求和限制,通过 resources 参数配置。生产环境必须设置资源请求,且需根据实际场景调整。
可通过 resourcesPreset 参数使用预设资源配置(如 small、medium),但生产环境建议手动配置以适配具体需求。详情参见 Kubernetes 资源管理文档。
生产环境强烈建议使用不可变标签,避免因标签更新导致部署自动变更。Bitnami 会在主容器版本更新、重大变更或存在严重漏洞时发布新 Chart。
通过设置 metrics.enabled=true 启用 Prometheus 集成,将在所有 Pod 中部署包含 elasticsearch_exporter 的 Sidecar 容器,并创建 metrics Service(支持自动被 Prometheus 抓取的注解配置)。
需已安装 Prometheus 或 Prometheus Operator。推荐使用 Bitnami Prometheus Helm Chart 或 Bitnami Kube Prometheus Helm Chart。
设置 metrics.serviceMonitor.enabled=true 可部署 ServiceMonitor 对象。需确保集群已安装 Prometheus Operator CRD,否则会报错:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
通过 image.tag 参数指定 有效镜像标签 以修改 Elasticsearch 版本,例如 image.tag=X.Y.Z。此方法同样适用于 exporters 等其他镜像。
Bitnami Charts 在首次启动时配置凭证,后续凭证变更需手动操作:
SECRET_NAME 和 PASSWORD 占位符):shellkubectl create secret generic SECRET_NAME --from-literal=elasticsearch-password=PASSWORD --dry-run -o yaml | kubectl apply -f -
Elasticsearch 要求主机内核调整以下参数,否则容器将启动失败:
本 Chart 通过特权 initContainer 自动配置内核参数:
shellsysctl -w vm.max_map_count=262144 && sysctl -w fs.file-max=65536
可通过 sysctlImage.enabled=false 禁用此 initContainer。
通过设置 global.kibanaEnabled=true 启用 Kibana 子 Chart。安装时添加 --render-subchart-notes 参数可查看 Kibana 操作说明。
当启用 Elasticsearch REST 加密时,需同步配置 Kibana:
yamlsecurity: enabled: true elasticPassword: "<PASSWORD>" # 需与 Elasticsearch 密码一致 tls: autoGenerated: true # 自动生成 TLS 证书 kibana: elasticsearch: security: auth: enabled: true kibanaUsername: "<USERNAME>" # 默认用户为 elastic kibanaPassword: "<PASSWORD>" # 与 Elasticsearch 密码一致 tls: enabled: true # 必须与 Elasticsearch REST 加密状态一致 existingSecret: RELEASENAME-elasticsearch-coordinating-crt # 证书 Secret 名称 usePemCerts: true # 自动生成的证书为 PEM 格式
核心一致项:启用 Elasticsearch REST 加密后,需确保以下值一致:
yamlsecurity: tls: restEncryption: true kibana: elasticsearch: security: tls: enabled: true
通过以下配置部署单节点集群(单 master 节点承担所有角色):
yamlmaster: masterOnly: false replicaCount: 1 data: replicaCount: 0 coordinating: replicaCount: 0 ingest: replicaCount: 0
单节点集群将启用 单节点发现模式。
扩缩容注意事项:如需扩展至多节点,需先刷新现有 StatefulSet 配置(例如先缩容至 0 副本避免配置不一致):
consolekubectl scale statefulset <DEPLOYMENT_NAME>-master --replicas=0 helm upgrade <DEPLOYMENT_NAME> oci://REGISTRY_NAME/REPOSITORY_NAME/elasticsearch --reset-values --set master.masterOnly=false
通过 extraEnvVars 直接添加环境变量:
yamlextraEnvVars: - name: ELASTICSEARCH_VERSION value: 7.0
或通过 ConfigMap/Secret 挂载:
extraEnvVarsCM: 引用包含环境变量的 ConfigMap 名称extraEnvVarsSecret: 引用包含环境变量的 Secret 名称通过以下参数挂载自定义初始化脚本(路径:/docker-entrypoint.init-db):
initScripts: 直接在 values.yaml 中定义脚本内容initScriptsCM: 引用包含脚本的 ConfigMap 名称initScriptsSecret: 引用包含敏感脚本的 Secret 名称示例:
yamlinitScriptsCM: special-scripts initScriptsSecret: special-scripts-sensitive
需先注册快照仓库(参考 ***文档)。通过以下配置使用共享文件系统存储快照:
yamlextraVolumes: - name: snapshot-repository nfs: server: nfs.example.com # 替换为 NFS 服务器地址 path: /share1 # 替换为共享路径 extraVolumeMounts: - name: snapshot-repository mountPath: /snapshots snapshotRepoPath: "/snapshots" # 快照仓库路径
通过 XXX.sidecars 参数(XXX 为节点角色,如 master.sidecars)添加 Sidecar 容器:
yamlsidecars: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234
通过 initContainers 参数添加 Init 容器:
yamlinitContainers: - name: your-image-name image: your-image imagePullPolicy: Always
通过 XXX.affinity 参数自定义亲和性规则,或使用 XXX.podAffinityPreset、XXX.podAntiAffinityPreset、XXX.nodeAffinityPreset 应用预设配置(参考 bitnami/common Chart)。
使用 Velero 备份和恢复 Helm Chart 部署,需备份源部署的持久卷并挂载至新部署。详情参见 Velero 使用指南。
Elasticsearch 数据存储路径为容器内 /bitnami/elasticsearch/data。默认通过动态卷供应创建 Persistent Volume Claim (PVC)。
由于镜像默认以非 root 用户运行,需确保持久卷挂载路径权限正确。可通过以下方式配置:
volumePermissions.enabled=true 启用 initContainer 调整权限| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局 Docker 仓库密钥数组 | [] |
global.defaultStorageClass | 持久卷全局默认 StorageClass | "" |
global.storageClass | 已弃用,使用 global.defaultStorageClass 替代 | "" |
global.elasticsearch.service.name | Kibana 子 Chart 引用的 Elasticsearch 服务名(当 kibanaEnabled=false 或设置 global.elasticsearch.service.fullname 时忽略) | elasticsearch |
global.elasticsearch.service.fullname | Kibana 子 Chart 引用的 Elasticsearch 完整服务名(当 kibanaEnabled=false 时忽略) | "" |
global.elasticsearch.service.ports.restAPI | Kibana 子 Chart 使用的 Elasticsearch REST API 端口(当 kibanaEnabled=false 时忽略) | 9200 |
global.kibanaEnabled | 是否启用 Kibana | false |
global.security.allowInsecureImages | 是否允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 调整安全上下文以适配 OpenShift restricted-v2 SCC(移除 runAsUser、runAsGroup、fsGroup),可选值:auto(自动检测 OpenShift 时应用)、force(强制应用)、disabled(禁用) | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 覆盖 Kubernetes 版本 | "" |
nameOverride | 部分覆盖资源全名 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
commonLabels | 添加到所有部署对象的标签 | {} |
commonAnnotations | 添加到所有部署对象的注解 | {} |
clusterDomain | Kubernetes 集群域名 | cluster.local |
extraDeploy | 额外部署的 Kubernetes 对象数组 | [] |
namespaceOverride | 覆盖命名空间 | "" |
usePasswordFiles | 以文件形式挂载凭证(而非环境变量) | true |
diagnosticMode.enabled | 启用诊断模式(禁用所有探针并覆盖命令) | false |
diagnosticMode.command | 诊断模式下覆盖所有容器的命令 | ["sleep"] |
diagnosticMode.args | 诊断模式下覆盖所有容器的参数 | ["infinity"] |
| 参数名 | 描述 | 默认值 |
|---|---|---|
clusterName | Elasticsearch 集群名称 | elastic |
containerPorts.restAPI | Elasticsearch REST API 端口 | 9200 |
containerPorts.transport | Elasticsearch 传输端口 | 9300 |
plugins | 要安装的插件列表(逗号分隔) | "" |

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429