Esta guía cubre las opciones avanzadas de implementación de ClickStack con Helm. Para una 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:
- Stack completo (predeterminado): todos los componentes incluidos
- ClickHouse externo: usar un clúster de ClickHouse existente
- OTel collector externo: usar infraestructura de OTel existente
- Implementación mínima: solo HyperDX y dependencias externas
ClickHouse externo
Si ya tienes un clúster de ClickHouse (incluido ClickHouse Cloud), puedes desactivar el ClickHouse integrado y conectarte a tu instancia externa.
Opción 1: Configuración inline (desarrollo/pruebas)
Usa este enfoque para pruebas rápidas o entornos no productivos:
# values-external-clickhouse.yaml
clickhouse:
enabled: false # Deshabilitar el ClickHouse integrado
otel:
clickhouseEndpoint: "tcp://your-clickhouse-server:9000"
clickhousePrometheusEndpoint: "http://your-clickhouse-server:9363" # Opcional
hyperdx:
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]Instala con esta configuración:
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yamlOpción 2: Secret externo (recomendado para entornos de producción)
Para implementaciones en producción en las 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"
}
]
EOFCrear el secret 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 que use el 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.yamlUso de ClickHouse Cloud
En el caso específico de 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 externo
Si ya cuenta con una infraestructura de OTel collector:
# values-external-otel.yaml
otel:
enabled: false # Deshabilitar el OTel collector integrado
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"helm install my-clickstack clickstack/clickstack -f values-external-otel.yamlPara ver instrucciones sobre cómo exponer los endpoints del OTel collector a través de un Ingreso, consulta Configuración de Ingreso.
Implementación mínima
Para las organizaciones que ya cuentan con infraestructura existente, implemente solo HyperDX:
# values-minimal.yaml
clickhouse:
enabled: false
otel:
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: Secret externo (producción)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yamlSiguientes pasos
- Guía de configuración (v1.x) - Configuración de claves de API, secretos e ingreso
- Implementaciones en Cloud (v1.x) - Configuraciones específicas de GKE, EKS y AKS
- Guía principal de Helm (v1.x) - Instalación básica
- Opciones de implementación (v2.x) - Opciones de implementación de v2.x
- Guía de actualización - Migración de v1.x a v2.x