如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Bitnami ClickHouse Helm Chart 用于在 Kubernetes 集群中部署 ClickHouse——一个开源的列式 OLAP (在线分析处理) 数据库管理系统。该 Chart 由 Bitnami 精心构建和维护,旨在提供快速、可靠且易于扩展的 ClickHouse 部署方案,适用于需要高性能数据分析、线性可扩展性和硬件效率优化的场景。
ClickHouse 官方概述
商标说明:本软件列表由 Bitnami 打包。所提及的 respective 商标归各自公司所有,使用这些商标并不意味着任何关联或背书。
config.d 和 users.d 目录快速部署命令:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/clickhouse
提示:此应用也可作为 Azure Marketplace 上的 Kubernetes 应用使用。Kubernetes 应用是在 AKS 上部署 Bitnami 应用的最简单方式。点击 此处 查看 Azure Marketplace 列表。
如需在生产环境使用 ClickHouse,可尝试 VMware Tanzu Application Catalog,这是 Bitnami 目录的商业版本。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共目录,在新的 Bitnami Secure Images 计划 下提供精选的强化、安全聚焦镜像。此次变更包括:
这些变更旨在通过推广软件供应链完整性和最新部署的最佳实践,提升所有 Bitnami 用户的安全态势。更多详情,请访问 https://github.com/bitnami/containers/issues/83267%E3%80%82
若使用 Kubernetes 1.18,需注释以下代码:
yamlseccompProfile: type: "RuntimeDefault"
基本安装
使用发布名称 my-release 安装 Chart:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/clickhouse
注意:需将占位符
REGISTRY_NAME和REPOSITORY_NAME替换为 Helm 仓库地址。例如,Bitnami 官方仓库需使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
上述命令将以默认配置在 Kubernetes 集群中部署 ClickHouse。配置参数可在安装时通过 --set 或 -f 指定,详见 参数 部分。
提示:使用
helm list查看所有发布版本。
资源请求与限制
Bitnami Chart 允许为部署中的所有容器设置资源请求(requests)和限制(limits),配置路径为 resources(见参数表)。生产环境中必须设置资源请求,并根据实际场景调整。
为简化配置,Chart 提供 resourcesPreset 参数,可根据预设自动设置 resources 部分。预设定义详见 https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15%E3%80%82**%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%8D%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8 resourcesPreset**,因其可能无法完全适配具体需求。更多容器资源管理详情,请参考 Kubernetes 官方文档。
Prometheus 指标集成
通过设置 metrics.enabled=true 可启用 Prometheus 集成,此时将暴露 ClickHouse 原生 Prometheus 端点,并添加自动抓取所需的注解。
前提条件
需已安装 Prometheus 或 Prometheus Operator。推荐安装 https://github.com/bitnami/charts/tree/main/bitnami/prometheus 或 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus%E3%80%82
与 Prometheus Operator 集成
设置 metrics.serviceMonitor.enabled=true 可部署 ServiceMonitor 对象,实现与 Prometheus Operator 集成。需确保集群中已安装 Prometheus Operator CustomResourceDefinitions,否则会报错:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
滚动标签 vs 不可变标签
生产环境强烈建议使用不可变标签,以避免标签更新导致部署自动变更。Bitnami 会在主容器版本更新、重大变更或发现严重漏洞时,发布新的 Chart 以更新容器镜像。
更新凭证
Bitnami Chart 在首次启动时配置凭证,后续更新需手动操作:
SECRET_NAME 和 PASSWORD 占位符):shellkubectl create secret generic SECRET_NAME --from-literal=admin-password=PASSWORD --dry-run -o yaml | kubectl apply -f -
ClickHouse Keeper
默认情况下,Chart 会部署 ClickHouse Keeper(轻量级 ZooKeeper 替代方案)作为独立 StatefulSet。当 ClickHouse 副本数 >1 或使用分片时,Keeper 为必填组件。
外部 ZooKeeper 支持
如需连接外部 ZooKeeper 而非内置 Keeper(如使用托管服务或共享集群),可通过 externalZookeeper 参数配置,并禁用 Keeper:
consolehelm install my-release oci://... --set keeper.enabled=false \ --set externalZookeeper.servers[0]=myexternalhost \ --set externalZookeeper.port=2888
配置 ClickHouse
ClickHouse 配置支持两种扩展方式:
configuration 参数自定义 config.xml,或使用 existingConfigmap 从 ConfigMap 加载配置configdFiles 和 usersdFiles 参数添加文件至 config.d 和 users.d 目录(详见 上游文档),或使用 existingConfigdConfigmap 和 existingUsersdConfigmap 从 ConfigMap 加载注意:Chart 默认会在
config.d挂载一系列自动生成的配置文件(前缀为01-、02-...06-)。自定义文件需使用更高前缀(如99-)以避免被覆盖。
Ingress 配置
若集群已安装 Ingress 控制器(如 https://github.com/bitnami/charts/tree/main/bitnami/nginx-ingress-controller 或 https://github.com/bitnami/charts/tree/main/bitnami/contour%EF%BC%89%EF%BC%8C%E5%8F%AF%E9%80%9A%E8%BF%87 Ingress 暴露服务。设置 ingress.enabled=true 启用 Ingress 集成。
ingress.hostname 设置主机名,ingress.tls 配置 TLSingress.extraHosts 添加额外主机,ingress.extraTLS 配置对应 TLS注意:
ingress.extraHosts需指定名称、路径及 Ingress 控制器所需注解。注解支持情况因控制器而异,参考 https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md%E3%80%82
TLS 加密通信
设置 tls.enabled=true 启用 TLS 加密,需创建包含证书的 Secret,并通过以下参数传入:
tls.existingCASecret:CA 证书 Secret(包含 tls.crt 和 tls.key)tls.server.existingSecret:服务端证书 Secret证书生成方式:
consolekubectl create secret generic ca-tls-secret --from-file=./tls.crt --from-file=./tls.key
tls.autoGenerated.enabled=true 且 tls.autoGenerated.engine=helmtls.autoGenerated.enabled=true 且 tls.autoGenerated.engine=cert-manager,可通过 tls.autoGenerated.certManager.existingIssuer 指定现有 Issuer/ClusterIssuer额外环境变量
通过 extraEnvVars 添加额外环境变量:
yamlclickhouse: extraEnvVars: - name: LOG_LEVEL value: error
或通过 ConfigMap/Secret 加载:
extraEnvVarsCM:从 ConfigMap 加载环境变量extraEnvVarsSecret:从 Secret 加载环境变量Sidecar 容器
通过 sidecars 参数添加 Sidecar 容器(如指标导出器、日志收集器):
yamlsidecars: - name: metrics-exporter image: my-exporter:latest imagePullPolicy: Always ports: - name: metrics containerPort: 9100
如需暴露 Sidecar 端口,通过 service.extraPorts 配置:
yamlservice: extraPorts: - name: exporter-port port: 9100 targetPort: metrics
自定义脚本
支持初始化脚本(首次启动执行)和启动脚本(每次启动执行),脚本挂载路径分别为 /docker-entrypoint.initdb.d 和 /docker-entrypoint.startdb.d:
initdbScripts 和 startdbScripts 参数定义脚本initdbScriptsSecret 和 startdbScriptsSecret 指定包含脚本的 SecretyamlinitdbScriptsSecret: init-scripts-secret # 包含初始化脚本的 Secret 名称 startdbScriptsSecret: start-scripts-secret # 包含启动脚本的 Secret 名称
Pod 亲和性配置
通过 affinity 参数自定义 Pod 亲和性,或使用 https://github.com/bitnami/charts/tree/main/bitnami/common#affinities Chart 提供的预设:
podAffinityPreset:Pod 亲和性预设podAntiAffinityPreset:Pod 反亲和性预设nodeAffinityPreset:节点亲和性预设详情参考 Kubernetes 亲和性文档。
备份与恢复
使用 Velero(Kubernetes 备份工具)备份持久卷并恢复部署。操作指南参考 Bitnami 备份恢复文档。
Bitnami ClickHouse 镜像将数据和配置存储在容器的 /bitnami/clickhouse 路径。通过 Persistent Volume Claims (PVC) 实现数据持久化,支持 GCE、AWS、minikube 等环境。
全局参数
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局镜像拉取密钥数组 | [] |
global.defaultStorageClass | 持久卷默认 StorageClass | "" |
global.security.allowInsecureImages | 是否允许不安全镜像(跳过验证) | false |
global.compatibility.openshift.adaptSecurityContext | 适配 OpenShift restricted-v2 SCC(auto/force/disabled) | auto |
通用参数
| 参数名 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 覆盖 Kubernetes 版本 | "" |
apiVersions | 覆盖 .Capabilities 报告的 API 版本 | [] |
nameOverride | 部分覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
namespaceOverride | 覆盖命名空间 | "" |
commonLabels | 所有资源标签 | {} |
commonAnnotations | 所有资源注解 | {} |
clusterDomain | Kubernetes 集群域名 | cluster.local |
extraDeploy | 额外部署的 Kubernetes 对象数组 | [] |
usePasswordFiles | 以文件方式挂载凭证(而非环境变量) | true |
diagnosticMode.enabled | 启用诊断模式(禁用探针,覆盖命令) | false |
diagnosticMode.command | 诊断模式命令 | ["sleep"] |
diagnosticMode.args | 诊断模式参数 | ["infinity"] |
默认初始化容器参数
| 参数名 | 描述 | 默认值 |
|---|---|---|
defaultInitContainers.volumePermissions.enabled | 启用修改持久卷权限的初始化容器 | false |
defaultInitContainers.volumePermissions.image.registry | volume-permissions 镜像仓库 | REGISTRY_NAME |
defaultInitContainers.volumePermissions.image.repository | volume-permissions 镜像仓库路径 | REPOSITORY_NAME/os-shell |
defaultInitContainers.volumePermissions.image.digest | 镜像摘要(覆盖标签) | "" |
defaultInitContainers.volumePermissions.image.pullPolicy | 镜像拉取策略 | IfNotPresent |
注:完整参数列表请参考 https://github.com/bitnami/charts/blob/main/bitnami/clickhouse/README.md%E3%80%82
以下是 bitnamicharts/clickhouse 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




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