> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Helm 클라우드 배포

> GKE, EKS, AKS에 ClickStack을 배포하기 위한 클라우드별 구성

<Warning>
  **차트 버전 2.x**

  이 페이지에서는 서브차트 기반 **v2.x** Helm 차트를 설명합니다. 아직 v1.x 인라인 템플릿 차트를 사용 중이라면 [Helm 클라우드 배포 (v1.x)](/ko/clickstack/deployment/helm-cloud-v1)를 참조하십시오. 마이그레이션 단계는 [업그레이드 가이드](/ko/clickstack/deployment/helm-upgrade)를 참조하십시오.
</Warning>

이 가이드에서는 관리형 Kubernetes 서비스에 ClickStack을 배포할 때 필요한 클라우드별 구성을 다룹니다. 기본 설치 방법은 [기본 Helm 배포 가이드](/ko/clickstack/deployment/helm)를 참조하십시오.

<div id="google-kubernetes-engine-gke">
  ## Google Kubernetes Engine (GKE)
</div>

GKE에 배포할 때는 클라우드별 네트워킹 동작으로 인해 일부 값을 재정의해야 할 수 있습니다.

<div id="loadbalancer-dns-resolution-issue">
  ### LoadBalancer DNS 해석 문제
</div>

GKE의 LoadBalancer service는 파드 간 통신이 클러스터 네트워크 내부에 유지되지 않고 외부 IP로 해석되는 내부 DNS 해석 문제를 일으킬 수 있습니다. 이는 특히 OpAMP 서버에 대한 OTEL collector의 connection에 영향을 줍니다.

**증상:**

* OTEL collector 로그에 cluster IP 주소와 함께 "connection refused" 오류가 표시됨
* 다음과 같은 OpAMP connection 실패: `dial tcp 34.118.227.30:4320: connect: connection refused`

**해결 방법:**

OpAMP 서버 URL에 정규화된 도메인 이름(FQDN)을 사용하세요:

```shell theme={null}
helm install my-clickstack clickstack/clickstack \
  --set hyperdx.frontendUrl="http://your-external-ip-or-domain.com" \
  --set hyperdx.config.OPAMP_SERVER_URL="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
```

<div id="gke-example-values">
  ### GKE values 예시
</div>

```yaml theme={null}
# values-gke.yaml
hyperdx:
  frontendUrl: "http://34.123.61.99"  # LoadBalancer 외부 IP를 입력하세요

  config:
    OPAMP_SERVER_URL: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"

clickhouse:
  keeper:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "pd-ssd"
        resources:
          requests:
            storage: 5Gi
  cluster:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "pd-ssd"
        resources:
          requests:
            storage: 10Gi
```

<div id="amazon-eks">
  ## Amazon EKS
</div>

EKS 배포에서는 다음과 같은 일반적인 구성을 고려하십시오.

```yaml theme={null}
# values-eks.yaml
hyperdx:
  frontendUrl: "https://hyperdx.yourdomain.com"

  ingress:
    enabled: true
    host: "hyperdx.yourdomain.com"
    tls:
      enabled: true

clickhouse:
  keeper:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "gp3"
        resources:
          requests:
            storage: 5Gi
  cluster:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "gp3"
        resources:
          requests:
            storage: 10Gi
```

