이 가이드에서는 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: 외부 시크릿(프로덕션 권장)
프로덕션 배포에서 자격 증명을 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"
}
]
EOFKubernetes 시크릿 생성
kubectl create secret generic hyperdx-external-config \
--from-file=connections.json=connections.json \
--from-file=sources.json=sources.json
# 로컬 파일 정리
rm connections.json sources.jsonHelm에서 시크릿을 사용하도록 구성하기
# 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.yamlClickHouse 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 엔드포인트를 노출하는 방법은 Ingress Configuration을 참조하십시오.
최소 배포
기존 인프라를 갖춘 조직에서는 HyperDX만 배포하세요:
# values-minimal.yaml
clickhouse:
enabled: false
otel:
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다음 단계
- 구성 가이드 (v1.x) - API Key, 시크릿, 인그레스 설정
- Cloud 배포 (v1.x) - GKE, EKS, AKS별 구성
- 주요 Helm 가이드 (v1.x) - Basic 설치
- 배포 옵션 (v2.x) - v2.x 배포 옵션
- 업그레이드 가이드 - v1.x에서 v2.x로 마이그레이션