3.5. 安装 TempoMonolithic 实例


重要

TempoMonolithic 实例只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

您可以使用 Web 控制台或命令行安装 TempoMonolithic 实例。

TempoMonolithic 自定义资源(CR) 以单体模式创建 Tempo 部署。Tempo 部署的所有组件(如紧凑器、经销商、ingester、querier 和查询前端)都包含在一个容器中。

TempoMonolithic 实例支持存储 trace in-memory storage、持久性卷或对象存储。

在单体模式下部署临时是小型部署、演示、测试和作为 Red Hat OpenShift distributed tracing 平台 (Jaeger) 全体部署的迁移路径的首选。

注意

Tempo 的单体部署无法水平扩展。如果您需要水平扩展,请在微服务模式中将 TempoStack CR 用于 Tempo 部署。

3.5.1. 使用 Web 控制台安装 TempoMonolithic 实例

重要

TempoMonolithic 实例只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

您可以从 Web 控制台的 Administrator 视图安装 TempoMonolithic 实例。

先决条件

  • 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
  • 对于 Red Hat OpenShift Dedicated,您必须使用具有 dedicated-admin 角色的帐户登录。
  • 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。

流程

  1. 前往 Home Projects Create Project,为后续步骤中创建的 TempoMonolithic 实例创建您选择的允许项目。不允许以 openshift- 前缀开头的项目名称。
  2. 决定用于存储 trace 的存储类型:内存中存储、持久性卷或对象存储。

    重要

    对象存储不包括在 Distributed Tracing Platform 中,需要由受支持的供应商设置对象存储: Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob StorageGoogle Cloud Storage

    另外,选择对象存储需要在您为 TempoMonolithic 实例创建的项目中为您的对象存储桶创建一个 secret。您可以在 Workloads Secrets Create From YAML 中执行此操作。

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

    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. 创建 TempoMonolithic 实例:

    注意

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

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

      TempoMonolithic CR 示例

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoMonolithic 
      1
      
      metadata:
        name: <metadata_name>
        namespace: <permitted_project_of_tempomonolithic_instance> 
      2
      
      spec: 
      3
      
        storage: 
      4
      
          traces:
            backend: <supported_storage_type> 
      5
      
            size: <value>Gi 
      6
      
            s3: 
      7
      
              secret: <secret_name> 
      8
      
          tls: 
      9
      
            enabled: true
            caName: <ca_certificate_configmap_name> 
      10
      
        jaegerui:
          enabled: true 
      11
      
          route:
            enabled: true 
      12
      
        resources: 
      13
      
          total:
            limits:
              memory: <value>Gi
              cpu: <value>m
        multitenancy:
          enabled: true
          mode: openshift
          authentication: 
      14
      
            - tenantName: dev 
      15
      
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" 
      16
      
            - tenantName: prod
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb"
      Copy to Clipboard Toggle word wrap

      1
      此 CR 使用 OTLP 协议中的 trace ingestion 创建一个 TempoMonolithic 部署。
      2
      TempoMonolithic 部署选择的项目。不允许以 openshift- 前缀开头的项目名称。
      3
      红帽只支持 Red Hat OpenShift distributed Tracing Platform 文档中的提供的自定义资源选项。
      4
      指定用于存储 trace 的存储。
      5
      用于存储 trace 的存储类型:内存存储、持久性卷或对象存储。持久性卷的值是 pv。对象存储接受的值是 s3gcsazure,具体取决于使用的对象存储类型。tmpfs 内存中存储的默认值为 memory,它仅适用于开发、测试、演示和概念验证环境,因为在 pod 关闭时数据不会被保留。
      6
      内存大小:对于内存存储,这意味着 tmpfs 卷的大小,默认值为 2Gi。对于持久性卷,这意味着持久性卷声明的大小,默认值为 10Gi。对于对象存储,这意味着 Tempo Write-Ahead Logging (WAL)的持久性卷声明的大小,默认值为 10Gi
      7
      可选: 对于对象存储,对象存储的类型。接受的值包括 s3gcsazure,具体取决于使用的对象存储类型。
      8
      可选: 对于对象存储,存储 secret 的 metadata 中的 name 值。存储 secret 必须与 TempoMonolithic 实例位于同一个命名空间中,并包含 "Table 1 中指定的字段。"Object storage setup" 部分中所需的 secret 参数"。
      9
      可选。
      10
      可选:包含 CA 证书的 ConfigMap 对象的名称。
      11
      公开 Jaeger UI,它通过路由 http://<gateway_ingress>/api/traces/v1/<tenant_name>/search 对数据进行视觉化。
      12
      启用为 Jaeger UI 创建路由。
      13
      可选。
      14
      列出租户。
      15
      租户名称,用作 X-Scope-OrgId HTTP 标头的值。
      16
      租户的唯一标识符。在 TempoMonolithic 部署的整个生命周期内必须是唯一的。此 ID 将作为前缀添加到对象存储中的对象。您可以重复使用 UUID 或 tempoName 字段的值。
    4. 选择 Create

