第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
ロールを持つアカウントを使用してログインしている。 サポートされているプロバイダーで必要なオブジェクトストレージの設定を完了している ({odf-full}、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage )。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
手順
-
Operators
OperatorHub に移動し、 Tempo Operator
を検索します。 Red Hat が提供 する Tempo Operator を選択します。
重要次の選択は、この Operator のデフォルトのプリセットです。
-
Update channel
stable -
Installation mode
All namespaces on the cluster -
Installed Namespace
openshift-tempo-operator -
Update approval
Automatic
-
Update channel
- Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
-
Install
Install View Operator を選択します。
検証
- インストール済み Operator ページの Details タブの ClusterServiceVersion details で、インストールの Status が Succeeded であることを確認します。
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>
-
OpenShift CLI (
サポートされているプロバイダーで必要なオブジェクトストレージの設定を完了している ({odf-full}、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage )。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
手順
以下のコマンドを実行して、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
以下のコマンドを実行して、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
以下のコマンドを実行して、サブスクリプションを作成します。
$ 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
ロールを持つアカウントを使用してログインしている。 サポートされているプロバイダーで必要なオブジェクトストレージの設定を完了している ({odf-full}、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage )。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
手順
-
Home
Projects Create Project に移動して、後続のステップで作成する TempoStack インスタンス用に任意のプロジェクトを作成します。 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
TempoStack インスタンスを作成します。
注記同じクラスター上の別々のプロジェクトに、複数の TempoStack インスタンスを作成できます。
-
Operators
Installed Operators に移動します。 -
TempoStack
Create TempoStack YAML view の順に選択します。 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
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
- Create を選択します。
-
Operators
検証
- Project: ドロップダウンリストを使用して、TempoStack インスタンスのプロジェクトを選択します。
-
Operators
Installed Operators に移動して、TempoStack インスタンスの Status が Condition: Ready であることを確認します。 -
Workloads
Pods に移動して、TempoStack インスタンスのすべてのコンポーネント Pod が稼働していることを確認します。 Tempo コンソールにアクセスします。
-
Networking
Routes に移動し、Ctrl+F で tempo
を検索します。 Location 列で URL を開き、Tempo コンソールにアクセスします。
注記Tempo コンソールをインストールした直後は、Tempo コンソールにトレースデータは表示されません。
-
Networking
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>
-
OpenShift CLI (
サポートされているプロバイダーで必要なオブジェクトストレージの設定を完了している ({odf-full}、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage )。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、distributed tracing platform (Tempo) には含まれていません。distributed tracing platform (Tempo) をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
手順
次のコマンドを実行して、後続の手順で作成する TempoStack インスタンス用に選択したプロジェクトを作成します。
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <project_of_tempostack_instance> EOF
次のコマンドを実行して、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
TempoStack インスタンス用に作成したプロジェクトに TempoStack インスタンスを作成します。
注記同じクラスター上の別々のプロジェクトに、複数の TempoStack インスタンスを作成できます。
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
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
次のコマンドを実行して、カスタマイズされた CR を適用します。
$ oc apply -f - << EOF <tempostack_cr> EOF
検証
次のコマンドを実行して、すべての TempoStack
components
のstatus
がRunning
、conditions
がtype: Ready
になっていることを確認します。$ oc get tempostacks.tempo.grafana.com simplest -o yaml
次のコマンドを実行して、すべての TempoStack コンポーネント Pod が稼働していることを確認します。
$ oc get pods
Tempo コンソールにアクセスします。
以下のコマンドを実行してルートの詳細をクエリーします。
$ oc get route
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
ロールを持つアカウントを使用してログインしている。
手順
-
Home
Projects Create Project に移動して、後続のステップで作成する TempoMonolithic インスタンス用に任意のプロジェクトを作成します。 トレースの保存に使用するサポート対象のストレージのタイプ (インメモリーストレージ、永続ボリューム、オブジェクトストレージ) を決定します。
重要オブジェクトストレージは分散トレースプラットフォーム(Tempo)に含まれず、サポートされているプロバイダーによるオブジェクトストアを設定する必要があります ({odf-full}、MinIO、Amazon S3、Azure 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
TempoMonolithic インスタンスを作成します。
注記同じクラスター上の別々のプロジェクトに複数の TempoMonolithic インスタンスを作成できます。
-
Operators
Installed Operators に移動します。 -
TempoMonolithic
Create TempoMonolithic YAML view を選択します。 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
です。オブジェクトストレージの値は、使用するオブジェクトストアのタイプに応じて、s3
、gcs
、またはazure
が受け入れられます。デフォルト値は、tmpfs
インメモリーストレージのmemory
です。これは、Pod がシャットダウンするとデータが保持されないため、開発、テスト、デモ、および概念検証用の環境にのみ適しています。 - 2
- メモリーサイズ: インメモリーストレージの場合、これは
tmpfs
ボリュームのサイズを意味します。デフォルトは2Gi
です。永続ボリュームの場合、これは永続ボリューム要求のサイズを意味します。デフォルトは10Gi
です。オブジェクトストレージの場合、これは Tempo WAL の永続ボリューム要求のサイズを意味し、デフォルトは10Gi
です。 - 3
- オプション: オブジェクトストレージの場合、オブジェクトストレージのタイプ。使用するオブジェクトストアのタイプに応じて、
s3
、gcs
、およびazure
が値として受け入れられます。 - 4
- オプション: オブジェクトストレージの場合、ストレージシークレットの
metadata
内のname
の値。ストレージシークレットは、TempoMonolithic インスタンスと同じ namespace にあり、「表 1. 必要なシークレットパラメーター」(「オブジェクトストレージのセットアップ」セクションを参照) で指定えているフィールドを含んでいる必要があります。 - 5
- オプション:
- 6
- オプション: CA 証明書を含む
ConfigMap
オブジェクトの名前。 - 7
- Jaeger UI を有効にします。
- 8
- Jaeger UI のルートの作成を有効にします。
- 9
- オプション:
- Create を選択します。
-
Operators
検証
- Project: ドロップダウンリストを使用して、TempoMonolithic インスタンスのプロジェクトを選択します。
-
Operator
Installed Operator に移動して、TempoMonolithic インスタンスの Status が Condition: Ready であることを確認します。 -
Workloads
Pod に移動して、TempoMonolithic インスタンスの Pod が実行中であることを確認します。 Jaeger UI にアクセスします。
Networking
Routes に移動し、Ctrl+F を押して jaegerui
を検索します。注記Jaeger UI は、
tempo-<metadata_name_of_TempoMonolithic_CR>-jaegerui
ルートを使用します。- Location 列で URL を開き、Jaeger UI にアクセスします。
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>
-
OpenShift CLI (
手順
次のコマンドを実行して、後続のステップで作成する TempoMonolithic インスタンス用に任意のプロジェクトを作成します。
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <project_of_tempomonolithic_instance> EOF
トレースの保存に使用するサポート対象のストレージのタイプ (インメモリーストレージ、永続ボリューム、オブジェクトストレージ) を決定します。
重要オブジェクトストレージは分散トレースプラットフォーム(Tempo)に含まれず、サポートされているプロバイダーによるオブジェクトストアを設定する必要があります ({odf-full}、MinIO、Amazon S3、Azure 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
TempoMonolithic インスタンス用に作成したプロジェクト内に TempoMonolithic インスタンスを作成します。
ヒント同じクラスター上の別々のプロジェクトに複数の TempoMonolithic インスタンスを作成できます。
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
です。オブジェクトストレージの値は、使用するオブジェクトストアのタイプに応じて、s3
、gcs
、またはazure
が受け入れられます。デフォルト値は、tmpfs
インメモリーストレージのmemory
です。これは、Pod がシャットダウンするとデータが保持されないため、開発、テスト、デモ、および概念検証用の環境にのみ適しています。 - 2
- メモリーサイズ: インメモリーストレージの場合、これは
tmpfs
ボリュームのサイズを意味します。デフォルトは2Gi
です。永続ボリュームの場合、これは永続ボリューム要求のサイズを意味します。デフォルトは10Gi
です。オブジェクトストレージの場合、これは Tempo WAL の永続ボリューム要求のサイズを意味し、デフォルトは10Gi
です。 - 3
- オプション: オブジェクトストレージの場合、オブジェクトストレージのタイプ。使用するオブジェクトストアのタイプに応じて、
s3
、gcs
、およびazure
が値として受け入れられます。 - 4
- オプション: オブジェクトストレージの場合、ストレージシークレットの
metadata
内のname
の値。ストレージシークレットは、TempoMonolithic インスタンスと同じ namespace にあり、「表 1. 必要なシークレットパラメーター」(「オブジェクトストレージのセットアップ」セクションを参照) で指定えているフィールドを含んでいる必要があります。 - 5
- オプション:
- 6
- オプション: CA 証明書を含む
ConfigMap
オブジェクトの名前。 - 7
- Jaeger UI を有効にします。
- 8
- Jaeger UI のルートの作成を有効にします。
- 9
- オプション:
次のコマンドを実行して、カスタマイズされた CR を適用します。
$ oc apply -f - << EOF <tempomonolithic_cr> EOF
検証
次のコマンドを実行して、すべての TempoMonolithic
components
のstatus
がRunning
であり、conditions
がtype: Ready
であることを確認します。$ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml
次のコマンドを実行して、TempoMonolithic インスタンスの Pod が実行中であることを確認します。
$ oc get pods
Jaeger UI にアクセスします。
次のコマンドを実行して、
tempo-<metadata_name_of_tempomonolithic_cr>-jaegerui
ルートのルート詳細をクエリーします。$ oc get route
-
Web ブラウザーで
https://<route_from_previous_step>
を開きます。
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. オブジェクトストレージのセットアップ
サポートされているオブジェクトストレージを設定する際に、次の設定パラメーターを使用できます。
ストレージプロバイダー |
---|
Secret パラメーター |
|
MinIO |
MinIO Operator を参照してください。
|
Amazon S3 |
|
Security Token Service (STS) を使用する Amazon S3 |
|
Microsoft Azure Blob Storage |
|
Google Cloud Storage on Google Cloud Platform (GCP) |
|
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 の最新バージョンがインストールされている。
手順
- AWS S3 バケットを作成します。
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" ] } } } ] }
作成した
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
作成したロールに AWS IAM ポリシーをアタッチします。
$ aws iam attach-role-policy \ --role-name "tempo-s3-access" \ --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"
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