3.4. 安装 TempoStack 实例
您可以使用 Web 控制台或命令行安装 TempoStack 实例。
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 (Tempo) 前,您必须通过受支持的供应商选择和设置对象存储。
- 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。
流程
-
前往 Home
Projects Create Project,为后续步骤中创建的 TempoStack实例创建一个您选择的允许项目。不允许以openshift-前缀开头的项目名称。 进入 Workloads
Secrets Create From YAML,在您为 TempoStack实例创建的项目中为您的对象存储存储桶创建一个 secret。如需更多信息,请参阅"对象存储设置"。Amazon S3 和 MinIO 存储的 secret 示例
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 视图中,自定义
TempoStack自定义资源(CR):AWS S3 和 MinIO 存储和两个租户的
TempoStackCR 示例apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack1 metadata: name: simplest namespace: <permitted_project_of_tempostack_instance>2 spec:3 storage:4 secret:5 name: <secret_name>6 type: <secret_provider>7 storageSize: <value>Gi8 resources:9 total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift10 authentication:11 - tenantName: dev12 tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"13 - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true14 queryFrontend: jaegerQuery: enabled: true15 - 1
- 此 CR 创建一个
TempoStack部署,它被配置为通过 HTTP 和 OpenTelemetry 协议(OTLP)接收 Jaeger Thrift。 - 2
- 为
TempoStack部署选择的项目。不允许以openshift-前缀开头的项目名称。 - 3
- 红帽只支持 Red Hat OpenShift distributed Tracing Platform 文档中的提供的自定义资源选项。
- 4
- 指定用于存储 trace 的存储。
- 5
- 您在第 2 步中创建的 secret,用于作为其中一个先决条件设置的对象存储。
- 6
- secret 的
metadata部分中的name字段的值。例如:minio。 - 7
- 可接受的值是
azure(Azure Blob Storage),gcs(Google Cloud Storage)和s3(Amazon S3, MinIO, 或 Red Hat OpenShift Data Foundation)。例如:s3。 - 8
- Tempo Write-Ahead Logging (WAL) 的持久性卷声明的大小。默认值为
10Gi。例如:1Gi。 - 9
- 可选。
- 10
- 该值必须是
openshift。 - 11
- 租户列表。
- 12
- 租户名称,用作
X-Scope-OrgIdHTTP 标头的值。 - 13
- 租户的唯一标识符。在
TempoStack部署的生命周期内必须是唯一的。Distributed Tracing Platform 使用此 ID 为对象存储中的对象添加前缀。您可以重复使用 UUID 或tempoName字段的值。 - 14
- 启用执行身份验证和授权的网关。
- 15
- 公开 Jaeger UI,它通过路由
http://<gateway_ingress>/api/traces/v1/<tenant_name>/search对数据进行视觉化。
- 选择 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 控制台安装后显示 trace 数据。
-
进入 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>
-
确保您的 OpenShift CLI (
您已完成由支持的供应商设置所需的对象存储:Red Hat OpenShift Data Foundation, MinIO, Amazon S3, Azure Blob Storage, Google Cloud Storage。如需更多信息,请参阅"对象存储设置"。
警告对象存储是必需的,它没有包含在 Distributed Tracing Platform 中。在安装 Distributed Tracing Platform (Tempo) 前,您必须通过受支持的供应商选择和设置对象存储。
- 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。
流程
运行以下命令,为您要在后续步骤中创建的
TempoStack实例创建您选择的允许项目:$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <permitted_project_of_tempostack_instance>1 EOF- 1
- 不允许以
openshift-前缀开头的项目名称。
在您为
TempoStack实例创建的项目中,运行以下命令来为您的对象存储桶创建一个 secret:$ oc apply -f - << EOF <object_storage_secret> EOF如需更多信息,请参阅"对象存储设置"。
Amazon S3 和 MinIO 存储的 secret 示例
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自定义资源(CR):AWS S3 和 MinIO 存储和两个租户的
TempoStackCR 示例apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack1 metadata: name: simplest namespace: <permitted_project_of_tempostack_instance>2 spec:3 storage:4 secret:5 name: <secret_name>6 type: <secret_provider>7 storageSize: <value>Gi8 resources:9 total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift10 authentication:11 - tenantName: dev12 tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"13 - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true14 queryFrontend: jaegerQuery: enabled: true15 - 1
- 此 CR 创建一个
TempoStack部署,它被配置为通过 HTTP 和 OpenTelemetry 协议(OTLP)接收 Jaeger Thrift。 - 2
- 为
TempoStack部署选择的项目。不允许以openshift-前缀开头的项目名称。 - 3
- 红帽只支持 Red Hat OpenShift distributed Tracing Platform 文档中的提供的自定义资源选项。
- 4
- 指定用于存储 trace 的存储。
- 5
- 您在第 2 步中创建的 secret,用于作为其中一个先决条件设置的对象存储。
- 6
- secret 的
metadata部分中的name字段的值。例如:minio。 - 7
- 可接受的值是
azure(Azure Blob Storage),gcs(Google Cloud Storage)和s3(Amazon S3, MinIO, 或 Red Hat OpenShift Data Foundation)。例如:s3。 - 8
- Tempo Write-Ahead Logging (WAL) 的持久性卷声明的大小。默认值为
10Gi。例如:1Gi。 - 9
- 可选。
- 10
- 该值必须是
openshift。 - 11
- 租户列表。
- 12
- 租户名称,用作
X-Scope-OrgIdHTTP 标头的值。 - 13
- 租户的唯一标识符。在
TempoStack部署的生命周期内必须是唯一的。Distributed Tracing Platform 使用此 ID 为对象存储中的对象添加前缀。您可以重复使用 UUID 或tempoName字段的值。 - 14
- 启用执行身份验证和授权的网关。
- 15
- 公开 Jaeger UI,它通过路由
http://<gateway_ingress>/api/traces/v1/<tenant_name>/search对数据进行视觉化。
运行以下命令来应用自定义 CR:
$ oc apply -f - << EOF <tempostack_cr> EOF
验证
运行以下命令,验证所有
TempoStackcomponents的状态是否为Running,并且conditions为type: Ready:$ oc get tempostacks.tempo.grafana.com simplest -o yaml运行以下命令,验证所有
TempoStack组件 pod 是否都在运行:$ oc get pods访问 Tempo 控制台:
运行以下命令来查询路由详情:
$ oc get route在网页浏览器中打开
https://<route_from_previous_step>。注意Tempo 控制台最初不会在 Tempo 控制台安装后显示 trace 数据。