Ce guide présente les options de déploiement avancées de ClickStack avec Helm. Pour une installation de base, consultez le guide principal de déploiement Helm.
Vue d’ensemble
Le chart Helm de ClickStack prend en charge plusieurs configurations de déploiement :
- Stack complète (par défaut) - Tous les composants sont inclus
- ClickHouse externe - Utiliser un cluster ClickHouse existant
- collecteur OTEL externe - Utiliser une infrastructure OTel existante
- Déploiement minimal - HyperDX uniquement, avec des dépendances externes
ClickHouse externe
Si vous avez déjà un cluster ClickHouse (y compris ClickHouse Cloud), vous pouvez désactiver le ClickHouse intégré et vous connecter à votre instance externe.
Option 1 : Configuration intégrée (développement/test)
Utilisez cette approche pour des tests rapides ou dans des environnements hors production :
# values-external-clickhouse.yaml
clickhouse:
enabled: false # Disable the built-in ClickHouse
otel:
clickhouseEndpoint: "tcp://your-clickhouse-server:9000"
clickhousePrometheusEndpoint: "http://your-clickhouse-server:9363" # Optional
hyperdx:
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]Installez avec cette configuration :
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yamlOption 2 : Secret externe (recommandé pour la production)
Pour les déploiements en production où vous souhaitez conserver les identifiants séparés de votre configuration Helm :
Créez vos fichiers de configuration
# Create 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
# Create 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"
}
]
EOFCréer le secret Kubernetes
kubectl create secret generic hyperdx-external-config \
--from-file=connections.json=connections.json \
--from-file=sources.json=sources.json
# Clean up local files
rm connections.json sources.jsonConfigurer Helm pour utiliser le 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.yamlUsing ClickHouse Cloud
Plus précisément pour 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"Collecteur OTEL externe
Si vous disposez déjà d'une infrastructure de collecteurs OTEL :
# values-external-otel.yaml
otel:
enabled: false # Disable the built-in OTEL collector
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"helm install my-clickstack clickstack/clickstack -f values-external-otel.yamlPour savoir comment exposer les endpoints de l’OTel collector via un ingress, consultez Configuration de l’ingress.
Déploiement minimal
Pour les organisations disposant déjà d’une infrastructure en place, déployez uniquement 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"
}
]
# Option 2: External secret (production)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yamlÉtapes suivantes
- Guide de configuration (v1.x) - clés API, secrets et configuration de l’ingress
- Déploiements Cloud (v1.x) - configurations spécifiques à GKE, EKS et AKS
- Guide principal de Helm (v1.x) - installation de base
- Options de déploiement (v2.x) - options de déploiement de la v2.x
- Guide de mise à niveau - migration de la v1.x vers la v2.x