验证

  1. 使用 Project: 下拉列表选择 TempoMonolithic 实例的项目。
  2. 进入 Operators Installed Operators,以验证 TempoMonolithic 实例的 Status 是否为 Condition: Ready
  3. 进入 Workloads Pods,验证 TempoMonolithic 实例的 pod 是否正在运行。
  4. 访问 Jaeger UI:

    1. 进入 Networking RoutesCtrl+F,以搜索 jaegerui

      注意

      Jaeger UI 使用 tempo-<metadata_name_of_TempoMonolithic_CR>-jaegerui 路由。

    2. Location 列中,打开 URL 以访问 Jaeger UI。
  5. TempoMonolithic 实例的 pod 就绪时,您可以将 trace 发送到 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.5.2. 使用 CLI 安装 TempoMonolithic 实例

重要

TempoMonolithic 实例只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

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

先决条件

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

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

      $ oc login --username=<your_username>
      Copy to Clipboard Toggle word wrap
  • 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。

流程

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

    $ oc apply -f - << EOF
    apiVersion: project.openshift.io/v1
    kind: Project
    metadata:
      name: <permitted_project_of_tempomonolithic_instance> 
    1
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    不允许以 openshift- 前缀开头的项目名称。
  2. 决定用于存储 trace 的存储类型:内存中存储、持久性卷或对象存储。

    重要

    对象存储不包括在 Distributed Tracing Platform 中,需要由受支持的供应商设置对象存储: Red Hat OpenShift Data FoundationMinIOAmazon S3Azure Blob StorageGoogle Cloud Storage

    另外,选择对象存储需要在您为 TempoMonolithic 实例创建的项目中为您的对象存储桶创建一个 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. 在您为它创建的项目中创建 TempoMonolithic 实例。

    提示

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

    1. 自定义 TempoMonolithic 自定义资源 (CR)。

      TempoMonolithic CR 示例

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoMonolithic 
      1
      
      metadata:
        name: <metadata_name>
        namespace: <permitted_project_of_tempomonolithic_instance> 
      2
      
      spec: 
      3
      
        storage: 
      4
      
          traces:
            backend: <supported_storage_type> 
      5
      
            size: <value>Gi 
      6
      
            s3: 
      7
      
              secret: <secret_name> 
      8
      
          tls: 
      9
      
            enabled: true
            caName: <ca_certificate_configmap_name> 
      10
      
        jaegerui:
          enabled: true 
      11
      
          route:
            enabled: true 
      12
      
        resources: 
      13
      
          total:
            limits:
              memory: <value>Gi
              cpu: <value>m
        multitenancy:
          enabled: true
          mode: openshift
          authentication: 
      14
      
            - tenantName: dev 
      15
      
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" 
      16
      
            - tenantName: prod
              tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb"
      Copy to Clipboard Toggle word wrap

      1
      此 CR 使用 OTLP 协议中的 trace ingestion 创建一个 TempoMonolithic 部署。
      2
      TempoMonolithic 部署选择的项目。不允许以 openshift- 前缀开头的项目名称。
      3
      红帽只支持 Red Hat OpenShift distributed Tracing Platform 文档中的提供的自定义资源选项。
      4
      指定用于存储 trace 的存储。
      5
      用于存储 trace 的存储类型:内存存储、持久性卷或对象存储。持久性卷的值是 pv。对象存储接受的值是 s3gcsazure,具体取决于使用的对象存储类型。tmpfs 内存中存储的默认值为 memory,它仅适用于开发、测试、演示和概念验证环境,因为在 pod 关闭时数据不会被保留。
      6
      内存大小:对于内存存储,这意味着 tmpfs 卷的大小,默认值为 2Gi。对于持久性卷,这意味着持久性卷声明的大小,默认值为 10Gi。对于对象存储,这意味着 Tempo Write-Ahead Logging (WAL)的持久性卷声明的大小,默认值为 10Gi
      7
      可选: 对于对象存储,对象存储的类型。接受的值包括 s3gcsazure,具体取决于使用的对象存储类型。
      8
      可选: 对于对象存储,存储 secret 的 metadata 中的 name 值。存储 secret 必须与 TempoMonolithic 实例位于同一个命名空间中,并包含 "Table 1 中指定的字段。"Object storage setup" 部分中所需的 secret 参数"。
      9
      可选。
      10
      可选:包含 CA 证书的 ConfigMap 对象的名称。
      11
      公开 Jaeger UI,它通过路由 http://<gateway_ingress>/api/traces/v1/<tenant_name>/search 对数据进行视觉化。
      12
      启用为 Jaeger UI 创建路由。
      13
      可选。
      14
      列出租户。
      15
      租户名称,用作 X-Scope-OrgId HTTP 标头的值。
      16
      租户的唯一标识符。在 TempoMonolithic 部署的整个生命周期内必须是唯一的。此 ID 将作为前缀添加到对象存储中的对象。您可以重复使用 UUID 或 tempoName 字段的值。
    2. 运行以下命令来应用自定义 CR:

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

验证

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

    $ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,以验证 TempoMonolithic 实例的 pod 是否正在运行:

    $ oc get pods
    Copy to Clipboard Toggle word wrap
  3. 访问 Jaeger UI:

    1. 运行以下命令,查询 tempo-<metadata_name_of_tempomonolithic_cr>-jaegerui 路由的路由详情:

      $ oc get route
      Copy to Clipboard Toggle word wrap
    2. 在网页浏览器中打开 https://<route_from_previous_step>
  4. TempoMonolithic 实例的 pod 就绪时,您可以将 trace 发送到 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 端点。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat