ClickHouse · 面向 Snuba 事件分析的列式 OLAP 数据库
ClickHouse 是 data 类目下的列式分析型数据库,以单副本 StatefulSet 形式运行在 clickhouse 命名空间。从 NetworkPolicy 仅放行来自 snuba 命名空间的入站连接、以及挂载的配置文件名为 sentry.xml 可以判断:它在集群里承担 Snuba / Sentry 事件分析栈的底层 OLAP 存储角色,接收来自 Snuba 的写入与查询。
kustomization.yaml,镜像版本取自 StatefulSet 容器的 image 字段,即 clickhouse/clickhouse-server:26.5,而非 argocd-image-updater 管理的 kustomization images: 块。部署形态
- Name
- 命名空间
- Description
- clickhouse(
namespace.yaml显式声明,带kubernetes.io/metadata.name: clickhouse标签供 NetworkPolicy 选择)
- Name
- 工作负载类型
- Description
- StatefulSet,
serviceName: clickhouse-headless,replicas: 1
- Name
- 镜像
- Description
- clickhouse/clickhouse-server:26.5
- Name
- 调度
- Description
nodeSelector: workload=app,落在 worker2 / worker4(两节点均为workload=app)
- Name
- 端口
- Description
- 8123(http)、9000(native)、9009(interserver)
- Name
- 存储
- Description
volumeClaimTemplates申请 20Gi,storageClassName: nfs-client,ReadWriteOnce,挂载到/var/lib/clickhouse
- Name
- 资源
- Description
- requests cpu 200m / memory 1Gi,limits cpu 2000m / memory 4Gi
- Name
- 探针
- Description
- liveness 与 readiness 均 HTTP GET
/pingon 8123;1/1 Ready即代表 ClickHouse 已就绪
命名空间级还配有 LimitRange(容器默认 limits 2000m / 4Gi、defaultRequest 200m / 1Gi)与 ResourceQuota(requests.cpu 2 / requests.memory 4Gi、limits.cpu 4 / limits.memory 8Gi)兜底资源边界。
配置与依赖
配置通过 ConfigMap clickhouse-config 注入,以 subPath: sentry.xml 单文件挂载到 /etc/clickhouse-server/config.d/sentry.xml,覆盖默认 server 配置。关键项:
| 配置项 | 值 |
|---|---|
| logger.level | warning(console 输出) |
| listen_host | 0.0.0.0 |
| max_connections | 100 |
| max_concurrent_queries | 100 |
| mark_cache_size | 5368709120(约 5GiB) |
| path / tmp_path | /var/lib/clickhouse/ 及其下 tmp |
| mlock_executable | false |
| max_session_timeout | 3600 |
容器环境变量设定初始库与用户:CLICKHOUSE_DB=default、CLICKHOUSE_USER=default、CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1(开启 SQL 驱动的访问管理)。该目录下没有 ExternalSecret,也未引用 Vault 后端凭据。
依赖关系上,ClickHouse 是被依赖方:Snuba 作为上游写入与查询者,经 native(9000)与 http(8123)端口访问;9009(interserver)仅用于 ClickHouse 节点间通信。
访问与监控
集群内通过两个 ClusterIP Service 暴露:
clickhouse(普通 ClusterIP):端口 8123(http)、9000(native)。clickhouse-headless(clusterIP: None,headless,供 StatefulSet 稳定网络标识):端口 8123、9000、9009(interserver)。
二者均无 LoadBalancer / Ingress,不对集群外暴露。访问由 NetworkPolicy 收紧:
clickhouse策略仅放行snuba命名空间访问 8123 / 9000,以及携带app: clickhouse标签的 Pod 访问 9009(节点间通信)。allow-from-argo-workflows策略对命名空间内全部 Pod(podSelector: {})额外放行来自argo-workflows命名空间的入站流量。
监控与可用性:该目录下未提供 ServiceMonitor、PrometheusRule、HPA、VPA 或 PDB,当前不接入 Prometheus 抓取,也无自动伸缩 / 中断预算配置。
返回 data 总览