如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Kibana 是一个开源的、基于浏览器的分析和搜索仪表板,专为 Elasticsearch 设计。它旨在提供易于上手的使用体验,同时兼具灵活性和强大功能,用于可视化 Elasticsearch 中的数据并进行交互分析。
Bitnami Kibana Helm Chart 用于在 Kubernetes 集群上通过 Helm 包管理器快速部署和配置 Kibana,简化了在容器化环境中搭建 Elasticsearch 可视化平台的流程。
Kibana 官方概述
商标说明:本软件包由 Bitnami 打包。所提及的商标分别归各自公司所有,使用这些商标并不意味着任何关联或认可。
kibana.yml 或使用 extraConfiguration 添加额外配置项kibana-prometheus-exporter 插件)consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/kibana \ --set elasticsearch.hosts[0]=<Elasticsearch实例主机名> \ --set elasticsearch.port=<Elasticsearch端口>
生产环境建议:如需在生产环境使用,推荐尝试 VMware Tanzu Application Catalog,即 Bitnami 目录的商业版。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共目录,通过新的 Bitnami Secure Images 计划 提供精选的安全加固镜像:
这些变更旨在通过推广软件供应链完整性最佳实践和最新部署,提升所有 Bitnami 用户的安全态势。更多详情请参见 https://github.com/bitnami/containers/issues/83267%E3%80%82
基础安装
使用发布名称 my-release 安装 Chart:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/kibana \ --set elasticsearch.hosts[0]=<Elasticsearch实例主机名> \ --set elasticsearch.port=<Elasticsearch端口>
注意:需替换占位符
REGISTRY_NAME和REPOSITORY_NAME为实际的 Helm 仓库地址。例如,Bitnami 官方仓库需使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
此 Chart 依赖 Elasticsearch 实例(可使用现有实例)。上述命令将以默认配置在 Kubernetes 集群中部署 Kibana。可通过 参数 部分配置更多选项。
提示:使用
helm list查看所有发布。
资源请求和限制
Bitnami Charts 允许为部署中的所有容器设置资源请求(requests)和限制(limits),通过 resources 参数配置(详见参数表)。生产环境中必须设置资源请求,并根据实际需求调整。
为简化配置,Chart 提供 resourcesPreset 参数,可根据预设自动填充 resources 部分(预设定义参见 https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15%EF%BC%89%E3%80%82%E4%BD%86%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%8D%E5%BB%BA%E8%AE%AE%E4%BE%9D%E8%B5%96 resourcesPreset,需根据实际负载手动配置。更多信息参见 Kubernetes 容器资源管理文档。
滚动标签 vs 不可变标签
生产环境强烈建议使用不可变标签(immutable tags),确保部署不会因标签更新而自动变更。Bitnami 将在主容器更新、重大变更或存在严重漏洞时发布新 Chart 以更新容器镜像。
关于滚动标签的详细说明
更新凭证
Bitnami Charts 在首次启动时配置凭证,后续凭证变更需手动操作:
SECRET_NAME 和 PASSWORD):shellkubectl create secret generic SECRET_NAME --from-literal=kibana-password=PASSWORD --dry-run -o yaml | kubectl apply -f -
Prometheus 监控
通过设置 metrics.enabled=true 可启用 Prometheus 集成,此时将暴露 Kibana 原生 Prometheus 端点,并添加自动发现注解。
重要:需安装
kibana-prometheus-exporter插件才能启用监控。参见 安装插件 部分。
Prometheus 依赖
需提前部署 Prometheus 或 Prometheus Operator。可通过 https://github.com/bitnami/charts/tree/main/bitnami/prometheus 或 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus 快速部署。
与 Prometheus Operator 集成
设置 metrics.serviceMonitor.enabled=true 可部署 ServiceMonitor 对象,实现与 Prometheus Operator 的集成。需确保集群中已安装 Prometheus Operator CustomResourceDefinitions,否则将报错:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
可通过 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus 安装所需 CRDs 和 Prometheus Operator。
更改 Kibana 版本
通过 image.tag 参数指定镜像标签,或 image.repository 参数指定镜像仓库,可修改部署的 Kibana 版本。
使用自定义配置
方法 1:挂载自定义 ConfigMap
创建包含 kibana.yml 的 ConfigMap:
yamlapiVersion: v1 kind: ConfigMap metadata: name: myconfig data: kibana.yml: |- # 自定义配置内容 server.port: 5601 elasticsearch.hosts: ["http://elasticsearch:9200"]
安装时指定 ConfigMap 名称:--set configurationCM=myconfig。
方法 2:通过 extraConfiguration 添加额外配置
在默认配置基础上追加额外设置:
yamlextraConfiguration: "server.maxPayloadBytes": 1048576 # 1MB "server.pingTimeout": 1500 # 1500ms
使用 TLS 加密流量
设置 tls.enabled=true 可启用 TLS。支持两种配置方式:
tls.existingSecret 指定现有 TLS 密钥 Secrettls.autoGenerated=true 由 Chart 自动生成证书添加额外环境变量
通过 extraEnvVars 添加额外环境变量:
yamlextraEnvVars: - name: ELASTICSEARCH_VERSION value: "8"
也可通过 ConfigMap 或 Secret 注入环境变量,分别使用 extraEnvVarsCM 或 extraEnvVarsSecret 参数指定资源名称。
使用自定义初始化脚本
通过 initScriptsCM(普通脚本)或 initScriptsSecret(敏感脚本)挂载初始化脚本,脚本将被挂载至 /docker-entrypoint.init-db 目录并自动执行:
console--set elasticsearch.hosts[0]=elasticsearch-host \ --set elasticsearch.port=9200 \ --set initScriptsCM=special-scripts \ # 普通脚本 ConfigMap --set initScriptsSecret=special-scripts-sensitive # 敏感脚本 Secret
安装插件
通过 plugins 参数指定部署时安装的插件列表:
console--set elasticsearch.hosts[0]=elasticsearch-host \ --set elasticsearch.port=9200 \ --set plugins[0]=https://github.com/fbaligand/kibana-enhanced-table/releases/download/v1.5.0/enhanced-table-1.5.0_7.3.2.zip
注意:确保插件版本与 Kibana 版本兼容。
导入保存对象(可视化/仪表板)
如需导入 NDJSON 格式的可视化或仪表板:
方法 1:通过 ConfigMap 导入
创建包含 NDJSON 文件的 ConfigMap,安装时指定 --set savedObjects.configmap=my-import。
方法 2:通过 URL 导入
指定 NDJSON 文件的 URL 列表:--set savedObjects.urls[0]=https://example.com/import.ndjson。
使用 Sidecar 和 Init 容器
Sidecar 容器
通过 sidecars 参数添加额外容器(如监控代理、日志收集器):
yamlsidecars: - name: metrics-exporter image: my-exporter:latest imagePullPolicy: Always ports: - name: exporter-port containerPort: 9100
如需暴露 Sidecar 容器端口,使用 service.extraPorts:
yamlservice: extraPorts: - name: exporter port: 9100 targetPort: exporter-port
注意:Chart 已包含 Prometheus 指标导出器的 Sidecar(需
--enable-metrics=true激活),sidecars参数仅用于添加额外容器。
Init 容器
通过 initContainers 参数添加初始化容器(部署前执行准备操作):
yamlinitContainers: - name: pre-check image: busybox:latest command: ["sh", "-c", "until nslookup elasticsearch; do sleep 2; done"]
了解更多关于 Sidecar 容器 和 Init 容器。
示例:添加 Elasticsearch Sidecar(测试用)
测试环境中可通过 Sidecar 部署 Elasticsearch(生产环境建议使用独立 Elasticsearch Chart):
console--set elasticsearch.hosts[0]=localhost \ --set elasticsearch.port=9200 \ --set sidecars[0].name=elasticsearch \ --set sidecars[0].image=bitnami/elasticsearch:latest \ --set sidecars[0].imagePullPolicy=IfNotPresent \ --set sidecars[0].ports[0].name=http \ --set sidecars[0].ports[0].containerPort=9200
设置 Pod 亲和性
通过 affinity 参数自定义 Pod 亲和性规则(详见 Kubernetes 亲和性文档)。
也可使用 https://github.com/bitnami/charts/tree/main/bitnami/common#affinities Chart 提供的预设亲和性配置,通过 podAffinityPreset、podAntiAffinityPreset 或 nodeAffinityPreset 参数启用。
备份与恢复
使用 Velero 工具备份和恢复 Helm 部署,需备份源部署的持久卷并将其附加到新部署。详见 Velero 使用指南。
Bitnami Kibana 镜像支持数据持久化,默认持久化路径为 /bitnami/kibana,通过动态卷供应创建 PV 并挂载。
通过 extraVolumes 和 extraVolumeMounts 参数挂载额外卷(PVC、Secret 或 ConfigMap),可与自定义 Init 容器或 Sidecar 配合使用。
由于镜像默认以非 root 用户运行,需确保持久卷的所有权可被容器用户写入。Chart 支持两种方式:
volumePermissions.enabled=true,通过 Init 容器提前调整卷权限| 名称 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局 Docker 仓库密钥名称列表 | [] |
global.defaultStorageClass | 持久卷的全局默认 StorageClass | "" |
global.storageClass | 已弃用:使用 global.defaultStorageClass 替代 | "" |
global.security.allowInsecureImages | 允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 调整 securityContext 以兼容 OpenShift restricted-v2 SCC:移除 runAsUser、runAsGroup 和 fsGroup,由平台使用默认 ID。可选值:auto(自动检测 OpenShift 时应用)、force(强制应用)、disabled(禁用) | auto |
| 名称 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 强制目标 Kubernetes 版本(未设置则使用 Helm 能力检测) | "" |
nameOverride | 部分覆盖资源全名(前缀为发布名称) | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
commonAnnotations | 添加到所有部署对象的注解 | {} |
commonLabels | 添加到所有部署对象的标签 | {} |
extraDeploy | 额外部署的 Kubernetes 资源列表 | [] |
clusterDomain | Kubernetes 集群域名 | cluster.local |
usePasswordFiles | 以文件方式挂载凭证(而非环境变量) | true |
diagnosticMode.enabled | 启用诊断模式(禁用所有探针,覆盖命令) | false |
diagnosticMode.command | 诊断模式下覆盖所有容器的命令 | ["sleep"] |
diagnosticMode.args | 诊断模式下覆盖所有容器的参数 | ["infinity"] |
| 名称 | 描述 | 默认值 |
|---|---|---|
image.registry | Kibana 镜像仓库 | REGISTRY_NAME |
image.repository | Kibana 镜像名称 | `REPOSIT |
以下是 bitnamicharts/kibana 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务