本指南介绍使用 Helm 部署 ClickStack 的高级部署选项。有关基础安装,请参见 Helm 部署主指南。
概述
ClickStack 的 Helm 图表支持多种部署配置:
- 完整栈 (默认) - 包含所有组件
- 外部 ClickHouse - 使用现有的 ClickHouse 集群
- 外部 OTel collector - 使用现有的 OTel 基础设施
- 最小化部署 - 仅部署 HyperDX,并使用外部依赖
外部 ClickHouse
如果您已有现有的 ClickHouse 集群 (包括 ClickHouse Cloud) ,则可以禁用内置的 ClickHouse 并连接到外部实例。
选项 1:内联配置 (开发/测试)
此方式适用于快速测试或非生产环境:
# values-external-clickhouse.yaml
clickhouse:
enabled: false # 禁用内置的 ClickHouse
otel:
clickhouseEndpoint: "tcp://your-clickhouse-server:9000"
clickhousePrometheusEndpoint: "http://your-clickhouse-server:9363" # 可选
hyperdx:
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]使用以下配置进行安装:
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yaml选项 2:外部 Secret (推荐用于生产环境)
对于要将凭据与 Helm 配置分开的生产环境部署:
创建配置文件
# 创建 connections.json
cat <<EOF > connections.json
[
{
"name": "Production ClickHouse",
"host": "https://your-production-clickhouse.com",
"port": 8123,
"username": "hyperdx_user",
"password": "your-secure-password"
}
]
EOF
# 创建 sources.json
cat <<EOF > sources.json
[
{
"from": {
"databaseName": "default",
"tableName": "otel_logs"
},
"kind": "log",
"name": "Logs",
"connection": "Production ClickHouse",
"timestampValueExpression": "TimestampTime",
"displayedTimestampValueExpression": "Timestamp",
"implicitColumnExpression": "Body",
"serviceNameExpression": "ServiceName",
"bodyExpression": "Body",
"eventAttributesExpression": "LogAttributes",
"resourceAttributesExpression": "ResourceAttributes",
"severityTextExpression": "SeverityText",
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId"
},
{
"from": {
"databaseName": "default",
"tableName": "otel_traces"
},
"kind": "trace",
"name": "Traces",
"connection": "Production ClickHouse",
"timestampValueExpression": "Timestamp",
"displayedTimestampValueExpression": "Timestamp",
"implicitColumnExpression": "SpanName",
"serviceNameExpression": "ServiceName",
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId",
"durationExpression": "Duration"
}
]
EOF创建 Kubernetes Secret
kubectl create secret generic hyperdx-external-config \
--from-file=connections.json=connections.json \
--from-file=sources.json=sources.json
# 清理本地文件
rm connections.json sources.json配置 Helm 使用 Secret
# values-external-clickhouse-secret.yaml
clickhouse:
enabled: false
otel:
clickhouseEndpoint: "tcp://your-clickhouse-server:9000"
clickhousePrometheusEndpoint: "http://your-clickhouse-server:9363"
hyperdx:
useExistingConfigSecret: true
existingConfigSecret: "hyperdx-external-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-external-clickhouse-secret.yaml使用 ClickHouse Cloud
如果使用 ClickHouse Cloud:
# values-clickhouse-cloud.yaml
clickhouse:
enabled: false
persistence:
enabled: false
otel:
clickhouseEndpoint: "tcp://your-cloud-instance.clickhouse.cloud:9440?secure=true"
hyperdx:
useExistingConfigSecret: true
existingConfigSecret: "clickhouse-cloud-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"外部 OTEL Collector
如果你已有 OTEL collector 基础设施:
# values-external-otel.yaml
otel:
enabled: false # 禁用内置 OTel collector
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"helm install my-clickstack clickstack/clickstack -f values-external-otel.yaml有关通过入口暴露 OTel collector 端点的说明,请参阅入口配置。
最小化部署
对于已有基础设施的组织,只需部署 HyperDX:
# values-minimal.yaml
clickhouse:
enabled: false
otel:
enabled: false
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"
# Option 1: Inline (for testing)
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]
# 选项 2:外部 Secret(生产环境)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yaml后续步骤
- 配置指南 (v1.x) - API 密钥、Secret 和入口设置
- 云部署 (v1.x) - GKE、EKS 和 AKS 的特定配置
- Helm 主指南 (v1.x) - 基础安装
- 部署选项 (v2.x) - v2.x 部署选项
- 升级指南 - 从 v1.x 迁移到 v2.x