ClickHouse · 面向 Snuba 事件分析的列式 OLAP 数据库

ClickHouse 是 data 类目下的列式分析型数据库,以单副本 StatefulSet 形式运行在 clickhouse 命名空间。从 NetworkPolicy 仅放行来自 snuba 命名空间的入站连接、以及挂载的配置文件名为 sentry.xml 可以判断:它在集群里承担 Snuba / Sentry 事件分析栈的底层 OLAP 存储角色,接收来自 Snuba 的写入与查询。

部署形态

  • 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 /ping on 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.levelwarning(console 输出)
listen_host0.0.0.0
max_connections100
max_concurrent_queries100
mark_cache_size5368709120(约 5GiB)
path / tmp_path/var/lib/clickhouse/ 及其下 tmp
mlock_executablefalse
max_session_timeout3600

容器环境变量设定初始库与用户:CLICKHOUSE_DB=defaultCLICKHOUSE_USER=defaultCLICKHOUSE_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 总览

评论