1.6.5. Jaeger の設定

Service Mesh Operator は ServiceMeshControlPlane リソースを作成する際に、Jaeger リソースも作成します。次に Jaeger Operator は Jaeger インスタンスの作成時にこのオブジェクトを使用します。

ServiceMeshControlPlane で指定されるデフォルトの Jaeger パラメーターは以下のとおりです。

デフォルトのall-in-one Jaeger パラメーター

  apiVersion: maistra.io/v1
  kind: ServiceMeshControlPlane
  spec:
    istio:
      tracing:
        enabled: true
        jaeger:
          template: all-in-one

表1.10 Jaeger パラメーター

パラメーター説明デフォルト値
tracing
   enabled

このパラメーターは、サービスメッシュでトレースを有効/無効にします。Jaeger がデフォルトでインストールされます。

true/false

true

jaeger
   template

このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。

  • all-in-one: 開発、テスト、デモおよび概念実証用。
  • production-elasticsearch: 実稼働環境での使用。

all-in-one

注記

ServiceMeshControlPlane リソースのデフォルトのテンプレートは、インメモリーストレージを使用するall-in-one のデプロイメントストラテジーです。実稼働環境では、サポートされている唯一のストレージオプションが Elasticsearch であるため、実稼働環境内にサービスメッシュをデプロイする際には、production-elasticsearch テンプレートを要求するように ServiceMeshControlPlane を設定する必要があります。

1.6.5.1. Elasticsearch の設定

デフォルトの Jaeger デプロイメントストラテジーでは、all-in-one テンプレートを使用するため、最小のリソースでインストールを完了できます。ただし、all-in-one テンプレートはインメモリーストレージを使用するので、開発、デモまたはテスト目的での使用を推奨しています。実稼働環境には使用しないでください。

実稼働環境でサービスメッシュおよび Jaeger をデプロイする場合、テンプレートを production-elasticsearch テンプレートに変更する必要があります。これは Jaeger のストレージのニーズに対応するために Elasticsearch を使用します。

Elasticsearch はメモリー集約型アプリケーションです。デフォルトの OpenShift Container Platform インストールで指定されたノードの初期セットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。デフォルトの Elasticsearch 設定は、ユースケースと OpenShift Container Platform インストール用に必要とするリソースに一致するように変更する必要があります。resources ブロックを有効な CPU 値およびメモリー値で変更することにより、各コンポーネントの CPU およびメモリーの制限の両方を調整することができます。推奨容量 (以上) のメモリーを使用して実行する場合は、追加のノードをクラスターに追加する必要があります。OpenShift Container Platform インストールに必要となるリソースを超えていないことを確認してください。

Elasticsearch を使用したデフォルトの「実稼働」Jaeger パラメーター

  apiVersion: maistra.io/v1
  kind: ServiceMeshControlPlane
  spec:
    istio:
      tracing:
      enabled: true
      ingress:
        enabled: true
      jaeger:
        template: production-elasticsearch
        elasticsearch:
          nodeCount: 3
          redundancyPolicy:
          resources:
            requests:
              cpu: "1"
              memory: "16Gi"
            limits:
              cpu: "1"
              memory: "16Gi"

表1.11 Elasticsearch パラメーター

パラメーター説明デフォルト値
tracing:
  enabled

このパラメーターは、サービスメッシュでトレースを有効/無効にします。Jaeger がデフォルトでインストールされます。

true/false

true

 
ingress:
  enabled

このパラメーターは、Jaeger の Ingress を有効/無効にします。

true/false

true

 
jaeger
   template

このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。

all-in-one/production-elasticsearch

all-in-one

 
elasticsearch:
  nodeCount

作成する Elasticsearch ノードの数。

整数値。

1

概念実証 = 1、最小デプロイメント = 3

requests:
  cpu

ご使用の環境設定に基づく、要求に対する中央処理単位の数。

コアまたはミリコアで指定されます (例: 200m、0.5、1)。

1Gi

概念実証 = 500m、最小デプロイメント = 1

requests:
  memory

ご使用の環境設定に基づく、要求に使用できるメモリー。

バイト単位で指定されます (例: 200Ki、50Mi、5Gi)。

500m

概念実証 = 1Gi、最小デプロイメント = 16Gi*

limits:
  cpu

ご使用の環境設定に基づく、中央処理単位数の制限。

コアまたはミリコアで指定されます (例: 200m、0.5、1)。

 

概念実証 = 500m、最小デプロイメント = 1

limits:
  memory

ご使用の環境設定に基づく、利用可能なメモリー制限。

バイト単位で指定されます (例: 200Ki、50Mi、5Gi)。

 

概念実証 = 1Gi、最小デプロイメント = 16Gi*

* 各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨されません。実稼働環境で使用する場合、デフォルトで各 Pod に割り当てる設定を 16Gi 未満にすることはできず、Pod ごとに最大 64Gi を割り当てることを推奨します。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsInstalled Operators に移動します。
  3. Red Hat OpenShift Service Mesh Operator をクリックします。
  4. Istio Service Mesh Control Plane タブをクリックします。
  5. コントロールプレーンのファイル名 (basic-install など) をクリックします。
  6. YAML タブをクリックします。
  7. Jaeger パラメーターを編集し、デフォルトのall-in-one テンプレートを production-elasticsearch テンプレートのパラメーターに置き換え、ユースケースに合わせて変更します。インデントが正しいことを確認します。
  8. Save をクリックします。
  9. Reload をクリックします。OpenShift Container Platform は Jaeger を再デプロイし、指定されたパラメーターに基づいて Elasticsearch リソースを作成します。