Esta guía cubre las opciones avanzadas de implementación de ClickStack con Helm. Para la instalación básica, consulta la guía principal de implementación con Helm.
Descripción general
El gráfico de Helm de ClickStack admite varias configuraciones de implementación:
- Pila completa (predeterminada) — Incluye todos los componentes, gestionados por operadores
- ClickHouse externo — Usa un clúster de ClickHouse existente
- OTel collector externo — Usa infraestructura de OTel existente
- Implementación mínima — Solo HyperDX y dependencias externas
ClickHouse externo
Si ya dispone de un clúster de ClickHouse (incluido ClickHouse Cloud), puede desactivar el ClickHouse integrado y conectarse a su instancia externa.
Opción 1: Configuración inline (desarrollo/pruebas)
Use este enfoque para pruebas rápidas o entornos no productivos. Proporcione los detalles de conexión mediante hyperdx.config y hyperdx.secrets:
# values-external-clickhouse.yaml
clickhouse:
enabled: false # Deshabilitar el ClickHouse gestionado por el operador
hyperdx:
secrets:
CLICKHOUSE_PASSWORD: "your-password"
CLICKHOUSE_APP_PASSWORD: "your-password"
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]Instale con esta configuración:
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yamlOpción 2: Secreto externo (recomendado para producción)
Para despliegues de producción en los que quieras mantener las credenciales separadas de la configuración de Helm:
Cree los archivos de configuración
# Crear 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
# Crear 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"
}
]
EOFCree el secreto de Kubernetes
kubectl create secret generic hyperdx-external-config \
--from-file=connections.json=connections.json \
--from-file=sources.json=sources.json
# Eliminar archivos locales
rm connections.json sources.jsonConfigura Helm para usar el secreto
# values-external-clickhouse-secret.yaml
clickhouse:
enabled: false
hyperdx:
useExistingConfigSecret: true
existingConfigSecret: "hyperdx-external-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-external-clickhouse-secret.yamlUso de ClickHouse Cloud
En el caso de ClickHouse Cloud:
# values-clickhouse-cloud.yaml
clickhouse:
enabled: false
hyperdx:
secrets:
CLICKHOUSE_PASSWORD: "your-cloud-password"
CLICKHOUSE_APP_PASSWORD: "your-cloud-password"
useExistingConfigSecret: true
existingConfigSecret: "clickhouse-cloud-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"OTel collector externo
Si ya cuenta con una infraestructura de OTel collector, desactive el subgráfico:
# values-external-otel.yaml
otel-collector:
enabled: false # Deshabilitar el subgráfico del OTel collector
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"helm install my-clickstack clickstack/clickstack -f values-external-otel.yamlPara obtener instrucciones sobre cómo exponer los endpoints del OTel collector mediante Ingreso, consulta Configuración de Ingreso.
Implementación mínima
Para las organizaciones que ya cuentan con infraestructura, implemente solo HyperDX:
# values-minimal.yaml
clickhouse:
enabled: false
otel-collector:
enabled: false
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"
# Opción 1: Inline (para pruebas)
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]
# Opción 2: Secreto externo (producción)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yamlPróximos pasos
- Guía de configuración - Configuración de claves API, secretos e Ingreso
- Implementaciones en Cloud - Configuraciones específicas de GKE, EKS y AKS
- Guía de actualización - Migración de v1.x a v2.x
- Manifiestos adicionales - Objetos personalizados de Kubernetes
- Guía principal de Helm - Instalación básica
- Opciones de implementación (v1.x) - Opciones de implementación para v1.x