ClickHouse Operator 是一个生产级的 Kubernetes Operator,用于管理 ClickHouse 数据库集群,提供经济高效的实时分析应用所需的稳健功能。Bitnami Helm Chart 为 ClickHouse Operator 提供了便捷的部署和配置方式,支持在 Kubernetes 集群中快速搭建生产就绪的 ClickHouse 管理环境。
快速安装
使用 Helm 快速安装 ClickHouse Operator(默认配置):
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/clickhouse-operator
自定义安装
指定仓库和版本
替换仓库地址和版本标签(如使用私有仓库):
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/clickhouse-operator --version 1.0.0
通过 values 文件配置
创建自定义 values.yaml 文件覆盖默认配置:
yaml# values.yaml 示例 resources: requests: cpu: 500m memory: 512Mi limits: cpu: 1000m memory: 1Gi metrics: enabled: true
安装时指定配置文件:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/clickhouse-operator -f values.yaml
查看部署状态
检查 Deployment 和 Pod 状态:
consolekubectl get deployments kubectl get pods
卸载
卸载 Helm 发布:
consolehelm uninstall my-release
Operator 配置
ClickHouse Operator 支持多种配置方式:
configuration、chiTemplate、chkTemplate 参数生成配置existingConfigmap、existingChiTemplatesConfigmap 或 existingChkTemplatesConfigmap 指定已存在的 ConfigMapoverrideConfiguration 参数覆盖默认配置值详细配置选项参考 https://github.com/Altinity/clickhouse-operator/blob/master/docs/operator_configuration.md%E3%80%82
环境变量配置
添加额外环境变量:通过 extraEnvVars 注入环境变量:
yamlextraEnvVars: - name: LOG_LEVEL value: "error" - name: OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
通过 ConfigMap/Secret 注入:使用 extraEnvVarsCM 或 extraEnvVarsSecret 指定包含环境变量的 ConfigMap/Secret 名称。
资源管理
资源请求与限制:直接配置 resources 参数:
yamlresources: requests: cpu: 1000m memory: 2Gi limits: cpu: 2000m memory: 4Gi
资源预设:通过 resourcesPreset 使用预设配置(如 small、medium、large),预设定义参考 https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15%EF%BC%88%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%BB%BA%E8%AE%AE%E8%87%AA%E5%AE%9A%E4%B9%89%E8%B5%84%E6%BA%90%E9%85%8D%E7%BD%AE%E8%80%8C%E9%9D%9E%E4%BE%9D%E8%B5%96%E9%A2%84%E8%AE%BE%EF%BC%89%E3%80%82
监控配置
启用 Prometheus 监控:
yamlmetrics: enabled: true serviceMonitor: enabled: true # 如需集成 Prometheus Operator,启用此项 namespace: monitoring # 指定 Prometheus 所在命名空间 interval: 15s # 抓取间隔
监控集成要求集群中已部署 Prometheus 或 Prometheus Operator,推荐使用 https://github.com/bitnami/charts/tree/main/bitnami/prometheus%E3%80%82
Sidecar 和 Init 容器
添加 Sidecar 容器(如日志收集器):
yamlsidecars: - name: log-exporter image: busybox:latest command: ["/bin/sh", "-c", "tail -f /var/log/clickhouse-operator/*.log"] volumeMounts: - name: logs mountPath: /var/log/clickhouse-operator
添加 Init 容器(如配置初始化):
yamlinitContainers: - name: init-config image: busybox:latest command: ["/bin/sh", "-c", "echo 'init config' > /init/config.txt"] volumeMounts: - name: init-volume mountPath: /init
Pod 亲和性配置
通过 affinity 参数自定义 Pod 亲和性:
yamlaffinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - clickhouse-operator topologyKey: "kubernetes.io/hostname"
或使用预设亲和性配置:
yamlpodAntiAffinityPreset: "soft" # 软反亲和性,尽量避免同节点部署 nodeAffinityPreset: type: "required" key: "node-role.kubernetes.io/worker" values: ["true"]
通过 extraDeploy 参数部署 ClickHouse 集群和 Keeper 集群:
yamlextraDeploy: # ClickHouse Keeper 集群部署 - apiVersion: clickhouse-keeper.altinity.com/v1 kind: ClickHouseKeeperInstallation metadata: name: chk-cluster spec: defaults: storageManagement: provisioner: Operator templates: podTemplate: keeper-pod dataVolumeClaimTemplate: keeper-volume configuration: clusters: - name: main layout: replicasCount: 3 # 3副本高可用配置 templates: podTemplates: - name: keeper-pod spec: containers: - name: clickhouse-keeper image: docker.io/bitnami/clickhouse-keeper:latest volumeMounts: - name: keeper-volume mountPath: /bitnami/clickhouse-keeper volumeClaimTemplates: - name: keeper-volume spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 10Gi # ClickHouse 集群部署 - apiVersion: clickhouse.altinity.com/v1 kind: ClickHouseInstallation metadata: name: ch-cluster spec: defaults: storageManagement: provisioner: Operator templates: podTemplate: ch-pod dataVolumeClaimTemplate: ch-volume configuration: clusters: - name: analytics layout: replicasCount: 2 # 2副本集群 zookeeper: nodes: - host: chk-cluster-main # 关联 Keeper 集群服务 port: 2181 templates: podTemplates: - name: ch-pod spec: containers: - name: clickhouse image: docker.io/bitnami/clickhouse:latest volumeMounts: - name: ch-volume mountPath: /bitnami/clickhouse volumeClaimTemplates: - name: ch-volume spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 50Gi
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库地址 | "" |
global.imagePullSecrets | 全局镜像拉取密钥列表 | [] |
global.defaultStorageClass | 全局默认存储类 | "" |
global.security.allowInsecureImages | 是否允许不安全镜像(跳过校验) | false |
global.compatibility.openshift.adaptSecurityContext | 是否适配 OpenShift 安全上下文(auto/force/disabled) | auto |
global.compatibility.omitEmptySeLinuxOptions | 移除空的 seLinuxOptions 配置 | false |
| 参数名 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 覆盖 Kubernetes 版本 | "" |
apiVersions | 覆盖 Kubernetes API 版本 | [] |
nameOverride | 覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
namespaceOverride | 覆盖命名空间 | "" |
commonLabels | 全局标签 | {} |
commonAnnotations | 全局注解 | {} |
clusterDomain | Kubernetes 集群域名 | cluster.local |
extraDeploy | 额外部署的 Kubernetes 资源清单 | [] |
| 参数名 | 描述 | 默认值 |
|---|---|---|
image.registry | Operator 镜像仓库 | REGISTRY_NAME |
image.repository | Operator 镜像仓库路径 | REPOSITORY_NAME/clickhouse-operator |
image.digest | 镜像摘要(覆盖标签) | "" |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
image.pullSecrets | 镜像拉取密钥 | [] |
clickHouseImage.registry | ClickHouse 镜像仓库 | REGISTRY_NAME |
clickHouseImage.repository | ClickHouse 镜像路径 | REPOSITORY_NAME/clickhouse |
keeperImage.registry | ClickHouse Keeper 镜像仓库 | REGISTRY_NAME |
keeperImage.repository | ClickHouse Keeper 镜像路径 | REPOSITORY_NAME/clickhouse-keeper |
auth.username | Operator 认证用户名 | clickhouse_operator |
auth.password | Operator 认证密码 | "" |
auth.existingSecret | 包含认证信息的现有 Secret 名称 | "" |
ipFamily.enableIpv4 | 是否启用 IPv4 | true |
注:完整参数列表请参考 https://github.com/bitnami/charts/blob/main/bitnami/clickhouse-operator/README.md
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,推出 Bitnami Secure Images 计划,主要变更包括:
docker.io/bitnamilegacy 仓库,且不再更新更多详情请参考 https://github.com/bitnami/containers/issues/83267%E3%80%82
global.compatibility.openshift.adaptSecurityContext: force 强制适配 OpenShift 安全上下文您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务