3.4. TempoStack インスタンスのインストール
TempoStack インスタンスは、Web コンソールまたはコマンドラインを使用してインストールできます。
3.4.1. Web コンソールを使用した TempoStack インスタンスのインストール
Web コンソールの Administrator ビューから TempoStack インスタンスをインストールできます。
前提条件
-
cluster-admin
ロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-admin
ロールを持つアカウントを使用してログインしている。 サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、Distributed Tracing Platform には含まれていません。Distributed Tracing Platform をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
- 1 つ以上のテナントを定義し、読み取りおよび書き込み権限を設定した。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
手順
-
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
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
Copy to Clipboard Copied! TempoStack インスタンスを作成します。
注記同じクラスター上の別々のプロジェクトに、複数の TempoStack インスタンスを作成できます。
-
Operators
Installed Operators に移動します。 -
TempoStack
Create TempoStack YAML view の順に選択します。 YAML view で、
TempoStack
カスタムリソース (CR) をカスタマイズします。AWS S3 および MinIO ストレージと 2 つのテナント用の
TempoStack
CR の例apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: simplest namespace: <project_of_tempostack_instance> spec: storage: secret: name: <secret_name> type: <secret_provider> storageSize: <value>Gi resources: total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift authentication: - tenantName: dev tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true queryFrontend: jaegerQuery: enabled: true
apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack
1 metadata: name: simplest namespace: <project_of_tempostack_instance>
2 spec: storage:
3 secret:
4 name: <secret_name>
5 type: <secret_provider>
6 storageSize: <value>Gi
7 resources: total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift
8 authentication:
9 - tenantName: dev
10 tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"
11 - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true
12 queryFrontend: jaegerQuery: enabled: true
13 Copy to Clipboard Copied! - 1
- この CR は、HTTP および OpenTelemetry Protocol (OTLP) 経由で Jaeger Thrift を受信するように設定された TempoStack デプロイメントを作成します。
- 2
- TempoStack デプロイメント用に選択した namespace。
- 3
- トレースを保存するためのストレージを指定します。
- 4
- 前提条件の 1 つとして設定したオブジェクトストレージ用に、ステップ 2 で作成したシークレット。
- 5
- シークレットの
metadata
セクションにあるname
フィールドの値。たとえば、minio
です。 - 6
- この値には、Azure Blob Storage の場合は
azure
、Google Cloud Storage の場合はgcs
、Amazon S3、MinIO、または Red Hat OpenShift Data Foundation の場合はs3
を使用できます。たとえば、s3
です。 - 7
- Tempo Write-Ahead Logging (WAL) の永続ボリューム要求のサイズ。デフォルトは
10Gi
です。たとえば、1Gi
のように指定します。 - 8
- 値は
openshift
である必要があります。 - 9
- テナントのリスト。
- 10
- テナント名。データを取り込む際に
X-Scope-OrgId
ヘッダーで指定する必要があります。 - 11
- テナントの一意の識別子。TempoStack デプロイメントのライフサイクル全体を通じて一意である必要があります。Distributed Tracing Platform は、この ID を使用して、オブジェクトストレージ内のオブジェクトに接頭辞を付けます。UUID または
tempoName
フィールドの値を再利用できます。 - 12
- 認証と認可を実行するゲートウェイを有効にします。Jaeger UI は
http://<gateway_ingress>/api/traces/v1/<tenant_name>/search
で公開されます。 - 13
- ルート経由でデータを視覚化する Jaeger UI を公開します。
- 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.4.2. CLI を使用した TempoStack インスタンスのインストール
コマンドラインから TempoStack インスタンスをインストールできます。
前提条件
cluster-admin
ロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc
) セッション。ヒント-
OpenShift CLI (
oc
) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc login
コマンドを実行します。oc login --username=<your_username>
$ oc login --username=<your_username>
Copy to Clipboard Copied!
-
OpenShift CLI (
サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、Distributed Tracing Platform には含まれていません。Distributed Tracing Platform をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
- 1 つ以上のテナントを定義し、読み取りおよび書き込み権限を設定した。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
手順
次のコマンドを実行して、後続の手順で作成する TempoStack インスタンス用に選択したプロジェクトを作成します。
oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <project_of_tempostack_instance> EOF
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <project_of_tempostack_instance> EOF
Copy to Clipboard Copied! 次のコマンドを実行して、TempoStack インスタンス用に作成したプロジェクトでオブジェクトストレージバケットのシークレットを作成します。
oc apply -f - << EOF <object_storage_secret> EOF
$ oc apply -f - << EOF <object_storage_secret> EOF
Copy to Clipboard Copied! 詳細は、「オブジェクトストレージのセットアップ」を参照してください。
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
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
Copy to Clipboard Copied! TempoStack インスタンス用に作成したプロジェクトに TempoStack インスタンスを作成します。
注記同じクラスター上の別々のプロジェクトに、複数の TempoStack インスタンスを作成できます。
TempoStack
カスタムリソース (CR) をカスタマイズします。AWS S3 および MinIO ストレージと 2 つのテナント用の
TempoStack
CR の例apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: simplest namespace: <project_of_tempostack_instance> spec: storage: secret: name: <secret_name> type: <secret_provider> storageSize: <value>Gi resources: total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift authentication: - tenantName: dev tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true queryFrontend: jaegerQuery: enabled: true
apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack
1 metadata: name: simplest namespace: <project_of_tempostack_instance>
2 spec: storage:
3 secret:
4 name: <secret_name>
5 type: <secret_provider>
6 storageSize: <value>Gi
7 resources: total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift
8 authentication:
9 - tenantName: dev
10 tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"
11 - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true
12 queryFrontend: jaegerQuery: enabled: true
13 Copy to Clipboard Copied! - 1
- この CR は、HTTP および OpenTelemetry Protocol (OTLP) 経由で Jaeger Thrift を受信するように設定された TempoStack デプロイメントを作成します。
- 2
- TempoStack デプロイメント用に選択した namespace。
- 3
- トレースを保存するためのストレージを指定します。
- 4
- 前提条件の 1 つとして設定したオブジェクトストレージ用に、ステップ 2 で作成したシークレット。
- 5
- シークレットの
metadata
セクションにあるname
フィールドの値。たとえば、minio
です。 - 6
- この値には、Azure Blob Storage の場合は
azure
、Google Cloud Storage の場合はgcs
、Amazon S3、MinIO、または Red Hat OpenShift Data Foundation の場合はs3
を使用できます。たとえば、s3
です。 - 7
- Tempo Write-Ahead Logging (WAL) の永続ボリューム要求のサイズ。デフォルトは
10Gi
です。たとえば、1Gi
のように指定します。 - 8
- 値は
openshift
である必要があります。 - 9
- テナントのリスト。
- 10
- テナント名。データを取り込む際に
X-Scope-OrgId
ヘッダーで指定する必要があります。 - 11
- テナントの一意の識別子。TempoStack デプロイメントのライフサイクル全体を通じて一意である必要があります。Distributed Tracing Platform は、この ID を使用して、オブジェクトストレージ内のオブジェクトに接頭辞を付けます。UUID または
tempoName
フィールドの値を再利用できます。 - 12
- 認証と認可を実行するゲートウェイを有効にします。Jaeger UI は
http://<gateway_ingress>/api/traces/v1/<tenant_name>/search
で公開されます。 - 13
- ルート経由でデータを視覚化する Jaeger UI を公開します。
次のコマンドを実行して、カスタマイズされた CR を適用します。
oc apply -f - << EOF <tempostack_cr> EOF
$ oc apply -f - << EOF <tempostack_cr> EOF
Copy to Clipboard Copied!
検証
次のコマンドを実行して、すべての TempoStack
components
のstatus
がRunning
、conditions
がtype: Ready
になっていることを確認します。oc get tempostacks.tempo.grafana.com simplest -o yaml
$ oc get tempostacks.tempo.grafana.com simplest -o yaml
Copy to Clipboard Copied! 次のコマンドを実行して、すべての TempoStack コンポーネント Pod が稼働していることを確認します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Tempo コンソールにアクセスします。
以下のコマンドを実行してルートの詳細をクエリーします。
oc get route
$ oc get route
Copy to Clipboard Copied! Web ブラウザーで
https://<route_from_previous_step>
を開きます。注記Tempo コンソールをインストールした直後は、Tempo コンソールにトレースデータは表示されません。