バージョン 2. 0 ServiceMeshControlPlane の例 の例
1.13. カスタムリソース
1.13.5. 分散トレースの設定
Service Mesh Operator は ServiceMeshControlPlane リソースを作成する際に、分散トレースのリ ソースも作成します。サービスメッシュは分散トレースに Jaeger を使用します。
1.13.5.1. トレースの有効化および無効化 トレースの有効化および無効化
トレースタイプとサンプリングレートを指定して、トレースを有効にします。
デフォルトの
デフォルトの
all-in-oneJaeger パラメーター パラメーター
kiali:enabled: true dashboard:
viewOnlyMode: false
grafanaURL: "https://grafana-istio-system.127.0.0.1.nip.io"
ingress:
enabled: true
spec:
kiali:
enabled: true dashboard:
viewOnlyMode: false
jaegerURL: "http://jaeger-query-istio-system.127.0.0.1.nip.io"
ingress:
enabled: true
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata:
name: basic spec:
version: v2.0 tracing:
sampling: 100 type: Jaeger
現在、サポートされるトレーサーの唯一のタイプは Jaeger です。Jaeger はデフォルトで有効にされま す。トレースを無効にするには、type を None に設定します。
サンプリングレートは、トレースの生成頻度を定めます。sampling は 0.01% の増分を表すスケーリン グされた整数として設定します。たとえば、値を 1 サンプル (0.01% トレース)、および 10000 サンプル (100% トレース) に設定します。
1.13.5.2. Jaeger 設定の指定 設定の指定
Jaeger は、ServiceMeshControlPlane リソースの addons セクションで設定します。
Jaeger 設定は、以下の2 つの方法のいずれかで指定できます。
ServiceMeshControlPlane リソースの spec.addons.jaeger.install で Jaeger 設定を指定しま す。この方法にはいくつかの制限があります。たとえば、コントロールプレーンで streaming デプロイメントストラテジーを設定することはできません。
Jaeger インスタンスを設定およびデプロイしてから、Jaeger リソースの name
を、ServiceMeshControlPlane リソースの spec.addons.jaeger.name の値として指定しま
す。name の値に一致する Jaeger リソースが存在する場合、コントロールプレーンは既存のイ
ンストールを使用します。この方法では、Jaeger 設定を完全にカスタマイズできます。
Jaeger リソースの例については、「Jaeger の設定およびデプロイ」を参照してください。
1.13.5.3. Jaeger のデプロイ のデプロイ
Jaeger Operator は現時点で以下のデプロイメントストラテジーをサポートします。
allInOne (デフォルト): このストラテジーは、開発、テストおよびデモの目的で使用されること
が意図されています。主なバックエンドコンポーネントである Agent、Collector、および
Query サービスはすべて、インメモリーストレージを使用するように (デフォルトで) 設定され
た単一の実行可能ファイルにパッケージ化されます。
注記 注記
インメモリーストレージには永続性がありません。つまり、Jaeger インスタン スがシャットダウンするか、再起動するか、または置き換えられると、トレース データが失われます。各 Pod には独自のメモリーがあるため、インメモリース トレージはスケーリングできません。永続ストレージの場合、デフォルトのスト レージとして Elasticsearch を使用する production または streaming ストラテ ジーを使用する必要があります。
production: production ストラテジーは、実稼働環境向けのストラテジーであり、トレース データの長期の保存が重要となり、より拡張性および高可用性のあるアーキテクチャーも必要 になります。そのため、バックエンドコンポーネントはそれぞれ別々にデプロイされます。
エージェントは、インストルメント化されたアプリケーションのサイドカーとして挿入できま
す。Query および Collector サービスは、サポートされているストレージタイプ (現時点では
Elasticsearch) で設定されます。これらの各コンポーネントの複数のインスタンスは、パフォー
マンスと回復性を確保するために、必要に応じてプロビジョニングできます。
streaming: streaming ストラテジーは、Collector とバックエンドストレージ (Elasticsearch) 間 に効果的に配置されるストリーミング機能を提供することで、production ストラテジーを増強 する目的で設計されています。これにより、負荷の高い状況でバックエンドストレージに加わ る圧力を軽減し、他のトレース処理後の機能がストリーミングプラットフォーム (AMQ
Streams/ Kafka) から直接リアルタイムのスパンデータを利用できるようにします。
注記 注記
ストリーミングストラテジーには、AMQ Streams 用の追加の Red Hat サブスクリプ ションが必要です。
1.13.5.3.1. デフォルトデフォルト Jaeger デプロイメントデプロイメント
デフォルトの allInOne Jaeger デプロイメントストラテジーを使用するに
は、spec.addons.jaeger.install.storage.type を Memory に設定します。デフォルトを使用するか、
または install で追加設定オプションを許可できます。Jaeger 設定オプションを指定しない場合、コン
トロールプレーンはデフォルトで allInOne デプロイメントストラテジーを使用します。
コントロールプレーンのデフォルト
コントロールプレーンのデフォルト Jaeger パラメーター パラメーター ( メモリー メモリー )
1.13.5.3.2. Jaeger の実稼働デプロイメントの実稼働デプロイメント
production デプロイメントストラテジーを使用するには、spec.addons.jaeger.install.storage.type を 'Elasticsearch' に設定し、install で追加設定オプションを指定します。または、Jaeger インスタン スを作成および設定し、spec.addons.jaeger.name を Jaeger インスタンスの名前 (例: jaeger-production) に設定できます。
コントロールプレーンのデフォルト
コントロールプレーンのデフォルト Jaeger パラメーター パラメーター (Elasticsearch)
apiVersion: maistra.io/v2kind: ServiceMeshControlPlane metadata:
name: basic spec:
version: v2.0 tracing:
sampling: 10000 type: Jaeger addons:
jaeger:
name: jaeger install:
storage:
type: Memory
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata:
name: production spec:
version: v2.0 tracing:
sampling: 10000 type: Jaeger addons:
jaeger:
name: jaeger-production install:
storage:
type: Elasticsearch ingress:
1.13.5.3.3. Jaeger デプロイメントのストリーミングデプロイメントのストリーミング
streaming デプロイメントストラテジーを使用するには、まず Jaeger インスタンスを作成および設定 してから、 spec.addons.jaeger.name を Jaeger インスタンスの名前 (例: jaeger-streaming) に設定し ます。
既存の
既存の Jaeger インスタンスへの接続例 インスタンスへの接続例
Jaeger 設定のカスタマイズについての詳細は、「Jaeger の設定およびデプロイ」を参照してくださ
い。
OpenShift Container Platform で Elasticsearch を設定する方法についての詳細は、「ログストアの設 定」または「 Jaeger の設定およびデプロイ」を参照してください。
1.13.6. 3scale の設定
以下の例は、Red Hat OpenShift Service Mesh カスタムリソースの 3scale Istio Adapter パラメーター と、適切な値を持つ利用可能なパラメーターの説明を示しています。
3scale パラメーターの例 パラメーターの例
enabled: true runtime:components:
tracing.jaeger.elasticsearch: # only supports resources and image name container:
resources: {}
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata:
name: basic spec:
version: v2.0 tracing:
sampling: 10 type: Jaeger addons:
jaeger:
name: jaeger-streaming
threeScale:
enabled: false
PARAM_THREESCALE_LISTEN_ADDR: 3333 PARAM_THREESCALE_LOG_LEVEL: info PARAM_THREESCALE_LOG_JSON: true PARAM_THREESCALE_LOG_GRPC: false
PARAM_THREESCALE_REPORT_METRICS: true PARAM_THREESCALE_METRICS_PORT: 8080 PARAM_THREESCALE_CACHE_TTL_SECONDS: 300 PARAM_THREESCALE_CACHE_REFRESH_SECONDS: 180 PARAM_THREESCALE_CACHE_ENTRIES_MAX: 1000 PARAM_THREESCALE_CACHE_REFRESH_RETRIES: 1 PARAM_THREESCALE_ALLOW_INSECURE_CONN: false
表
表1.12 3scale パラメーターパラメーター パラメーター
パラメーター 説明説明 値値 デフォルト値デフォルト値
enabled 3scale アダプターを使用
するかどうか
true/false false
PARAM_THREESCA LE_LISTEN_ADDR
gRPC サーバーのリッス
ンアドレスを設定しま す。
有効なポート番号 3333
PARAM_THREESCA LE_LOG_LEVEL
ログ出力の最小レベルを 設定します。
debug、info、warn、
error、またはnone info
PARAM_THREESCA LE_LOG_JSON
ログが JSON として フォーマットされるかど うかを制御します。
true/false true
PARAM_THREESCA LE_LOG_GRPC
ログに gRPC 情報を含む
かどうかを制御します。
true/false true
PARAM_THREESCA LE_REPORT_METRI CS
3scale システムおよび バックエンドメトリクス が収集され、
Prometheus に報告され るかどうかを制御しま す。
true/false true
PARAM_THREESCA
LE_METRICS_PORT 3scale /metricsエンド ポイントをスクラップで きるポートを設定しま す。
有効なポート番号 8080
PARAM_THREESCA LE_CACHE_TTL_SE CONDS
キャッシュから期限切れ のアイテムを消去するま で待機する時間 (秒単 位)。
時間 (秒単位) 300
PARAM_THREESCA LE_CACHE_REFRES H_SECONDS
キャッシュ要素の更新を 試行する場合の期限
時間 (秒単位) 180 PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS: 10
PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS: 60 PARAM_USE_CACHED_BACKEND: false
PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS: 15 PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED: true
PARAM_THREESCA LE_CACHE_ENTRIE S_MAX
キャッシュにいつでも保 存できるアイテムの最大 数。キャッシュを無効に するには0に設定しま す。
有効な数字 1000
PARAM_THREESCA LE_CACHE_REFRES H_RETRIES
キャッシュ更新ループ時 に到達できないホストが 再試行される回数
有効な数字 1
PARAM_THREESCA LE_ALLOW_INSECU RE_CONN
3scale API 呼び出し時 の証明書の検証を省略で きるようにします。この 有効化は推奨されていま せん。
true/false false
PARAM_THREESCA LE_CLIENT_TIMEOU T_SECONDS
3scale システムおよび バックエンドへの要求を 終了するまで待機する秒 数を設定します。
時間 (秒単位) 10
PARAM_THREESCA LE_GRPC_CONN_M AX_SECONDS
接続を閉じるまでの最大 秒数 (+/-10% のジッ ター) を設定します。
時間 (秒単位) 60
PARAM_USE_CACH
E_BACKEND true
の場合、承認要求の インメモリー apisonator キャッシュの作成を試行 します。
true/false false
PARAM_BACKEND_
CACHE_FLUSH_INT ERVAL_SECONDS
バックエンドキャッシュ が有効な場合には、
3scale に対してキャッ シュをフラッシュする間 隔を秒単位で設定しま す。
時間 (秒単位) 15
PARAM_BACKEND_
CACHE_POLICY_FAI L_CLOSED
バックエンドキャッシュ が承認データを取得でき ない場合は常に、要求を 拒否する (クローズする) か、許可する (オープン する) かどうか。
true/false true パラメーター
パラメーター 説明説明 値値 デフォルト値デフォルト値