第3章 distributed tracing platform (Tempo)


3.1. インストール

distributed tracing platform (Tempo) をインストールするには、Tempo Operator が必要です。また、ユースケースに最適なデプロイメントの種類を選択する必要があります。

  • マイクロサービスモードの場合は、専用の OpenShift プロジェクトに TempoStack インスタンスをデプロイします。
  • モノリシックモードの場合は、専用の OpenShift プロジェクトに TempoMonolithic インスタンスをデプロイします。
重要

オブジェクトストレージを使用するには、TempoStack または TempoMonolithic インスタンスをデプロイする前に、サポートされているオブジェクトストアを設定し、オブジェクトストアの認証情報のシークレットを作成する必要があります。

3.1.1. Tempo Operator のインストール

Tempo Operator は、Web コンソールまたはコマンドラインを使用してインストールできます。

3.1.1.1. Web コンソールを使用した Tempo Operator のインストール

Tempo Operator は、Web コンソールの Administrator ビューからインストールできます。

前提条件

  • cluster-admin ロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。
  • Red Hat OpenShift Dedicated の場合、dedicated-admin ロールを持つアカウントを使用してログインしている。
  • サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob StorageGoogle Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    警告

    オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。

手順

  1. Operators OperatorHub に移動し、Tempo Operator を検索します。
  2. Red Hat が提供 する Tempo Operator を選択します。

    重要

    次の選択は、この Operator のデフォルトのプリセットです。

    • Update channel stable
    • Installation mode All namespaces on the cluster
    • Installed Namespace openshift-tempo-operator
    • Update approval Automatic
  3. Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
  4. Install Install View Operator を選択します。

検証

  • インストール済み Operator ページの Details タブの ClusterServiceVersion details で、インストールの StatusSucceeded であることを確認します。

3.1.1.2. CLI を使用した Tempo Operator のインストール

Tempo Operator はコマンドラインからインストールできます。

