This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.26. Jaeger 設定リファレンス
Service Mesh Operator は ServiceMeshControlPlane リソースをデプロイする際に、分散トレースのリソースを作成することもできます。Service Mesh は分散トレースに Jaeger を使用します。
Jaeger は、FIPS 検証済みの暗号化モジュールを使用しません。
1.26.1. トレースの有効化および無効化 リンクのコピーリンクがクリップボードにコピーされました!
ServiceMeshControlPlane リソースでトレースタイプおよびサンプリングレートを指定して、分散トレースを有効にします。
デフォルトの all-in-one Jaeger パラメーター
現在、サポートされるトレーサーの唯一のタイプは Jaeger です。
Jaeger はデフォルトで有効になっています。トレースを無効にするには、type を None に設定します。
サンプリングレートは、Envoy プロキシーがトレースを生成する頻度を決定します。サンプリングレートオプションを使用して、トレースシステムに報告される要求の割合を制御できます。この設定は、メッシュ内のトラフィックおよび収集するトレースデータ量に基づいて設定できます。sampling は 0.01% の増分を表すスケーリングされた整数として設定します。たとえば、値を 10 サンプル (0.1% トレース)、および 500 サンプル (5% トレース)、および 10000 サンプル (100% トレース) に設定します。
SMCP サンプリング設定オプションは Envoy サンプリングレートを制御します。Jaeger トレースサンプリングレートを Jaeger カスタムリソースで設定します。
1.26.2. SMCP での Jaeger 設定の指定 リンクのコピーリンクがクリップボードにコピーされました!
Jaeger は、ServiceMeshControlPlane リソースの addons セクションで設定します。ただし、SMCP で設定可能な内容にはいくつかの制限があります。
SMCP が設定情報を Red Hat OpenShift 分散トレースプラットフォーム Operator に渡すと、allInOne、production、または streaming の 3 つのデプロイメントストラテジーのいずれかがトリガーされます。
1.26.3. 分散トレースプラットフォームのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
分散トレースプラットフォームには、事前に定義されたデプロイメントストラテジーがあります。Jaeger カスタムリソース (CR) ファイルでデプロイメントストラテジーを指定します。分散トレースプラットフォームインスタンスの作成時に、Red Hat OpenShift 分散トレースプラットフォーム Operator はこの設定ファイルを使用してデプロイメントに必要なオブジェクトを作成します。
Red Hat OpenShift 分散トレースプラットフォーム Operator は現時点で以下のデプロイメントストラテジーをサポートします。
allInOne (デフォルト): このストラテジーは、開発、テスト、およびデモを目的としたものであり、実稼働での使用を目的としたものではありません。主なバックエンドコンポーネントである Agent、Collector、および Query サービスはすべて、インメモリーストレージを使用するように (デフォルトで) 設定された単一の実行可能ファイルにパッケージ化されます。このデプロイメントストラテジーは、SMCP で設定できます。
注記インメモリーストレージには永続性がありません。つまり、Jaeger インスタンスがシャットダウンするか、再起動するか、置き換えられると、トレースデータが失われます。各 Pod には独自のメモリーがあるため、インメモリーストレージはスケーリングできません。永続ストレージの場合は、デフォルトのストレージとして Elasticsearch を使用する
productionまたはstreamingストラテジーを使用する必要があります。- production: production ストラテジーは、実稼働環境向けのストラテジーであり、トレースデータの長期の保存が重要となり、より拡張性および高可用性のあるアーキテクチャーも必要になります。そのため、バックエンドの各コンポーネントは別々にデプロイされます。エージェントは、インストルメント化されたアプリケーションのサイドカーとして挿入できます。Query および Collector サービスは、サポートされているストレージタイプ (現時点では Elasticsearch) で設定されます。これらの各コンポーネントの複数のインスタンスは、パフォーマンスと回復性を確保するために、必要に応じてプロビジョニングできます。このデプロイメントストラテジーを SMCP に設定できますが、完全にカスタマイズするには、Jaeger CR で設定を指定し、SMCP にリンクする必要があります。
- streaming: streaming ストラテジーは、Collector と Elasticsearch バックエンドストレージ間に配置されるストリーミング機能を提供することで、production ストラテジーを増強する目的で設計されています。これにより、負荷の高い状況でバックエンドストレージに加わる圧力を軽減し、他のトレース処理後の機能がストリーミングプラットフォーム (AMQ Streams/ Kafka) から直接リアルタイムのスパンデータを利用できるようにします。このデプロイメントストラテジーを SMCP で設定することはできません。Jaeger CR を設定し、SMCP へのリンクを設定する必要があります。
streaming ストラテジーには、AMQ Streams 用の追加の Red Hat サブスクリプションが必要です。
1.26.3.1. デフォルトの分散トレースプラットフォームのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Jaeger 設定オプションを指定しない場合、ServiceMeshControlPlane リソースはデフォルトで allInOne Jaeger デプロイメントストラテジーを使用します。デフォルトの allInOne デプロイメントストラテジーを使用する場合は、spec.addons.jaeger.install.storage.type を Memory に設定します。デフォルトを使用するか、install で追加設定オプションを許可できます。
コントロールプレーンのデフォルト Jaeger パラメーター (Memory)
1.26.3.2. 分散トレースプラットフォームの実稼働デプロイメント (最小) リンクのコピーリンクがクリップボードにコピーされました!
production デプロイメントストラテジーのデフォルト設定を使用するには、spec.addons.jaeger.install.storage.type を Elasticsearch に設定し、install で追加設定オプションを指定します。SMCP は Elasticsearch リソースおよびイメージ名の設定のみをサポートすることに注意してください。
コントロールプレーンのデフォルト Jaeger パラメーター (Elasticsearch)
1.26.3.3. 分散トレースプラットフォームの実稼働デプロイメント (完全にカスタマイズ) リンクのコピーリンクがクリップボードにコピーされました!
SMCP は最小限の Elasticsearch パラメーターのみをサポートします。実稼働環境を完全にカスタマイズし、すべての Elasticsearch 設定パラメーターにアクセスするには、Jaeger カスタムリソース (CR) を使用して Jaeger を設定します。
または、Jaeger インスタンスを作成および設定し、spec.addons.jaeger.name を Jaeger インスタンスの名前 (この例では MyJaegerInstance) に設定できます。
Jaeger production CR がリンクされたコントロールプレーン
1.26.3.4. Jaeger デプロイメントのストリーミング リンクのコピーリンクがクリップボードにコピーされました!
streaming デプロイメントストラテジーを使用するには、まず Jaeger インスタンスを作成および設定してから、spec.addons.jaeger.name を Jaeger インスタンスの名前 (この例では MyJaegerInstance) に設定します。
リンクされた Jaeger ストリーミング CR を使用したコントロールプレーン
1.26.4. Jaeger カスタムリソースでの Jaeger 設定の指定 リンクのコピーリンクがクリップボードにコピーされました!
ServiceMeshControlPlane (SMCP) リソースではなく Jaeger カスタムリソース (CR) に Jaeger を設定し、Jaeger デプロイメントを完全にカスタマイズできます。この設定は SMCP の外部に指定されているため、外部 Jaeger と呼ばれることもあります。
SMCP と Jaeger CR を同じ namespace にデプロイする必要があります。たとえば、istio-system です。
スタンドアロンの Jaeger インスタンスを設定し、デプロイしてから、Jaeger リソースの name を、SMCP リソースの spec.addons.jaeger.name の値として指定できます。name の値に一致する Jaeger CR が存在する場合、Service Mesh コントロールプレーンは既存のインストールを使用します。この方法では、Jaeger 設定を完全にカスタマイズできます。
1.26.4.1. デプロイメントのベストプラクティス リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat OpenShift 分散トレースインスタンスの名前は一意でなければなりません。複数の Red Hat OpenShift 分散トレースプラットフォームインスタンスがあり、サイドカーが挿入されたエージェントを使用している場合、Red Hat OpenShift 分散トレースプラットフォームインスタンスには一意の名前が必要となり、挿入 (injection) のアノテーションはトレースデータを報告する必要のある Red Hat OpenShift 分散トレースプラットフォームインスタンスの名前を明示的に指定する必要があります。
マルチテナントの実装があり、テナントが namespace で分離されている場合は、Red Hat OpenShift 分散トレースプラットフォームインスタンスを各テナント namespace にデプロイします。
- デーモンセットとしてのエージェントは、マルチテナントインストールまたは Red Hat OpenShift Dedicated ではサポートされません。サイドカーとしてのエージェントは、これらのユースケースでサポートされる唯一の設定です。
-
Red Hat OpenShift Service Mesh の一部として分散トレースをインストールする場合、分散トレースリソースは、
ServiceMeshControlPlaneリソースと同じ namespace にインストールする必要があります。
永続ストレージの設定は、永続ストレージについて と、選択したストレージオプションに適した設定トピックを参照してください。
1.26.4.2. サービスメッシュの分散トレースセキュリティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
分散トレーシングプラットフォームは、デフォルトの認証に OAuth を使用します。ただし、Red Hat OpenShift Service Mesh は htpasswd と呼ばれるシークレットを使用して、Grafana、Kiali、分散トレーシングプラットフォームなどの依存サービス間の通信を容易にします。ServiceMeshControlPlane で分散トレーシングプラットフォームを設定すると、Service Mesh は htpasswd を使用するようにセキュリティー設定を自動的に設定します。
Jaeger カスタムリソースで分散トレースプラットフォーム設定を指定している場合は、htpasswd 設定を手動で設定し、htpasswd シークレットが Jaeger インスタンスにマウントされていることを確認して、Kiali が Jaeger インスタンスと通信できるようにする必要があります。
1.26.4.2.1. OpenShift コンソールからのサービスメッシュの分散トレースセキュリティー設定 リンクのコピーリンクがクリップボードにコピーされました!
Jaeger リソースを変更して、OpenShift コンソールの Service Mesh で使用する分散トレースプラットフォームセキュリティーを設定できます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。(Red Hat OpenShift Dedicated を使用する場合)dedicated-adminロールがあるアカウント。 - Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
-
クラスターにデプロイされた
ServiceMeshControlPlane。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。 -
Operators
Installed Operators の順に移動します。 -
Project メニューをクリックし、一覧から
ServiceMeshControlPlaneリソースがデプロイされているプロジェクト (例:istio-system) を選択します。 - Red Hat OpenShift distributed tracing platform Operator をクリックします。
- Operator の詳細 ページで、Jaeger タブをクリックします。
- Jaeger インスタンスの名前をクリックします。
-
Jaeger の詳細ページで、
YAMLタブをクリックして設定を変更します。 次の例に示すように、
Jaegerカスタムリソースファイルを編集して、htpasswd設定を追加します。-
spec.ingress.openshift.htpasswdFile -
spec.volumes spec.volumeMountshtpasswd設定を示す Jaeger リソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
- Save をクリックします。
1.26.4.2.2. コマンドラインからのサービスメッシュの分散トレースセキュリティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Jaeger リソースを変更して、oc ユーティリティーを使用してコマンドラインから Service Mesh で使用する分散トレースプラットフォームセキュリティーを設定できます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。(Red Hat OpenShift Dedicated を使用する場合)dedicated-adminロールがあるアカウント。 - Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
-
クラスターにデプロイされた
ServiceMeshControlPlane。 - OpenShift Container Platform バージョンに一致する OpenShift CLI (oc) にアクセスできる。
手順
cluster-adminロールを持つユーザーとして OpenShift Container Platform CLI にログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-adminロールがあるアカウント。oc login https://<HOSTNAME>:6443
$ oc login https://<HOSTNAME>:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、コントロールプレーンをインストールしたプロジェクト (
istio-systemなど) に変更します。oc project istio-system
$ oc project istio-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して Jaeger カスタムリソースファイルを編集します。ここで、
jaeger.yamlは Jaeger カスタムリソースの名前に置き換えます。oc edit -n tracing-system -f jaeger.yaml
$ oc edit -n tracing-system -f jaeger.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
Jaegerカスタムリソースファイルを編集して、htpasswd設定を追加します。-
spec.ingress.openshift.htpasswdFile -
spec.volumes spec.volumeMountshtpasswd設定を示す Jaeger リソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
以下のコマンドを実行して変更を適用します。ここで、<jaeger.yaml> は Jaeger カスタムリソースの名前に置き換えます。
oc apply -n tracing-system -f <jaeger.yaml>
$ oc apply -n tracing-system -f <jaeger.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のデプロイメントの進行状況を監視するには、次のコマンドを実行します。
oc get pods -n tracing-system -w
$ oc get pods -n tracing-system -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.26.4.3. 分散トレースのデフォルト設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Jaeger カスタムリソース (CR) は、分散トレースプラットフォームリソースの作成時に使用されるアーキテクチャーおよび設定を定義します。これらのパラメーターを変更して、分散トレースプラットフォームの実装をビジネスニーズに合わせてカスタマイズできます。
Jaeger 汎用 YAML の例
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| オブジェクトの作成時に使用する API バージョン。 |
| |
|
|
| 作成する Kubernetes オブジェクトの種類を定義します。 |
|
|
|
| ||
|
OpenShift Container Platform は |
| オブジェクトの名前。 | 分散トレースプラットフォームインスタンスの名前。 |
|
|
| 作成するオブジェクトの仕様。 |
分散トレースプラットフォームインスタンスのすべての設定パラメーターが含まれます。すべての Jaeger コンポーネントの共通定義が必要な場合、これは |
| 該当なし |
| Jaeger デプロイメントストラテジー |
|
|
|
|
| |
|
| Agent を定義する設定オプション。 | ||
|
| Jaeger Collector を定義する設定オプション。 | ||
|
| トレース用のサンプリングストラテジーを定義する設定オプション。 | ||
|
|
ストレージを定義する設定オプション。すべてのストレージ関連のオプションは、 | ||
|
| Query サービスを定義する設定オプション。 | ||
|
| Ingester サービスを定義する設定オプション。 |
以下の YAML の例は、デフォルト設定を使用して Red Hat OpenShift 分散トレースプラットフォームのデプロイメントを作成するために最低限必要なものです。
最小限必要な dist-tracing-all-in-one.yaml の例
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger-all-in-one-inmemory
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: jaeger-all-in-one-inmemory
1.26.4.4. Jaeger Collector 設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Jaeger Collector は、トレーサーによってキャプチャーされたスパンを受信し、production ストラテジーを使用する場合はそれらを永続 Elasticsearch ストレージに書き込み、streaming ストラテジーを使用する場合は AMQ Streams に書き込むコンポーネントです。
Collector はステートレスであるため、Jaeger Collector のインスタンスの多くは並行して実行できます。Elasticsearch クラスターの場所を除き、Collector では設定がほとんど必要ありません。
| パラメーター | 説明 | 値 |
|---|---|---|
collector: replicas:
| 作成する Collector レプリカの数を指定します。 |
整数 (例: |
| パラメーター | 説明 | 値 |
|---|---|---|
spec:
collector:
options: {}
| Jaeger Collector を定義する設定オプション。 | |
options:
collector:
num-workers:
| キューからプルするワーカーの数。 |
整数 (例: |
options:
collector:
queue-size:
| Collector キューのサイズ。 |
整数 (例: |
options:
kafka:
producer:
topic: jaeger-spans
|
| プロデューサーのラベル。 |
options:
kafka:
producer:
brokers: my-cluster-kafka-brokers.kafka:9092
| メッセージを生成するために Collector によって使用される Kafka 設定を特定します。ブローカーが指定されていない場合で、AMQ Streams 1.4.0+ がインストールされている場合、Red Hat OpenShift 分散トレースプラットフォーム Operator は Kafka をセルフプロビジョニングします。 | |
options: log-level:
| Collector のロギングレベル。 |
使用できる値は、 |
1.26.4.5. 分散トレースのサンプリング設定オプション リンクのコピーリンクがクリップボードにコピーされました!
この Red Hat OpenShift 分散トレースプラットフォーム Operator は、リモートサンプラーを使用するように設定されているトレーサーに提供されるサンプリングストラテジーを定義するために使用できます。
すべてのトレースが生成される間に、それらの一部のみがサンプリングされます。トレースをサンプリングすると、追加の処理や保存のためにトレースにマークが付けられます。
これは、トレースがサンプリングの意思決定が行われる際に Envoy プロキシーによって開始されている場合に関連がありません。Jaeger サンプリングの意思決定は、トレースがクライアントを使用してアプリケーションによって開始される場合にのみ関連します。
サービスがトレースコンテキストが含まれていない要求を受信すると、クライアントは新しいトレースを開始し、これにランダムなトレース ID を割り当て、現在インストールされているサンプリングストラテジーに基づいてサンプリングの意思決定を行います。サンプリングの意思決定はトレース内の後続のすべての要求に伝播され、他のサービスが再度サンプリングの意思決定を行わないようにします。
分散トレースプラットフォームライブラリーは、以下のサンプラーをサポートします。
-
Probabilistic: サンプラーは、
sampling.paramプロパティーの値と等しいサンプリングの確率で、ランダムなサンプリングの意思決定を行います。たとえば、sampling.param=0.1を使用した場合は、約 10 のうち 1 トレースがサンプリングされます。 -
Rate Limiting: サンプラーは、リーキーバケット (leaky bucket) レートリミッターを使用して、トレースが一定のレートでサンプリングされるようにします。たとえば、
sampling.param=2.0を使用した場合は、1 秒あたり 2 トレースの割合で要求がサンプリングされます。
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
spec:
sampling:
options: {}
default_strategy:
service_strategy:
| トレース用のサンプリングストラテジーを定義する設定オプション。 | 設定を指定しない場合、Collector はすべてのサービスの確率 0.001 (0.1%) のデフォルトの確率的なサンプリングポリシーを返します。 | |
default_strategy: type: service_strategy: type:
| 使用するサンプリングストラテジー。上記の説明を参照してください。 |
有効な値は |
|
default_strategy: param: service_strategy: param:
| 選択したサンプリングストラテジーのパラメーター | 10 進値および整数値 (0、.1、1、10) | 1 |
この例では、トレースインスタンスをサンプリングする確率が 50% の確率的なデフォルトサンプリングストラテジーを定義します。
確率的なサンプリングの例
ユーザーによって指定される設定がない場合、分散トレースプラットフォームは以下の設定を使用します。
デフォルトのサンプリング
1.26.4.6. 分散トレースのストレージ設定オプション リンクのコピーリンクがクリップボードにコピーされました!
spec.storage の下で Collector、Ingester、および Query サービスのストレージを設定します。これらの各コンポーネントの複数のインスタンスは、パフォーマンスと回復性を確保するために、必要に応じてプロビジョニングできます。
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
spec:
storage:
type:
| デプロイメントに使用するストレージのタイプ。 |
|
|
storage: secretname:
|
シークレットの名前 (例: | 該当なし | |
storage:
options: {}
| ストレージを定義する設定オプション。 |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
storage:
esIndexCleaner:
enabled:
| Elasticsearch ストレージを使用する場合は、デフォルトでジョブが作成され、古いトレースをインデックスからクリーンアップします。このパラメーターは、インデックスクリーナージョブを有効または無効にします。 |
|
|
storage:
esIndexCleaner:
numberOfDays:
| インデックスの削除を待機する日数。 | 整数値 |
|
storage:
esIndexCleaner:
schedule:
| Elasticsearch インデックスを消去する頻度に関するスケジュールを定義します。 | cron 式 | "55 23 * * *" |
1.26.4.6.1. Elasticsearch インスタンスの自動プロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
Jaeger カスタムリソースをデプロイする場合に、Red Hat OpenShift 分散トレースプラットフォーム Operator は、OpenShift Elasticsearch Operator を使用して、カスタムリソースファイルの ストレージ セクションで提供される設定に基づいて Elasticsearch クラスターを作成します。以下の設定が設定されている場合は、Red Hat 分散トレースプラットフォーム Operator は Elasticsearch をプロビジョニングします。
-
spec.storage:typeはelasticsearchに設定されている -
spec.storage.elasticsearch.doNotProvisionはfalseに設定されている -
spec.storage.options.es.server-urlsが定義されていない。つまり、Red Hat Elasticsearch Operator によってプロビジョニングされていない Elasticsearch インスタンスへの接続がない。
Elasticsearch をプロビジョニングする場には、Red Hat OpenShift 分散トレースプラットフォーム Operator は、Elasticsearch カスタムリソース 名 を Jaeger カスタムリソースの spec.storage.elasticsearch.name の値に設定します。spec.storage.elasticsearch.name に値を指定しない場合、Operator は elasticsearch を使用します。
制約
- namespace ごとにセルフプロビジョニングされた Elasticsearch インスタンスがある分散トレースプラットフォーム 1 つだけを使用できます。Elasticsearch クラスターは単一の 分散トレースプラットフォームインスタンスの専用のクラスターになります。
- namespace ごとに 1 つの Elasticsearch のみを使用できます。
Elasticsearch を OpenShift ロギングの一部としてインストールしている場合、Red Hat OpenShift 分散トレースプラットフォーム Operator はインストールされた OpenShift Elasticsearch Operator を使用してストレージをプロビジョニングできます。
以下の設定パラメーターは、セルフプロビジョニングされた Elasticsearch インスタンスに対するものです。これは、OpenShift Elasticsearch Operator を使用して Red Hat OpenShift 分散トレースプラットフォーム Operator によって作成されるインスタンスです。セルフプロビジョニングされた Elasticsearch の設定オプションは、設定ファイルの spec:storage:elasticsearch の下で指定します。
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
elasticsearch:
properties:
doNotProvision:
| Elasticsearch インスタンスを Red Hat 分散トレースプラットフォーム Operator がプロビジョニングする必要があるかどうかを指定するために使用します。 |
|
|
elasticsearch:
properties:
name:
| Elasticsearch インスタンスの名前。Red Hat OpenShift 分散トレースプラットフォーム Operator は、このパラメーターで指定された Elasticsearch インスタンスを使用して Elasticsearch に接続します。 | string |
|
elasticsearch: nodeCount:
| Elasticsearch ノードの数。高可用性を確保するには、少なくとも 3 つのノードを使用します。スプリットブレインの問題が生じる可能性があるため、2 つのノードを使用しないでください。 | 整数値。例: 概念実証用 = 1、最小デプロイメント = 3 | 3 |
elasticsearch:
resources:
requests:
cpu:
| ご使用の環境設定に基づく、要求に対する中央処理単位の数。 | コアまたはミリコアで指定されます (例: 200m、0.5、1)。例: 概念実証用 = 500m、最小デプロイメント = 1 | 1 |
elasticsearch:
resources:
requests:
memory:
| ご使用の環境設定に基づく、要求に使用できるメモリー。 | バイト単位で指定します (例:200Ki、50Mi、5Gi)。例: 概念実証用 = 1Gi、最小デプロイメント = 16Gi* | 16Gi |
elasticsearch:
resources:
limits:
cpu:
| ご使用の環境設定に基づく、中央処理単位数の制限。 | コアまたはミリコアで指定されます (例: 200m、0.5、1)。例: 概念実証用 = 500m、最小デプロイメント = 1 | |
elasticsearch:
resources:
limits:
memory:
| ご使用の環境設定に基づく、利用可能なメモリー制限。 | バイト単位で指定します (例:200Ki、50Mi、5Gi)。例: 概念実証用 = 1Gi、最小デプロイメント = 16Gi* | |
elasticsearch: redundancyPolicy:
| データレプリケーションポリシーは、Elasticsearch シャードをクラスター内のデータノードにレプリケートする方法を定義します。指定されていない場合、Red Hat OpenShift 分散トレースプラットフォーム Operator はノード数に基づいて最も適切なレプリケーションを自動的に判別します。 |
| |
elasticsearch: useCertManagement:
| 分散トレースプラットフォームが Red Hat の証明書管理機能を使用するかどうかを指定するために使用します。この機能は、OpenShift Container Platform 4.7 の Red Hat OpenShift 5.2 向けのロギングサブシステムに追加されており、新しい Jaeger デプロイメントに推奨の設定です。 |
|
|
| 各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨されません。実稼働環境で使用する場合は、デフォルトで各 Pod に割り当てる設定を 16Gi 未満にすることはできず、Pod ごとに最大 64Gi を割り当てることを推奨します。 | ||
実稼働ストレージの例
永続ストレージを含むストレージの例:
- 1
- 永続ストレージの設定。この場合、AWS
gp2のサイズは5Giです。値の指定がない場合、分散トレースプラットフォームはemptyDirを使用します。OpenShift Elasticsearch Operator は、分散トレースプラットフォームインスタンスで削除されないPersistentVolumeClaimおよびPersistentVolumeをプロビジョニングします。同じ名前および namespace で分散トレースプラットフォームインスタンスを作成する場合は、同じボリュームをマウントできます。
1.26.4.6.2. 既存の Elasticsearch インスタンスへの接続 リンクのコピーリンクがクリップボードにコピーされました!
分散トレースを使用したストレージには、既存の Elasticsearch クラスターを使用できます。外部 Elasticsearch インスタンスとも呼ばれる既存の Elasticsearch クラスターは、Red Hat 分散トレースプラットフォーム Operator または Red Hat Operator によってインストールされなかったインスタンスです。
以下の設定が指定されている場合に、Jaeger カスタムリソースをデプロイすると、Red Hat 分散トレースプラットフォーム Operator は Elasticsearch をプロビジョニングしません。
-
spec.storage.elasticsearch.doNotProvisionがtrueに設定されている -
spec.storage.options.es.server-urlsに値がある -
spec.storage.elasticsearch.nameに値がある場合、または Elasticsearch インスタンス名がelasticsearchの場合。
Red Hat OpenShift 分散トレースプラットフォーム Operator は、spec.storage.elasticsearch.name で指定された Elasticsearch インスタンスを使用して Elasticsearch に接続します。
制約
- 分散トレースプラットフォームで OpenShift Container Platform ロギング Elasticsearch インスタンスを共有したり、再利用したりすることはできません。Elasticsearch クラスターは単一の 分散トレースプラットフォームインスタンスの専用のクラスターになります。
Red Hat は、外部 Elasticsearch インスタンスのサポートを提供しません。カスタマーポータル でテスト済み統合マトリックスを確認できます。
以下の設定パラメーターは、外部 Elasticsearch インスタンスとして知られる、既存の Elasticsearch インスタンス向けです。この場合は、カスタムリソースファイルの spec:storage:options:es で、Elasticsearch の設定オプションを指定します。
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
es: server-urls:
| Elasticsearch インスタンスの URL。 | Elasticsearch サーバーの完全修飾ドメイン名。 | |
es: max-doc-count:
|
Elasticsearch クエリーから返す最大ドキュメント数。これは集約にも適用されます。 | 10000 | |
es: max-num-spans:
|
[非推奨: 今後のリリースで削除されます。代わりに | 10000 | |
es: max-span-age:
| Elasticsearch のスパンの最大ルックバック。 | 72h0m0s | |
es: sniffer:
| Elasticsearch のスニファー設定。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。 |
|
|
es: sniffer-tls-enabled:
| Elasticsearch クラスターに対してスニッフィングする際に TLS を有効にするためのオプション。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。 |
|
|
es: timeout:
| クエリーに使用されるタイムアウト。ゼロに設定するとタイムアウトはありません。 | 0s | |
es: username:
|
Elasticsearch で必要なユーザー名。Basic 認証は、指定されている場合に CA も読み込みます。 | ||
es: password:
|
Elasticsearch で必要なパスワード。 | ||
es: version:
| 主要な Elasticsearch バージョン。指定されていない場合、値は Elasticsearch から自動検出されます。 | 0 |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
es: num-replicas:
| Elasticsearch のインデックスごとのレプリカ数。 | 1 | |
es: num-shards:
| Elasticsearch のインデックスごとのシャード数。 | 5 |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
es: create-index-templates:
|
|
|
|
es: index-prefix:
| 分散トレースプラットフォームインデックスのオプション接頭辞。たとえば、これを production に設定すると、production-tracing-*という名前のインデックスが作成されます。 |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
es:
bulk:
actions:
| バルクプロセッサーがディスクへの更新のコミットを決定する前にキューに追加できる要求の数。 | 1000 | |
es:
bulk:
flush-interval:
|
| 200ms | |
es:
bulk:
size:
| バルクプロセッサーがディスクへの更新をコミットするまでに一括要求が発生する可能性のあるバイト数。 | 5000000 | |
es:
bulk:
workers:
| 一括要求を受信し、Elasticsearch にコミットできるワーカーの数。 | 1 |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
es:
tls:
ca:
| リモートサーバーの検証に使用される TLS 認証局 (CA) ファイルへのパス。 | デフォルトではシステムトラストストアを使用します。 | |
es:
tls:
cert:
| リモートサーバーに対するこのプロセスの特定に使用される TLS 証明書ファイルへのパス。 | ||
es:
tls:
enabled:
| リモートサーバーと通信する際に、トランスポート層セキュリティー (TLS) を有効にします。デフォルトでは無効になっています。 |
|
|
es:
tls:
key:
| リモートサーバーに対するこのプロセスの特定に使用される TLS 秘密鍵ファイルへのパス。 | ||
es:
tls:
server-name:
| リモートサーバーの証明書の予想される TLS サーバー名を上書きします。 | ||
es: token-file:
| ベアラートークンが含まれるファイルへのパス。このフラグは、指定されている場合は認証局 (CA) ファイルも読み込みます。 |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
es-archive:
bulk:
actions:
| バルクプロセッサーがディスクへの更新のコミットを決定する前にキューに追加できる要求の数。 | 0 | |
es-archive:
bulk:
flush-interval:
|
| 0s | |
es-archive:
bulk:
size:
| バルクプロセッサーがディスクへの更新をコミットするまでに一括要求が発生する可能性のあるバイト数。 | 0 | |
es-archive:
bulk:
workers:
| 一括要求を受信し、Elasticsearch にコミットできるワーカーの数。 | 0 | |
es-archive: create-index-templates:
|
|
|
|
es-archive: enabled:
| 追加ストレージを有効にします。 |
|
|
es-archive: index-prefix:
| 分散トレースプラットフォームインデックスのオプション接頭辞。たとえば、これを production に設定すると、production-tracing-*という名前のインデックスが作成されます。 | ||
es-archive: max-doc-count:
| Elasticsearch クエリーから返す最大ドキュメント数。これは集約にも適用されます。 | 0 | |
es-archive: max-num-spans:
|
[非推奨: 今後のリリースで削除されます。代わりに | 0 | |
es-archive: max-span-age:
| Elasticsearch のスパンの最大ルックバック。 | 0s | |
es-archive: num-replicas:
| Elasticsearch のインデックスごとのレプリカ数。 | 0 | |
es-archive: num-shards:
| Elasticsearch のインデックスごとのシャード数。 | 0 | |
es-archive: password:
|
Elasticsearch で必要なパスワード。 | ||
es-archive: server-urls:
|
Elasticsearch サーバーのコンマ区切りの一覧。完全修飾 URL(例: | ||
es-archive: sniffer:
| Elasticsearch のスニファー設定。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。 |
|
|
es-archive: sniffer-tls-enabled:
| Elasticsearch クラスターに対してスニッフィングする際に TLS を有効にするためのオプション。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。 |
|
|
es-archive: timeout:
| クエリーに使用されるタイムアウト。ゼロに設定するとタイムアウトはありません。 | 0s | |
es-archive:
tls:
ca:
| リモートサーバーの検証に使用される TLS 認証局 (CA) ファイルへのパス。 | デフォルトではシステムトラストストアを使用します。 | |
es-archive:
tls:
cert:
| リモートサーバーに対するこのプロセスの特定に使用される TLS 証明書ファイルへのパス。 | ||
es-archive:
tls:
enabled:
| リモートサーバーと通信する際に、トランスポート層セキュリティー (TLS) を有効にします。デフォルトでは無効になっています。 |
|
|
es-archive:
tls:
key:
| リモートサーバーに対するこのプロセスの特定に使用される TLS 秘密鍵ファイルへのパス。 | ||
es-archive:
tls:
server-name:
| リモートサーバーの証明書の予想される TLS サーバー名を上書きします。 | ||
es-archive: token-file:
| ベアラートークンが含まれるファイルへのパス。このフラグは、指定されている場合は認証局 (CA) ファイルも読み込みます。 | ||
es-archive: username:
|
Elasticsearch で必要なユーザー名。Basic 認証は、指定されている場合に CA も読み込みます。 | ||
es-archive: version:
| 主要な Elasticsearch バージョン。指定されていない場合、値は Elasticsearch から自動検出されます。 | 0 |
ボリュームマウントを含むストレージの例
以下の例は、ボリュームからマウントされる TLS CA 証明書およびシークレットに保存されるユーザー/パスワードを使用して外部 Elasticsearch クラスターを使用する Jaeger CR を示しています。
外部 Elasticsearch の例:
- 1
- デフォルト namespace で実行されている Elasticsearch サービスへの URL。
- 2
- TLS 設定。この場合は、CA 証明書のみを使用できますが、相互 TLS を使用する場合に es.tls.key および es.tls.cert を含めることもできます。
- 3
- 環境変数 ES_PASSWORD および ES_USERNAME を定義するシークレット。kubectl create secret generic tracing-secret --from-literal=ES_PASSWORD=changeme --from-literal=ES_USERNAME=elastic により作成されます
- 4
- すべてのストレージコンポーネントにマウントされるボリュームのマウントとボリューム。
1.26.4.7. Elasticsearch を使用した証明書の管理 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Elasticsearch Operator を使用して、証明書を作成および管理できます。Red Hat Elasticsearch Operator を使用して証明書を管理すると、複数の Jaeger Collector で単一の Elasticsearch クラスターを使用することもできます。
Elasticsearch を使用した証明書の管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
バージョン 2.4 以降、Red Hat OpenShift 分散トレースプラットフォーム Operator は、Elasticsearch カスタムリソースで次のアノテーションを使用して、証明書の作成を Red Hat Elasticsearch Operator に委譲します。
-
logging.openshift.io/elasticsearch-cert-management: "true" -
logging.openshift.io/elasticsearch-cert.jaeger-<shared-es-node-name>: "user.jaeger" -
logging.openshift.io/elasticsearch-cert.curator- <shared-es-node-name>: "system.logging.curator"
ここで、<shared-es-node-name> は Elasticsearch ノードの名前です。たとえば、custom-es という名前の Elasticsearch ノードを作成する場合に、カスタムリソースは次の例のようになります。
アノテーションを表示する Elasticsearch CR の例
前提条件
- OpenShift Container Platform 4.7
- Red Hat OpenShift のロギングサブシステム: 5.2
-
Elasticsearch ノードと Jaeger インスタンスは同じ namespace にデプロイする必要があります。(例:
traceing-system)。
Jaeger カスタムリソースで spec.storage.elasticsearch.useCertManagement を true に設定して、証明書管理を有効にします。
useCertManagement を示す例
Red Hat OpenShift 分散トレースプラットフォーム Operator は、Elasticsearch カスタムリソース 名 を Jaeger カスタムリソースの spec.storage.elasticsearch.name の値に設定します。
証明書は Red Hat Operator によってプロビジョニングされ、Red Hat 分散トレースプラットフォーム Operator が証明書を挿入します。
Elasticsearch を OpenShift Container Platform で設定する方法の詳細は、ログストアの設定 または 分散トレースの設定およびデプロイ を参照してください。
1.26.4.8. クエリー設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Query とは、ストレージからトレースを取得し、ユーザーインターフェイスをホストしてそれらを表示するサービスです。
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
spec:
query:
replicas:
| 作成する Query レプリカの数を指定します。 |
整数 (例: |
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
spec:
query:
options: {}
| Query サービスを定義する設定オプション。 | ||
options: log-level:
| Query のロギングレベル。 |
使用できる値は、 | |
options:
query:
base-path:
|
すべての jaeger-query HTTP ルートのベースパスは、root 以外の値に設定できます。たとえば、 | /<path> |
Query 設定の例
1.26.4.9. Ingester 設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Ingester は、Kafka トピックから読み取り、Elasticsearch ストレージバックエンドに書き込むサービスです。allInOne または production デプロイメントストラテジーを使用している場合は、Ingester サービスを設定する必要はありません。
| パラメーター | 説明 | 値 |
|---|---|---|
spec:
ingester:
options: {}
| Ingester サービスを定義する設定オプション。 | |
options: deadlockInterval:
|
Ingester が終了するまでメッセージを待機する間隔 (秒単位または分単位) を指定します。システムの初期化中にメッセージが到達されない場合に Ingester が終了しないように、デッドロックの間隔はデフォルトで無効に ( |
分と秒 (例: |
options:
kafka:
consumer:
topic:
|
|
コンシューマーのラベル例: |
options:
kafka:
consumer:
brokers:
| メッセージを消費するために Ingester によって使用される Kafka 設定を特定します。 |
ブローカーのラベル (例: |
options: log-level:
| Ingester のロギングレベル。 |
使用できる値は、 |
ストリーミング Collector および Ingester の例