Helm 設定
このガイドでは、ClickStack の Helm デプロイメントにおける設定オプションについて説明します。基本的なインストール手順については、Helm デプロイメントのメインガイドを参照してください。
API key setup
ClickStack のデプロイが正常に完了したら、テレメトリデータの収集を有効にするために API キーを設定します。
- 構成済みのイングレスまたは Service エンドポイントを通じて HyperDX インスタンスにアクセス します
- HyperDX ダッシュボードにログイン し、「Team settings」に移動して API キーを生成または取得します
- 次のいずれかの方法で API キーを使用して デプロイメントを更新 します:
方法 1: Helm upgrade と values ファイルを使って更新する
values.yaml に API キーを追加します:
次に、デプロイメントをアップグレードします:
方法 2:--set フラグを指定した Helm upgrade による更新
変更を反映するためにポッドを再起動する
API キーを更新したら、新しい設定を反映するためにポッドを再起動します。
このチャートは、API キーを含む Kubernetes Secret(<release-name>-app-secrets)を自動的に作成します。外部 Secret を使用する場合を除き、追加の Secret 設定は不要です。
シークレット管理
API キーやデータベース認証情報などの機密データを扱う場合は、Kubernetes の Secret リソースを使用してください。
事前構成済みの Secret を使用する
Helm チャートには、デフォルトの Secret テンプレートが charts/clickstack/templates/secrets.yaml に含まれています。このファイルは、Secret を管理するための基本的なひな型を提供します。
Secret を手動で適用する必要がある場合は、提供されている secrets.yaml テンプレートを編集してから適用してください。
シークレットをクラスターに適用します:
カスタムシークレットの作成
Kubernetes のカスタムシークレットを手動で作成します。
values.yaml で Secret を参照する
イングレスのセットアップ
ドメイン名経由で HyperDX の UI と API を公開するには、values.yaml でイングレスを有効にします。
共通のイングレス設定
hyperdx.frontendUrl はイングレスのホスト名と一致させ、プロトコルを含めて設定してください(例: https://hyperdx.yourdomain.com)。これにより、生成されるすべてのリンク、クッキー、およびリダイレクトが正しく動作します。
TLS (HTTPS) の有効化
デプロイメントを HTTPS で保護するには、次の手順を実行します。
1. 証明書と秘密鍵を使用して TLS シークレットを作成します:
2. イングレスの設定で TLS を有効にする:
イングレス設定の例
参考として、生成されるイングレスリソースは次のようになります。
よくあるイングレスの落とし穴
パスとリライトの設定:
- Next.js やその他の SPA では、必ず上記のように正規表現パスとリライト用アノテーションを使用すること
- リライトなしで単に
path: /のみを使用しないこと。静的アセットの配信が失敗する原因になる
frontendUrl と ingress.host の不一致:
- これらが一致していない場合、Cookie、リダイレクト、アセットの読み込みに問題が発生する可能性がある
TLS の誤った設定:
- TLS シークレットが有効であり、イングレスで正しく参照されていることを確認すること
- TLS を有効にしている場合に HTTP 経由でアプリにアクセスすると、ブラウザが安全でないコンテンツをブロックすることがある
イングレスコントローラーのバージョン:
- 正規表現パスやリライトなどの一部機能は、比較的新しいバージョンの nginx ingress controller を必要とする
- 次のコマンドでバージョンを確認すること:
OTel collector のイングレス
OTel collector のエンドポイント(traces、metrics、logs)をイングレス経由で公開する必要がある場合は、additionalIngresses 設定を使用します。これは、クラスター外からテレメトリデータを送信する場合や、OTel collector 用にカスタムドメインを使用する場合に便利です。
- これにより、OTEL collector のエンドポイント用に専用のイングレスリソースが作成されます
- 異なるドメインを使用したり、特定の TLS 設定を構成したり、カスタムアノテーションを適用したりできます
- 正規表現ベースのパスルールによって、すべての OTLP シグナル(トレース、メトリクス、ログ)を単一のルールでルーティングできます
OTEL collector を外部公開する必要がない場合は、この設定を省略できます。ほとんどのユーザーにとっては、通常のイングレス設定だけで十分です。
イングレスのトラブルシューティング
イングレスリソースを確認する:
イングレスコントローラーのログを確認する:
テスト用アセットの URL:
curl を使用して、静的アセットが HTML ではなく JavaScript として配信されていることを確認します:
ブラウザ開発者ツール:
- Network タブで 404 や、JS の代わりに HTML を返しているアセットがないか確認する
- コンソールで
Unexpected token <のようなエラーを探す(JS に対して HTML が返されていることを示す)
パス書き換えの確認:
- イングレスがアセットパスを削ってしまったり、意図せず書き換えたりしていないか確認する
ブラウザと CDN キャッシュのクリア:
- 設定変更後は、ブラウザキャッシュと CDN/プロキシキャッシュをクリアして、古いアセットが配信されるのを避ける
値のカスタマイズ
--set フラグを使用して設定値をカスタマイズできます。
または、独自の values.yaml を作成します。デフォルト値を取得するには、次を実行します。
設定例:
カスタム値を適用する:
次のステップ
- デプロイメントオプション - 外部システムおよび最小構成でのデプロイメント
- クラウドデプロイメント - GKE、EKS、AKS の構成
- Helm のメインガイド - 基本的なインストール