이 가이드는 Helm을 사용한 ClickStack의 고급 배포 옵션을 다룹니다. 기본 설치 방법은 기본 Helm 배포 가이드를 참조하십시오.
개요
ClickStack의 Helm 차트는 여러 배포 구성을 지원합니다:
- 전체 스택 (기본값) — 모든 구성 요소가 포함되며, 오퍼레이터가 관리합니다
- 외부 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"
}
]
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
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
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 엔드포인트를 외부에 노출하는 방법은 Ingress Configuration을 참조하십시오.
최소 배포
기존 인프라를 갖춘 조직에서는 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 Key, 시크릿, 인그레스 설정
- Cloud 배포 - GKE, EKS, AKS별 구성
- 업그레이드 가이드 - v1.x에서 v2.x로 마이그레이션
- 추가 매니페스트 - 사용자 지정 Kubernetes 객체
- Helm 기본 가이드 - 기본 설치
- 배포 옵션 (v1.x) - v1.x 배포 옵션