AWS ALB 인그레스 구성에 대해서는 [추가 매니페스트 가이드](/ko/clickstack/deployment/helm-additional-manifests#aws-alb-ingress) 및 [ALB 예시 values](https://github.com/ClickHouse/ClickStack-helm-charts/tree/main/examples/alb-ingress)를 참조하십시오.

<div id="azure-aks">
  ## Azure AKS
</div>

AKS에 배포하는 경우:

```yaml theme={null}
# values-aks.yaml
hyperdx:
  frontendUrl: "https://hyperdx.yourdomain.com"

clickhouse:
  keeper:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "managed-csi"
        resources:
          requests:
            storage: 5Gi
  cluster:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "managed-csi"
        resources:
          requests:
            storage: 10Gi
```

<div id="production-cloud-deployment-checklist">
  ## 운영 환경용 클라우드 배포 체크리스트
</div>

클라우드 제공업체와 관계없이 ClickStack을 운영 환경에 배포하기 전에 다음 사항을 확인하십시오.

* [ ] 외부 도메인/IP에 맞게 `hyperdx.frontendUrl`을 올바르게 구성
* [ ] HTTPS 액세스를 위해 TLS를 사용하는 인그레스 설정
* [ ] 연결 문제가 발생하는 경우(특히 GKE) OpAMP 서버 URL을 FQDN으로 재정의
* [ ] ClickHouse 및 Keeper 볼륨 클레임에 사용할 스토리지 클래스 구성
* [ ] 적절한 리소스 요청값과 제한값 설정
* [ ] 모니터링 및 알림 활성화
* [ ] 백업 및 재해 복구 구성
* [ ] `hyperdx.secrets` 또는 외부 시크릿을 통해 적절한 시크릿 관리 구현

<div id="production-best-practices">
  ## 프로덕션 모범 사례
</div>

<div id="resource-management">
  ### 리소스 관리
</div>

```yaml theme={null}
hyperdx:
  deployment:
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
      limits:
        cpu: "2"
        memory: 4Gi

otel-collector:
  resources:
    requests:
      cpu: 100m
      memory: 128Mi
    limits:
      cpu: 200m
      memory: 256Mi
```

<div id="high-availability">
  ### 고가용성
</div>

```yaml theme={null}
hyperdx:
  deployment:
    replicas: 3
    topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        whenUnsatisfiable: ScheduleAnyway
        labelSelector:
          matchLabels:
            app.kubernetes.io/name: clickstack

  podDisruptionBudget:
    enabled: true
    minAvailable: 1
```

<div id="persistent-storage">
  ### 영구 스토리지
</div>

operator CR 사양에서 데이터 보존을 위한 영구 볼륨이 구성되어 있는지 확인하십시오:

```yaml theme={null}
clickhouse:
  keeper:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "fast-ssd"
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 5Gi
  cluster:
    spec:
      dataVolumeClaimSpec:
        storageClassName: "fast-ssd"
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 100Gi

mongodb:
  spec:
    statefulSet:
      spec:
        volumeClaimTemplates:
          - metadata:
              name: data-volume
            spec:
              storageClassName: "fast-ssd"
              accessModes: ["ReadWriteOnce"]
              resources:
                requests:
                  storage: 10Gi
```

**Cloud별 스토리지 클래스:**

* **GKE**: `pd-ssd` 또는 `pd-balanced`
* **EKS**: `gp3` 또는 `io2`
* **AKS**: `managed-premium` 또는 `managed-csi`

<div id="browser-compatibility-notes">
  ### 브라우저 호환성 참고 사항
</div>

HTTP 전용 배포(개발/테스트)에서는 보안 컨텍스트 요구 사항 때문에 일부 브라우저에서 crypto API 오류가 표시될 수 있습니다. 운영 환경 배포에서는 항상 인그레스 구성을 통해 올바른 TLS 인증서와 함께 HTTPS를 사용하십시오.

TLS 설정 지침은 [인그레스 구성](/ko/clickstack/deployment/helm-configuration#ingress-setup)을 참조하십시오.

<div id="next-steps">
  ## 다음 단계
</div>

* [구성 가이드](/ko/clickstack/deployment/helm-configuration) - API Key, 시크릿, 인그레스
* [배포 옵션](/ko/clickstack/deployment/helm-deployment-options) - 외부 시스템 구성
* [업그레이드 가이드](/ko/clickstack/deployment/helm-upgrade) - v1.x에서 v2.x로 마이그레이션
* [추가 매니페스트](/ko/clickstack/deployment/helm-additional-manifests) - 사용자 지정 Kubernetes 객체
* [기본 Helm 가이드](/ko/clickstack/deployment/helm) - 기본 설치
* [Cloud 배포 (v1.x)](/ko/clickstack/deployment/helm-cloud-v1) - v1.x Cloud 구성