前提条件

  • cluster-admin ロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。

    ヒント
    • OpenShift CLI (oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。
    • oc login を実行します。

      $ oc login --username=<your_username>
  • サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob StorageGoogle Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    警告

    オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。

手順

  1. 以下のコマンドを実行して、Tempo Operator のプロジェクトを作成します。

    $ oc apply -f - << EOF
    apiVersion: project.openshift.io/v1
    kind: Project
    metadata:
      labels:
        kubernetes.io/metadata.name: openshift-tempo-operator
        openshift.io/cluster-monitoring: "true"
      name: openshift-tempo-operator
    EOF
  2. 以下のコマンドを実行して、Operator グループを作成します。

    $ oc apply -f - << EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-tempo-operator
      namespace: openshift-tempo-operator
    spec:
      upgradeStrategy: Default
    EOF
  3. 以下のコマンドを実行して、サブスクリプションを作成します。

    $ oc apply -f - << EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: tempo-product
      namespace: openshift-tempo-operator
    spec:
      channel: stable
      installPlanApproval: Automatic
      name: tempo-product
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    EOF

検証

  • 次のコマンドを実行して、Operator のステータスを確認します。

    $ oc get csv -n openshift-tempo-operator

3.1.2. TempoStack インスタンスのインストール

TempoStack インスタンスは、Web コンソールまたはコマンドラインを使用してインストールできます。

3.1.2.1. Web コンソールを使用した TempoStack インスタンスのインストール

Web コンソールの Administrator ビューから TempoStack インスタンスをインストールできます。

前提条件

  • cluster-admin ロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。
  • Red Hat OpenShift Dedicated の場合、dedicated-admin ロールを持つアカウントを使用してログインしている。
  • サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob StorageGoogle Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    警告

    オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。

手順

  1. Home Projects Create Project に移動して、後続のステップで作成する TempoStack インスタンス用に任意のプロジェクトを作成します。
  2. Workloads Secrets Create From YAML に移動して、TempoStack インスタンス用に作成したプロジェクトに、オブジェクトストレージバケットのシークレットを作成します。詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    Amazon S3 および MinIO ストレージのシークレット例

    apiVersion: v1
    kind: Secret
    metadata:
      name: minio-test
    stringData:
      endpoint: http://minio.minio.svc:9000
      bucket: tempo
      access_key_id: tempo
      access_key_secret: <secret>
    type: Opaque

  3. TempoStack インスタンスを作成します。

    注記

    同じクラスター上の別々のプロジェクトに、複数の TempoStack インスタンスを作成できます。

    1. Operators Installed Operators に移動します。
    2. TempoStack Create TempoStack YAML view の順に選択します。
    3. YAML view で、TempoStack カスタムリソース (CR) をカスタマイズします。

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack
      metadata:
        name: sample
        namespace: <project_of_tempostack_instance>
      spec:
        storageSize: <value>Gi 1
        storage:
          secret: 2
            name: <secret_name> 3
            type: <secret_provider> 4
          tls: 5
            enabled: true
            caName: <ca_certificate_configmap_name> 6
        template:
          queryFrontend:
            jaegerQuery:
              enabled: true
              ingress:
                route:
                  termination: edge
                type: route
        resources: 7
          total:
            limits:
              memory: <value>Gi
              cpu: <value>m
      1
      Tempo WAL の永続ボリューム要求のサイズ。デフォルトは 10Gi です。
      2
      前提条件の 1 つとして設定したオブジェクトストレージ用に、ステップ 2 で作成したシークレット。
      3
      シークレットの metadata 内にある name の値。
      4
      この値には、Azure Blob Storage の場合は azure、Google Cloud Storage の場合は gcs、Amazon S3、MinIO、または Red Hat OpenShift Data Foundation の場合は s3 を使用できます。
      5
      オプション:
      6
      オプション: CA 証明書を含む ConfigMap オブジェクトの名前。
      7
      オプション:

      AWS S3 および MinIO ストレージの TempoStack CR の例

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack
      metadata:
        name: simplest
        namespace: <project_of_tempostack_instance>
      spec:
        storageSize: 1Gi
        storage: 1
          secret:
            name: minio-test
            type: s3
        resources:
          total:
            limits:
              memory: 2Gi
              cpu: 2000m
        template:
          queryFrontend:
            jaegerQuery: 2
              enabled: true
              ingress:
                route:
                  termination: edge
                type: route

      1
      この例のオブジェクトストレージは、前提条件の 1 つとして設定したものです。オブジェクトストレージのシークレットは、ステップ 2 で作成したものです。
      2
      この例にデプロイされたスタックは、HTTP および OpenTelemetry Protocol (OTLP) 経由で Jaeger Thrift を受信するように設定されています。これにより、Jaeger UI でデータが可視化されます。
    4. Create を選択します。

検証

  1. Project: ドロップダウンリストを使用して、TempoStack インスタンスのプロジェクトを選択します。
  2. Operators Installed Operators に移動して、TempoStack インスタンスの StatusCondition: Ready であることを確認します。
  3. Workloads Pods に移動して、TempoStack インスタンスのすべてのコンポーネント Pod が稼働していることを確認します。
  4. Tempo コンソールにアクセスします。

    1. Networking Routes に移動し、Ctrl+Ftempo を検索します。
    2. Location 列で URL を開き、Tempo コンソールにアクセスします。

      注記

      Tempo コンソールをインストールした直後は、Tempo コンソールにトレースデータは表示されません。

3.1.2.2. CLI を使用した TempoStack インスタンスのインストール

コマンドラインから TempoStack インスタンスをインストールできます。

前提条件

  • cluster-admin ロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。

    ヒント
    • OpenShift CLI (oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。
    • oc login コマンドを実行します。

      $ oc login --username=<your_username>
  • サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob StorageGoogle Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    警告

    オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。

手順

  1. 次のコマンドを実行して、後続の手順で作成する TempoStack インスタンス用に選択したプロジェクトを作成します。

    $ oc apply -f - << EOF
    apiVersion: project.openshift.io/v1
    kind: Project
    metadata:
      name: <project_of_tempostack_instance>
    EOF
  2. 次のコマンドを実行して、TempoStack インスタンス用に作成したプロジェクトでオブジェクトストレージバケットのシークレットを作成します。

    $ oc apply -f - << EOF
    <object_storage_secret>
    EOF

    詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    Amazon S3 および MinIO ストレージのシークレット例

    apiVersion: v1
    kind: Secret
    metadata:
      name: minio-test
    stringData:
      endpoint: http://minio.minio.svc:9000
      bucket: tempo
      access_key_id: tempo
      access_key_secret: <secret>
    type: Opaque

  3. TempoStack インスタンス用に作成したプロジェクトに TempoStack インスタンスを作成します。

    注記

    同じクラスター上の別々のプロジェクトに、複数の TempoStack インスタンスを作成できます。

    1. TempoStack カスタムリソース (CR) をカスタマイズします。

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack
      metadata:
        name: sample
        namespace: <project_of_tempostack_instance>
      spec:
        storageSize: <value>Gi 1
        storage:
          secret: 2
            name: <secret_name> 3
            type: <secret_provider> 4
          tls: 5
            enabled: true
            caName: <ca_certificate_configmap_name> 6
        template:
          queryFrontend:
            jaegerQuery:
              enabled: true
              ingress:
                route:
                  termination: edge
                type: route
        resources: 7
          total:
            limits:
              memory: <value>Gi
              cpu: <value>m
      1
      Tempo WAL の永続ボリューム要求のサイズ。デフォルトは 10Gi です。
      2
      前提条件の 1 つとして設定したオブジェクトストレージ用に、ステップ 2 で作成したシークレット。
      3
      シークレットの metadata 内にある name の値。
      4
      この値には、Azure Blob Storage の場合は azure、Google Cloud Storage の場合は gcs、Amazon S3、MinIO、または Red Hat OpenShift Data Foundation の場合は s3 を使用できます。
      5
      オプション:
      6
      オプション: CA 証明書を含む ConfigMap オブジェクトの名前。
      7
      オプション:

      AWS S3 および MinIO ストレージの TempoStack CR の例

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack
      metadata:
        name: simplest
        namespace: <project_of_tempostack_instance>
      spec:
        storageSize: 1Gi
        storage: 1
          secret:
            name: minio-test
            type: s3
        resources:
          total:
            limits:
              memory: 2Gi
              cpu: 2000m
        template:
          queryFrontend:
            jaegerQuery: 2
              enabled: true
              ingress:
                route:
                  termination: edge
                type: route

      1
      この例のオブジェクトストレージは、前提条件の 1 つとして設定したものです。オブジェクトストレージのシークレットは、ステップ 2 で作成したものです。
      2
      この例にデプロイされたスタックは、HTTP および OpenTelemetry Protocol (OTLP) 経由で Jaeger Thrift を受信するように設定されています。これにより、Jaeger UI でデータが可視化されます。
    2. 次のコマンドを実行して、カスタマイズされた CR を適用します。

      $ oc apply -f - << EOF
      <tempostack_cr>
      EOF

検証

  1. 次のコマンドを実行して、すべての TempoStack componentsstatusRunningconditionstype: Ready になっていることを確認します。

    $ oc get tempostacks.tempo.grafana.com simplest -o yaml
  2. 次のコマンドを実行して、すべての TempoStack コンポーネント Pod が稼働していることを確認します。

    $ oc get pods
  3. Tempo コンソールにアクセスします。

    1. 以下のコマンドを実行してルートの詳細をクエリーします。

      $ oc get route
    2. Web ブラウザーで https://<route_from_previous_step> を開きます。

      注記

      Tempo コンソールをインストールした直後は、Tempo コンソールにトレースデータは表示されません。

3.1.3. TempoMonolithic インスタンスのインストール

重要

TempoMonolithic インスタンスはテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

TempoMonolithic インスタンスは、Web コンソールまたはコマンドラインを使用してインストールできます。

TempoMonolithic カスタムリソース (CR) は、モノリシックモードで Tempo デプロイメントを作成します。コンパクター、ディストリビューター、インジェスター、クエリー、クエリーフロントエンドなど、Tempo デプロイメントのすべてのコンポーネントが、単一のコンテナーに含まれます。

TempoMonolithic インスタンスは、インメモリーストレージ、永続ボリューム、またはオブジェクトストレージへのトレースの保存をサポートしています。

モノリシックモードでの Tempo デプロイメントは、小規模なデプロイメント、デモンストレーション、テスト、および Red Hat OpenShift distributed tracing platform (Jaeger) オールインワンデプロイメントの移行パスとして推奨されます。

注記

Tempo のモノリシックデプロイメントは水平方向にスケーリングできません。水平スケーリングが必要な場合は、マイクロサービスモードでの Tempo デプロイメント用の TempoStack CR を使用してください。

3.1.3.1. Web コンソールを使用した TempoMonolithic インスタンスのインストール

重要

TempoMonolithic インスタンスはテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Web コンソールの Administrator ビューから TempoMonolithic インスタンスをインストールできます。

前提条件

  • cluster-admin ロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。
  • Red Hat OpenShift Dedicated の場合、dedicated-admin ロールを持つアカウントを使用してログインしている。

手順

  1. Home Projects Create Project に移動して、後続のステップで作成する TempoMonolithic インスタンス用に任意のプロジェクトを作成します。
  2. トレースの保存に使用するサポート対象のストレージのタイプ (インメモリーストレージ、永続ボリューム、オブジェクトストレージ) を決定します。

    重要

    オブジェクトストレージは、distributed tracing platform (Tempo) には含まれていません。そのため、サポートされているプロバイダー (Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob Storage、または Google Cloud Storage) によるオブジェクトストアを設定する必要があります。

    また、オブジェクトストレージを選択するには、TempoMonolithic インスタンス用に作成したプロジェクトにオブジェクトストレージバケットのシークレットを作成する必要があります。これは、Workloads Secrets Create From YAML で実行できます。

    詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    Amazon S3 および MinIO ストレージのシークレット例

    apiVersion: v1
    kind: Secret
    metadata:
      name: minio-test
    stringData:
      endpoint: http://minio.minio.svc:9000
      bucket: tempo
      access_key_id: tempo
      access_key_secret: <secret>
    type: Opaque

  3. TempoMonolithic インスタンスを作成します。

    注記

    同じクラスター上の別々のプロジェクトに複数の TempoMonolithic インスタンスを作成できます。

    1. Operators Installed Operators に移動します。
    2. TempoMonolithic Create TempoMonolithic YAML view を選択します。
    3. YAML view で、TempoMonolithic カスタムリソース (CR) をカスタマイズします。

      次の TempoMonolithic CR は、OTLP/gRPC および OTLP/HTTP 経由のトレース取り込みを備えた TempoMonolithic デプロイメントを作成し、サポートされているタイプのストレージにトレースを保存し、ルート経由で Jaeger UI を公開します。

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoMonolithic
      metadata:
        name: <metadata_name>
        namespace: <project_of_tempomonolithic_instance>
      spec:
        storage:
          traces:
            backend: <supported_storage_type> 1
            size: <value>Gi 2
            s3: 3
              secret: <secret_name> 4
          tls: 5
            enabled: true
            caName: <ca_certificate_configmap_name> 6
        jaegerui:
          enabled: true 7
          route:
            enabled: true 8
        resources: 9
          total:
            limits:
              memory: <value>Gi
              cpu: <value>m
      1
      トレースを保存するストレージのタイプ (インメモリーストレージ、永続ボリューム、またはオブジェクトストレージ)。永続ボリュームの値は pv です。オブジェクトストレージの値は、使用するオブジェクトストアのタイプに応じて、s3gcs、または azure が受け入れられます。デフォルト値は、tmpfs インメモリーストレージの memory です。これは、Pod がシャットダウンするとデータが保持されないため、開発、テスト、デモ、および概念検証用の環境にのみ適しています。
      2
      メモリーサイズ: インメモリーストレージの場合、これは tmpfs ボリュームのサイズを意味します。デフォルトは 2Gi です。永続ボリュームの場合、これは永続ボリューム要求のサイズを意味します。デフォルトは 10Gi です。オブジェクトストレージの場合、これは Tempo WAL の永続ボリューム要求のサイズを意味し、デフォルトは 10Gi です。
      3
      オプション: オブジェクトストレージの場合、オブジェクトストレージのタイプ。使用するオブジェクトストアのタイプに応じて、s3gcs、および azure が値として受け入れられます。
      4
      オプション: オブジェクトストレージの場合、ストレージシークレットの metadata 内の name の値。ストレージシークレットは、TempoMonolithic インスタンスと同じ namespace にあり、「表 1. 必要なシークレットパラメーター」(「オブジェクトストレージのセットアップ」セクションを参照) で指定えているフィールドを含んでいる必要があります。
      5
      オプション:
      6
      オプション: CA 証明書を含む ConfigMap オブジェクトの名前。
      7
      Jaeger UI を有効にします。
      8
      Jaeger UI のルートの作成を有効にします。
      9
      オプション:
    4. Create を選択します。

検証

  1. Project: ドロップダウンリストを使用して、TempoMonolithic インスタンスのプロジェクトを選択します。
  2. Operator Installed Operator に移動して、TempoMonolithic インスタンスの StatusCondition: Ready であることを確認します。
  3. Workloads Pod に移動して、TempoMonolithic インスタンスの Pod が実行中であることを確認します。
  4. Jaeger UI にアクセスします。

    1. Networking Routes に移動し、Ctrl+F を押して jaegerui を検索します。

      注記

      Jaeger UI は、tempo-<metadata_name_of_TempoMonolithic_CR>-jaegerui ルートを使用します。

    2. Location 列で URL を開き、Jaeger UI にアクセスします。
  5. TempoMonolithic インスタンスの Pod の準備ができたら、クラスター内の tempo-<metadata_name_of_TempoMonolithic_CR>:4317 (OTLP/gRPC) および tempo-<metadata_name_of_TempoMonolithic_CR>:4318 (OTLP/HTTP) エンドポイントにトレースを送信できます。

    Tempo API は、クラスター内の tempo-<metadata_name_of_TempoMonolithic_CR>:3200 エンドポイントで利用できます。

3.1.3.2. CLI を使用した TempoMonolithic インスタンスのインストール

重要

TempoMonolithic インスタンスはテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

コマンドラインから TempoMonolithic インスタンスをインストールできます。

前提条件

  • cluster-admin ロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。

    ヒント
    • OpenShift CLI (oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。
    • oc login コマンドを実行します。

      $ oc login --username=<your_username>

手順

  1. 次のコマンドを実行して、後続のステップで作成する TempoMonolithic インスタンス用に任意のプロジェクトを作成します。

    $ oc apply -f - << EOF
    apiVersion: project.openshift.io/v1
    kind: Project
    metadata:
      name: <project_of_tempomonolithic_instance>
    EOF
  2. トレースの保存に使用するサポート対象のストレージのタイプ (インメモリーストレージ、永続ボリューム、オブジェクトストレージ) を決定します。

    重要

    オブジェクトストレージは、distributed tracing platform (Tempo) には含まれていません。そのため、サポートされているプロバイダー (Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob Storage、または Google Cloud Storage) によるオブジェクトストアを設定する必要があります。

    また、オブジェクトストレージを選択するには、TempoMonolithic インスタンス用に作成したプロジェクトにオブジェクトストレージバケットのシークレットを作成する必要があります。これを行うには、次のコマンドを実行します。

    $ oc apply -f - << EOF
    <object_storage_secret>
    EOF

    詳細は、「オブジェクトストレージのセットアップ」を参照してください。

    Amazon S3 および MinIO ストレージのシークレット例

    apiVersion: v1
    kind: Secret
    metadata:
      name: minio-test
    stringData:
      endpoint: http://minio.minio.svc:9000
      bucket: tempo
      access_key_id: tempo
      access_key_secret: <secret>
    type: Opaque

  3. TempoMonolithic インスタンス用に作成したプロジェクト内に TempoMonolithic インスタンスを作成します。

    ヒント

    同じクラスター上の別々のプロジェクトに複数の TempoMonolithic インスタンスを作成できます。

    1. TempoMonolithic カスタムリソース (CR) をカスタマイズします。

      次の TempoMonolithic CR は、OTLP/gRPC および OTLP/HTTP 経由のトレース取り込みを備えた TempoMonolithic デプロイメントを作成し、サポートされているタイプのストレージにトレースを保存し、ルート経由で Jaeger UI を公開します。

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoMonolithic
      metadata:
        name: <metadata_name>
        namespace: <project_of_tempomonolithic_instance>
      spec:
        storage:
          traces:
            backend: <supported_storage_type> 1
            size: <value>Gi 2
            s3: 3
              secret: <secret_name> 4
          tls: 5
            enabled: true
            caName: <ca_certificate_configmap_name> 6
        jaegerui:
          enabled: true 7
          route:
            enabled: true 8
        resources: 9
          total:
            limits:
              memory: <value>Gi
              cpu: <value>m
      1
      トレースを保存するストレージのタイプ (インメモリーストレージ、永続ボリューム、またはオブジェクトストレージ)。永続ボリュームの値は pv です。オブジェクトストレージの値は、使用するオブジェクトストアのタイプに応じて、s3gcs、または azure が受け入れられます。デフォルト値は、tmpfs インメモリーストレージの memory です。これは、Pod がシャットダウンするとデータが保持されないため、開発、テスト、デモ、および概念検証用の環境にのみ適しています。
      2
      メモリーサイズ: インメモリーストレージの場合、これは tmpfs ボリュームのサイズを意味します。デフォルトは 2Gi です。永続ボリュームの場合、これは永続ボリューム要求のサイズを意味します。デフォルトは 10Gi です。オブジェクトストレージの場合、これは Tempo WAL の永続ボリューム要求のサイズを意味し、デフォルトは 10Gi です。
      3
      オプション: オブジェクトストレージの場合、オブジェクトストレージのタイプ。使用するオブジェクトストアのタイプに応じて、s3gcs、および azure が値として受け入れられます。
      4
      オプション: オブジェクトストレージの場合、ストレージシークレットの metadata 内の name の値。ストレージシークレットは、TempoMonolithic インスタンスと同じ namespace にあり、「表 1. 必要なシークレットパラメーター」(「オブジェクトストレージのセットアップ」セクションを参照) で指定えているフィールドを含んでいる必要があります。
      5
      オプション:
      6
      オプション: CA 証明書を含む ConfigMap オブジェクトの名前。
      7
      Jaeger UI を有効にします。
      8
      Jaeger UI のルートの作成を有効にします。
      9
      オプション:
    2. 次のコマンドを実行して、カスタマイズされた CR を適用します。

      $ oc apply -f - << EOF
      <tempomonolithic_cr>
      EOF

検証

  1. 次のコマンドを実行して、すべての TempoMonolithic componentsstatusRunning であり、conditionstype: Ready であることを確認します。

    $ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml
  2. 次のコマンドを実行して、TempoMonolithic インスタンスの Pod が実行中であることを確認します。

    $ oc get pods
  3. Jaeger UI にアクセスします。

    1. 次のコマンドを実行して、tempo-<metadata_name_of_tempomonolithic_cr>-jaegerui ルートのルート詳細をクエリーします。

      $ oc get route
    2. Web ブラウザーで https://<route_from_previous_step> を開きます。
  4. TempoMonolithic インスタンスの Pod の準備ができたら、クラスター内の tempo-<metadata_name_of_tempomonolithic_cr>:4317 (OTLP/gRPC) および tempo-<metadata_name_of_tempomonolithic_cr>:4318 (OTLP/HTTP) エンドポイントにトレースを送信できます。

    Tempo API は、クラスター内の tempo-<metadata_name_of_tempomonolithic_cr>:3200 エンドポイントで利用できます。

3.1.4. オブジェクトストレージのセットアップ

サポートされているオブジェクトストレージを設定する際に、次の設定パラメーターを使用できます。

表3.1 必須のシークレットパラメーター
ストレージプロバイダー

Secret パラメーター

Red Hat OpenShift Data Foundation

name: tempostack-dev-odf # example

bucket: <bucket_name> # requires an ObjectBucketClaim

endpoint: https://s3.openshift-storage.svc

access_key_id: <data_foundation_access_key_id>

access_key_secret: <data_foundation_access_key_secret>

MinIO

MinIO Operator を参照してください。

name: tempostack-dev-minio # example

bucket: <minio_bucket_name> # MinIO documentation

endpoint: <minio_bucket_endpoint>

access_key_id: <minio_access_key_id>

access_key_secret: <minio_access_key_secret>

Amazon S3

name: tempostack-dev-s3 # example

bucket: <s3_bucket_name> # Amazon S3 documentation

endpoint: <s3_bucket_endpoint>

access_key_id: <s3_access_key_id>

access_key_secret: <s3_access_key_secret>

Security Token Service (STS) を使用する Amazon S3

name: tempostack-dev-s3 # example

bucket: <s3_bucket_name> # Amazon S3 documentation

region: <s3_region>

role_arn: <s3_role_arn>

Microsoft Azure Blob Storage

name: tempostack-dev-azure # example

container: <azure_blob_storage_container_name> # Microsoft Azure documentation

account_name: <azure_blob_storage_account_name>

account_key: <azure_blob_storage_account_key>

Google Cloud Storage on Google Cloud Platform (GCP)

name: tempostack-dev-gcs # example

bucketname: <google_cloud_storage_bucket_name> # requires a bucket created in a GCP project

key.json: <path/to/key.json> # requires a service account in the bucket’s GCP project for GCP authentication

3.1.4.1. Security Token Service を使用する Amazon S3 ストレージの設定

Security Token Service (STS) を使用する Amazon S3 ストレージは、AWS コマンドラインインターフェイス (AWS CLI) を使用して設定できます。

重要

Security Token Service を使用する Amazon S3 ストレージは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  • AWS CLI の最新バージョンがインストールされている。

手順

  1. AWS S3 バケットを作成します。
  2. AWS IAM ロール (次のステップで作成) と TempoStack インスタンスのサービスアカウントとの信頼関係を設定する AWS IAM ポリシー用に、次の trust.json ファイルを作成します。

    {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "arn:aws:iam::${<aws_account_id>}:oidc-provider/${<oidc_provider>}" 1
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringEquals": {
                "${OIDC_PROVIDER}:sub": [
                  "system:serviceaccount:${<openshift_project_for_tempostack>}:tempo-${<tempostack_cr_name>}" 2
                  "system:serviceaccount:${<openshift_project_for_tempostack>}:tempo-${<tempostack_cr_name>}-query-frontend"
               ]
             }
           }
         }
        ]
    }
    1
    OpenShift Container Platform で設定した OIDC プロバイダー。設定した OIDC プロバイダーの値は、コマンド $ oc get authentication cluster -o json | jq -r '.spec.serviceAccountIssuer' | sed 'shttp[s]*://~g' を実行して取得することもできます。
    2
    TempoStack インスタンスを作成する namespace。
  3. 作成した trust.json ポリシーファイルをアタッチして AWS IAM ロールを作成します。

    $ aws iam create-role \
          --role-name "tempo-s3-access" \
          --assume-role-policy-document "file:///tmp/trust.json" \
          --query Role.Arn \
          --output text
  4. 作成したロールに AWS IAM ポリシーをアタッチします。

    $ aws iam attach-role-policy \
          --role-name "tempo-s3-access" \
          --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"
  5. OpenShift Container Platform で、次のように、キーを使用してオブジェクトストレージシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: minio-test
    stringData:
      bucket: <s3_bucket_name>
      region: <s3_region>
      role_arn: <s3_role_arn>
    type: Opaque

3.1.5. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.