3.5. 安装 TempoMonolithic 实例


重要

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

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

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

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

TempoMonolithic 实例支持将 trace 存储在内存中存储、持久性卷或对象存储。

在单体模式下部署临时是小型部署、演示、测试和作为 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