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) 前,您必须通过受支持的供应商选择和设置对象存储。

  • 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。

流程

  1. 前往 Home Projects Create Project,为后续步骤中创建的 TempoStack 实例创建一个您选择的允许项目。不允许以 openshift- 前缀开头的项目名称。
  2. 进入 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
    Copy to Clipboard Toggle word wrap

  3. 创建 TempoStack 实例。

    注意

    您可以在同一集群上的不同项目中创建多个 TempoStack 实例。

    1. 进入 Operators Installed Operators
    2. 选择 TempoStack Create TempoStack YAML view
    3. YAML 视图中,自定义 TempoStack 自定义资源(CR):

      AWS S3 和 MinIO 存储和两个租户的 TempoStack CR 示例

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack 
      1
      
      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>Gi 
      8
      
        resources: 
      9
      
          total:
            limits:
              memory: 2Gi
              cpu: 2000m
        tenants:
          mode: openshift 
      10
      
          authentication: 
      11
      
            - tenantName: dev 
      12
      
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" 
      13
      
            - tenantName: prod
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb"
        template:
          gateway:
            enabled: true 
      14
      
          queryFrontend:
            jaegerQuery:
              enabled: true 
      15
      Copy to Clipboard Toggle word wrap

      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-OrgId HTTP 标头的值。
      13
      租户的唯一标识符。在 TempoStack 部署的生命周期内必须是唯一的。Distributed Tracing Platform 使用此 ID 为对象存储中的对象添加前缀。您可以重复使用 UUID 或 tempoName 字段的值。
      14
      启用执行身份验证和授权的网关。
      15
      公开 Jaeger UI,它通过路由 http://<gateway_ingress>/api/traces/v1/<tenant_name>/search 对数据进行视觉化。
    4. 选择 Create

验证

  1. 使用 Project: 下拉列表选择 TempoStack 实例的项目。
  2. 进入 Operators Installed Operators,以验证 TempoStack 实例的 Status 是否为 Condition: Ready
  3. 进入 Workloads Pods,以验证 TempoStack 实例的所有组件 pod 都在运行。
  4. 访问 Tempo 控制台:

    1. 进入 Networking RoutesCtrl+F,以搜索 tempo
    2. Location 列中,打开 URL 以访问 Tempo 控制台。

      注意

      Tempo 控制台最初不会在 Tempo 控制台安装后显示 trace 数据。

3.4.2. 使用 CLI 安装 TempoStack 实例

您可以从命令行安装 TempoStack 实例。

先决条件

  • 集群管理员具有 cluster-admin 角色的活跃 OpenShift CLI (oc) 会话。

    提示
    • 确保您的 OpenShift CLI (oc) 版本为最新版本,并与您的 OpenShift Container Platform 版本匹配。
    • 运行 oc login 命令:

      $ oc login --username=<your_username>
      Copy to Clipboard Toggle word wrap
  • 您已完成由支持的供应商设置所需的对象存储:Red Hat OpenShift Data Foundation, MinIO, Amazon S3, Azure Blob Storage, Google Cloud Storage。如需更多信息,请参阅"对象存储设置"。

    警告

    对象存储是必需的,它没有包含在 Distributed Tracing Platform 中。在安装 Distributed Tracing Platform (Tempo) 前,您必须通过受支持的供应商选择和设置对象存储。

  • 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。

流程

  1. 运行以下命令,为您要在后续步骤中创建的 TempoStack 实例创建您选择的允许项目:

    $ oc apply -f - << EOF
    apiVersion: project.openshift.io/v1
    kind: Project
    metadata:
      name: <permitted_project_of_tempostack_instance> 
    1
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    不允许以 openshift- 前缀开头的项目名称。
  2. 在您为 TempoStack 实例创建的项目中,运行以下命令来为您的对象存储桶创建一个 secret:

    $ oc apply -f - << EOF
    <object_storage_secret>
    EOF
    Copy to Clipboard Toggle word wrap

    如需更多信息,请参阅"对象存储设置"。

    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
    Copy to Clipboard Toggle word wrap

  3. 在您为它创建的项目中创建 TempoStack 实例:

    注意

    您可以在同一集群上的不同项目中创建多个 TempoStack 实例。

    1. 自定义 TempoStack 自定义资源(CR):

      AWS S3 和 MinIO 存储和两个租户的 TempoStack CR 示例

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack 
      1
      
      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>Gi 
      8
      
        resources: 
      9
      
          total:
            limits:
              memory: 2Gi
              cpu: 2000m
        tenants:
          mode: openshift 
      10
      
          authentication: 
      11
      
            - tenantName: dev 
      12
      
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" 
      13
      
            - tenantName: prod
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb"
        template:
          gateway:
            enabled: true 
      14
      
          queryFrontend:
            jaegerQuery:
              enabled: true 
      15
      Copy to Clipboard Toggle word wrap

      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-OrgId HTTP 标头的值。
      13
      租户的唯一标识符。在 TempoStack 部署的生命周期内必须是唯一的。Distributed Tracing Platform 使用此 ID 为对象存储中的对象添加前缀。您可以重复使用 UUID 或 tempoName 字段的值。
      14
      启用执行身份验证和授权的网关。
      15
      公开 Jaeger UI,它通过路由 http://<gateway_ingress>/api/traces/v1/<tenant_name>/search 对数据进行视觉化。
    2. 运行以下命令来应用自定义 CR:

      $ oc apply -f - << EOF
      <tempostack_cr>
      EOF
      Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令,验证所有 TempoStack components 的状态是否为 Running,并且 conditionstype: Ready

    $ oc get tempostacks.tempo.grafana.com simplest -o yaml
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,验证所有 TempoStack 组件 pod 是否都在运行:

    $ oc get pods
    Copy to Clipboard Toggle word wrap
  3. 访问 Tempo 控制台:

    1. 运行以下命令来查询路由详情:

      $ oc get route
      Copy to Clipboard Toggle word wrap
    2. 在网页浏览器中打开 https://<route_from_previous_step>

      注意

      Tempo 控制台最初不会在 Tempo 控制台安装后显示 trace 数据。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat