このガイドでは、マネージド Kubernetes サービス上に ClickStack をデプロイするための Cloud 固有の設定について説明します。基本的なインストールについては、メインの 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 hyperdx.config.OPAMP_SERVER_URL="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"GKE の values の例
# 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: 10GiAmazon EKS
EKS へのデプロイでは、一般的に次の構成が考えられます。
# 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: 10GiAWS ALB イングレスの構成については、追加マニフェスト ガイドとALB の values の例を参照してください。
Azure AKS
AKS へのデプロイの場合:
# 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本番環境向けクラウドデプロイメントのチェックリスト
いずれのクラウドプロバイダーでも、ClickStack を本番環境にデプロイする前に:
- 外部ドメイン/IP に合わせて
hyperdx.frontendUrlを適切に設定する - HTTPS アクセス用に、TLS を有効にしたイングレスを設定する
- 接続の問題が発生する場合は、OpAMP サーバー URL を FQDN で上書きする (特に GKE)
- ClickHouse と Keeper のボリュームクレーム用のストレージクラスを設定する
- 適切なリソースリクエストと制限を設定する
- 監視とアラートを有効にする
- バックアップと災害復旧を構成する
-
hyperdx.secretsまたは外部シークレットを使用して、適切なシークレット管理を実装する
本番環境のベストプラクティス
リソース管理
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高可用性
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永続ストレージ
データ保持のため、オペレーターの CR スペックで永続ボリュームが構成されていることを確認します。
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: 10GiCloud向けのストレージクラス:
- GKE:
pd-ssdまたはpd-balanced - EKS:
gp3またはio2 - AKS:
managed-premiumまたはmanaged-csi
ブラウザ互換性に関する注意事項
HTTP のみのデプロイメント (開発/テスト) では、セキュアコンテキスト要件のため、一部のブラウザで Crypto API のエラーが表示される場合があります。本番環境のデプロイメントでは、必ずイングレス設定を通じて適切な TLS 証明書を使用した HTTPS を利用してください。
TLS の設定手順については、イングレス設定を参照してください。
次のステップ
- 設定ガイド - API キー、シークレット、イングレス
- デプロイメントオプション - 外部システムの設定
- アップグレードガイド - v1.x から v2.x への移行
- 追加マニフェスト - カスタム Kubernetes オブジェクト
- Helm メインガイド - 基本インストール
- Cloud デプロイメント (v1.x) - v1.x のクラウド設定