メインコンテンツへスキップ
メインコンテンツへスキップ

Helm を用いたクラウドデプロイ

このガイドでは、マネージド Kubernetes サービス上に ClickStack をデプロイするためのクラウド特有の設定について説明します。基本的なインストール手順については、Helm デプロイメントのメインガイドを参照してください。

Google Kubernetes Engine (GKE)

GKE へデプロイする場合は、クラウド特有のネットワークの挙動により、いくつかの設定値を上書き(オーバーライド)する必要が生じることがあります。

LoadBalancer の DNS 解決に関する問題

GKE の LoadBalancer サービスが原因で、ポッド間通信における内部 DNS 解決がクラスターネットワーク内にとどまらず、外部 IP に名前解決されてしまう問題が発生することがあります。これは特に、OTel collector から OpAMP サーバーへの接続に影響します。

症状:

  • OTel collector のログに、クラスター IP アドレスに対する「connection refused」エラーが表示される
  • 次のような OpAMP 接続失敗: dial tcp 34.118.227.30:4320: connect: connection refused

解決方法:

OpAMP サーバーの URL には、完全修飾ドメイン名 (FQDN) を使用してください:

helm install my-clickstack clickstack/clickstack \
  --set hyperdx.frontendUrl="http://your-external-ip-or-domain.com" \
  --set otel.opampServerUrl="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"

GKE に関するその他の考慮事項

# values-gke.yaml \{#values-gkeyaml}
hyperdx:
  frontendUrl: "http://34.123.61.99"  # LoadBalancerの外部IPを使用

otel:
  opampServerUrl: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"

# 必要に応じてGKEポッドネットワーク用に調整 \{#adjust-for-gke-pod-networking-if-needed}
clickhouse:
  config:
    clusterCidrs:
      - "10.8.0.0/16"  # GKEで一般的に使用される範囲
      - "10.0.0.0/8"   # その他の設定用のフォールバック

Amazon EKS

EKS にデプロイする場合は、次の一般的な構成を検討してください。

# values-eks.yaml \{#values-eksyaml}
hyperdx:
  frontendUrl: "http://your-alb-domain.com"

# EKSでは通常、以下のポッドCIDRを使用します \{#eks-typically-uses-these-pod-cidrs}
clickhouse:
  config:
    clusterCidrs:
      - "192.168.0.0/16"
      - "10.0.0.0/8"

# 本番環境ではイングレスを有効化します \{#enable-ingress-for-production}
hyperdx:
  ingress:
    enabled: true
    host: "hyperdx.yourdomain.com"
    tls:
      enabled: true

Azure AKS

AKS にデプロイする場合:

# values-aks.yaml \{#values-aksyaml}
hyperdx:
  frontendUrl: "http://your-azure-lb.com"

# AKS ポッドネットワーキング \{#aks-pod-networking}
clickhouse:
  config:
    clusterCidrs:
      - "10.244.0.0/16"  # 一般的な AKS ポッド CIDR
      - "10.0.0.0/8"

本番環境向けクラウド デプロイメント チェックリスト

任意のクラウドプロバイダー上の本番環境に ClickStack をデプロイする前に、次を実施してください。

  • 外部ドメイン/IP アドレスを用いて適切な frontendUrl を設定する
  • HTTPS アクセス用に TLS 対応のイングレスを設定する
  • 接続問題が発生している場合(特に GKE 上)、otel.opampServerUrl を FQDN で上書きする
  • ポッドネットワークの CIDR に合わせて clickhouse.config.clusterCidrs を調整する
  • 本番ワークロード向けに永続ストレージを構成する
  • 適切なリソース要求とリミットを設定する
  • モニタリングとアラートを有効にする
  • バックアップと障害復旧を構成する
  • 適切なシークレット管理を実装する

本番環境におけるベストプラクティス

リソース管理

hyperdx:
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 2000m
      memory: 4Gi

高可用性

hyperdx:
  replicaCount: 3
  
  affinity:
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 100
          podAffinityTerm:
            labelSelector:
              matchExpressions:
                - key: app.kubernetes.io/name
                  operator: In
                  values:
                    - clickstack
            topologyKey: kubernetes.io/hostname

永続ストレージ

データを保持できるよう、PersistentVolume(永続ボリューム)が適切に構成されていることを確認します。

clickhouse:
  persistence:
    enabled: true
    size: 100Gi
    storageClass: "fast-ssd"  # クラウド固有のストレージクラスを使用する

クラウドごとの StorageClass:

  • GKE: pd-ssd または pd-balanced
  • EKS: gp3 または io2
  • AKS: managed-premium または managed-csi

ブラウザ互換性に関する注意事項

HTTP のみでデプロイしている場合(開発/テスト用途)、一部のブラウザでは「セキュアコンテキスト」の要件により crypto API のエラーが表示されることがあります。本番環境向けのデプロイメントでは、必ずイングレス構成を利用し、適切な TLS 証明書付きの HTTPS を使用してください。

TLS のセットアップ手順については、イングレス構成 を参照してください。

次のステップ