Helm の設定 (v1.x)
このページでは、メンテナンスモードの v1.x インラインテンプレート Helm チャートの設定について説明します。v2.x チャートについては、Helm の設定を参照してください。移行については、アップグレードガイドを参照してください。
このガイドでは、ClickStack Helm デプロイの設定オプションを説明します。基本的なインストール手順については、Helm デプロイのメインガイドを参照してください。
API キーの設定
ClickStack を正常にデプロイしたら、テレメトリーデータの収集を有効にするため、API キーを設定します。
- 設定済みのイングレスまたはサービスエンドポイントから HyperDX インスタンスにアクセスします
- HyperDX ダッシュボードにログインし、Team settings に移動して API キーを生成または取得します
- 以下のいずれかの方法で、API キーを使用するようデプロイを更新します。
方法1: valuesファイルを使用したHelm upgradeによる更新
APIキーを values.yaml に追加します:
次に、デプロイをアップグレードします:
方法 2: Helm upgrade と --set フラグを使用して更新する
変更を適用するため、ポッドを再起動する
API キーを更新したら、新しい設定を読み込ませるためにポッドを再起動します。
このチャートは、API キーを含む Kubernetes シークレット (<release-name>-app-secrets) を自動的に作成します。外部シークレットを使用する場合を除き、シークレットに関する追加設定は不要です。
シークレットの管理
API キーやデータベース認証情報などの機密データを扱うには、Kubernetes シークレットを使用します。
事前設定済みシークレットの使用
Helm チャートには、charts/clickstack/templates/secrets.yaml にあるデフォルトのシークレットテンプレートが含まれています。このファイルは、シークレットを管理するための基本的な構成を提供します。
シークレットを手動で適用する必要がある場合は、提供されている secrets.yaml テンプレートを編集して適用します。
クラスターにシークレットを適用します:
カスタムシークレットの作成
カスタム Kubernetes シークレットを手動で作成します。
values.yamlでシークレットを参照する
イングレスの設定
ドメイン名経由でインターフェイス HyperDX と API を公開するには、values.yaml でイングレスを有効にします。
イングレスの一般設定
hyperdx.frontendUrl はイングレスのホスト名と一致させ、プロトコル (例: https://hyperdx.yourdomain.com) も含める必要があります。これにより、生成されるリンク、Cookie、リダイレクトがすべて正しく機能します。
TLS (HTTPS) を有効にする
デプロイを HTTPS で保護するには、次の手順を実行します。
1. 証明書とキーを使って TLS シークレットを作成します。
2. イングレスの設定でTLSを有効にします:
イングレス設定の例
参考までに、生成されるイングレスリソースは次のようになります。
イングレスでよくある落とし穴
パスとリライトの設定:
- Next.js やその他の SPA では、必ず上記のように Regex パスとリライト用アノテーションを使用してください
- リライトなしで
path: /だけを使用しないでください。静的アセットを配信できなくなります
frontendUrl と ingress.host の不一致:
- これらが一致していないと、Cookie、リダイレクト、アセットの読み込みに問題が発生することがあります
TLS の設定ミス:
- TLS シークレットが有効で、イングレスで正しく参照されていることを確認してください
- TLS が有効な状態で HTTP 経由でアプリにアクセスすると、ブラウザーが安全でないコンテンツをブロックすることがあります
イングレスコントローラーのバージョン:
- 一部の機能 (Regex パスやリライトなど) を使用するには、新しいバージョンの nginx ingress controller が必要です
- 次のコマンドでバージョンを確認してください:
OTel collector のイングレス
OTel collector のエンドポイント (トレース、メトリクス、ログ) をイングレス経由で公開する必要がある場合は、additionalIngresses 設定を使用してください。これは、クラスター外からテレメトリーデータを送信する場合や、OTel collector にカスタムドメインを使用する場合に便利です。
- これにより、OTel collector のエンドポイント用に個別のイングレスリソースが作成されます
- 別のドメインを使用し、TLS の詳細設定を行い、カスタムアノテーションを適用できます
- Regex パスルールを使用すると、すべての OTLP シグナル (トレース、メトリクス、ログ) を単一のルールでルーティングできます
OTel collector を外部に公開する必要がない場合は、この設定を省略できます。ほとんどのユーザーにとっては、通常のイングレス設定で十分です。
イングレスのトラブルシューティング
イングレスリソースを確認する:
イングレスコントローラーのログを確認する:
アセット URL のテスト:
curl を使用して、静的アセットが HTML ではなく JS として配信されていることを確認します。
ブラウザーの DevTools:
- Network タブで、404 エラーや、JS ではなく HTML を返しているアセットがないか確認します
- コンソールで
Unexpected token <のようなエラーを確認します (これは JS に対して HTML が返されていることを示します)
パスの書き換えを確認する:
- イングレスでアセットのパスが削除されたり、誤って書き換えられたりしていないことを確認します
ブラウザーと CDN のキャッシュをクリアする:
- 変更後は、古いアセットが使われるのを防ぐため、ブラウザーのキャッシュと CDN/プロキシのキャッシュをクリアします
値のカスタマイズ
設定は --set フラグでカスタマイズできます。
または、独自の values.yaml を作成します。デフォルト値を取得するには:
設定例:
カスタム値を適用します:
次のステップ
- デプロイ オプション (v1.x) - 外部システムと最小構成のデプロイ
- Cloud デプロイ (v1.x) - GKE、EKS、AKS 向けの構成
- Helm ガイド (v1.x) - 基本インストール
- Helm の設定 (v2.x) - v2.x の構成ガイド
- アップグレードガイド - v1.x から v2.x への移行