ClickHouseCluster 配置
基本配置
副本和分片
- 副本:每个分片中的 ClickHouse 实例数 (用于高可用)
- 分片:水平分片的数量 (用于扩缩容)
replicas: 3、shards: 2 的集群将总共创建 6 个 ClickHouse pod (容器组) 。
Keeper 集成
keeperClusterRef.namespace 时,operator 必须同时监听这两个命名空间。如果配置了 WATCH_NAMESPACE,请将 ClickHouse 和 Keeper 所在的命名空间都包含在该列表中。
KeeperCluster 配置
存储配置
仅当底层存储类支持卷扩容时,Operator 才能修改现有的 PVC。
pod (容器组) 配置
自动拓扑分散与亲和性
确保您的 Kubernetes 集群在不同可用区中具备足够的节点,以满足分布约束要求。
手动配置
pod (容器组) 中断预算
默认值
apply,也能避免意外丢失仲裁。
对于一个包含 3 个分片且
replicas: 3 的 ClickHouseCluster,operator 会创建 3 个 PDB,每个分片 1 个,且每个都设置为 minAvailable: 1。
覆盖默认设置
spec.podDisruptionBudget 覆盖 minAvailable 或 maxUnavailable (两者只能指定一个) :
maxUnavailable 形式:
unhealthyPodEvictionPolicy 字段传递到生成的 PDB 中——当你需要允许仍处于 NotReady 状态的 pod (容器组) 被驱逐时,这会很有用:
策略
spec.podDisruptionBudget.policy 允许你选择 operator 以多大力度管理 PDB:
示例——在开发集群上完全禁用 PDB 管理:
集群范围内停用
ENABLE_PDB 环境变量,在整个集群范围内停用 PDB 管理。设置 ENABLE_PDB=false 后,无论 spec.podDisruptionBudget.policy 如何,operator 都会跳过 所有 ClickHouseCluster 和 KeeperCluster 的 PDB reconcile 步骤,并且完全不监视 PodDisruptionBudget 资源。因此,operator 的 ServiceAccount 无需具备 poddisruptionbudgets.policy/v1 的 RBAC 权限;当 operator 以受限的 ServiceAccount 运行,且该账户刻意不包含这些权限时,这一点尤其有用。
容器配置
自定义镜像
容器资源
环境变量
卷挂载
可以为同一个
mountPath 指定多个卷挂载。
Operator 会将所有已指定的挂载创建为一个投影卷。TLS/SSL 配置
配置安全端点
SSL 证书 Secret 格式
tls.crt- PEM 编码的服务器证书tls.key- PEM 编码的私钥ca.crt- PEM 编码的 CA 证书链
此格式兼容由 cert-manager 生成的证书。
通过 TLS 进行 ClickHouse-Keeper 通信
ca.crt 证书包进行验证;否则,将使用默认的 CA 证书包。
用户可以提供自定义 CA 证书包引用:
ClickHouse 设置
默认用户密码
不建议使用 ConfigMap 存储明文密码。
使用 ConfigMap 配置用户密码
配置中的自定义用户
数据库同步
自定义配置
内嵌额外配置
extraConfig 添加自定义的 ClickHouse 配置:
有用链接:
嵌入式附加用户配置
extraUsersConfig 指定额外的 ClickHouse 用户配置。这对于直接在集群规范中定义用户、profile、配额和授权非常有用。
extraUsersConfig 存储在 k8s 的 ConfigMap 对象中。请避免在其中以明文形式存放 secret。