В этом руководстве рассматриваются расширенные варианты развертывания ClickStack с помощью Helm. Инструкции по базовой установке см. в основном руководстве по развертыванию с Helm.
Обзор
Helm-чарт ClickStack поддерживает несколько вариантов развертывания:
- Полный стек (по умолчанию) — включены все компоненты, управление осуществляется операторами
- Внешний ClickHouse — используется существующий кластер ClickHouse
- Внешний OTel collector — используется существующая инфраструктура OTel
- Минимальное развертывание — только HyperDX, внешние зависимости
Внешний ClickHouse
Если у вас уже есть кластер ClickHouse (в том числе ClickHouse Cloud), вы можете отключить встроенный ClickHouse и подключиться к внешнему экземпляру.
Вариант 1: Встроенная конфигурация (для разработки/тестирования)
Используйте этот подход для быстрого тестирования или в непродакшн-средах. Укажите сведения о подключении через hyperdx.config и hyperdx.secrets:
# values-external-clickhouse.yaml
clickhouse:
enabled: false # Отключить ClickHouse, управляемый оператором
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"
}
]Выполните установку, используя эту конфигурацию:
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yamlВариант 2: Внешний секрет (рекомендуется для продакшна)
Для развертываний в продакшне, где учетные данные нужно хранить отдельно от конфигурации 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
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 для использования секрета
# 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.yamlИспользование ClickHouse Cloud
Если вы используете 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
Если у вас уже есть инфраструктура с OTel collector, отключите субчарт:
# values-external-otel.yaml
otel-collector:
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-collector:
enabled: false
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"
# Вариант 1: Встроенный (для тестирования)
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]
# Вариант 2: Внешний секрет (продакшн)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yamlСледующие шаги
- Руководство по настройке - ключи API, секреты и настройка входного шлюза
- Развертывания в Cloud - конфигурации для GKE, EKS и AKS
- Руководство по обновлению - миграция с v1.x на v2.x
- Дополнительные манифесты - пользовательские объекты Kubernetes
- Основное руководство по Helm - базовая установка
- Варианты развертывания (v1.x) - варианты развертывания v1.x