搜索

3.2. 配置和部署分布式追踪

download PDF

Red Hat OpenShift distributed tracing Platform Operator 使用一个自定义资源定义(CRD)文件来定义创建和部署分布式追踪平台资源时要使用的架构和配置设置。您可以安装默认配置或修改该文件以更好地满足您的业务要求。

Red Hat OpenShift distributed tracing Platform 具有预定义的部署策略。您可以在自定义资源文件中指定一个部署策略。当您创建分布式追踪平台实例时,Operator 会使用此配置文件创建部署所需的对象。

Jaeger 自定义资源文件显示部署策略

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: MyConfigFile
spec:
  strategy: production 1

1
Red Hat OpenShift distributed tracing Platform Operator 目前支持以下部署策略:
  • allInOne (默认)- 这个策略主要用于开发、测试和演示目的,它不用于生产环境。主要的后端组件 Agent、Collector 和 Query 服务都打包成单一可执行文件,默认为使用内存存储。

    注意

    内存存储不是持久性的,这意味着如果分布式追踪平台实例关闭、重启或被替换,您的 trace 数据将会丢失。此外,内存存储无法扩展,因为每个 Pod 都有自己的内存。对于持久性存储,您必须使用 productionstreaming 策略,这些策略使用 Elasticsearch 作为默认存储。

  • production - production 策略主要用于生产环境,在生产环境中,对 trace 数据进行长期存储非常重要,同时需要更容易扩展和高度可用的构架。因此,每个后端组件都将单独部署。Agent 可以作为检测应用程序上的 sidecar 注入。Query 和 Collector 服务被配置为使用一个受支持的存储类型 - 当前为 Elasticsearch。可以根据性能和恢复能力的需要提供每个组件的多个实例。
  • streaming - streaming 策略旨在提供在 Collector 和 Elasticsearch 后端存储之间有效发挥作用的流传输功能,以此增强 production 策略。这样做的好处是在高负载情况下降低后端存储压力,并允许其他 trace 后处理功能直接从流传输平台 (AMQ Streams/ Kafka) 中利用实时 span 数据。

    注意

    streaming 策略需要额外的 AMQ Streams 订阅。

注意

目前 IBM Z 不支持 streaming 部署策略。

注意

有两种方法可用来安装和使用 Red Hat OpenShift distributed tracing,作为服务网格的一部分或作为独立组件。如果您已将分布式追踪作为 Red Hat OpenShift Service Mesh 的一部分安装,您可以作为 ServiceMeshControlPlane 的一部分执行基本配置,但为了完全控制,应配置一个 Jaeger CR,然后在 ServiceMeshControlPlane 中引用您的分布式追踪配置文件。

3.2.1. 从 Web 控制台部署分布式追踪默认策略

自定义资源定义(CRD)定义部署 Red Hat OpenShift distributed tracing 实例时使用的配置。默认 CR 名为 jaeger-all-in-one-inmemory,它配置为使用最少资源,以确保您可以在默认的 OpenShift Container Platform 安装中成功安装它。您可以使用此默认配置创建使用 AllInOne 部署策略的 Red Hat OpenShift distributed tracing 平台实例,或者您可以定义自己的自定义资源文件。

注意

内存存储不是持久性的。如果 Jaeger pod 关闭、重启或被替换,您的 trace 数据将会丢失。对于持久性存储,您必须使用 productionstreaming 策略,这些策略使用 Elasticsearch 作为默认存储。

先决条件

  • 已安装 Red Hat OpenShift distributed tracing Platform Operator。
  • 您已查看了如何自定义部署的说明。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform web 控制台。
  2. 创建一个新项目,如 tracing-system

    注意

    如果作为 Service Mesh 的一部分安装,则需要在与 ServiceMeshControlPlane 资源相同的命名空间中安装分布式追踪资源,如 istio-system

    1. 浏览至 Home Project
    2. 点击 Create Project
    3. Name 字段中输入 tracing-system
    4. 点击 Create
  3. 导航到 Operators Installed Operators
  4. 如有必要,从 Project 菜单中选择 tracing-system。您可能需要等待一些时间,让 Operator 复制到新项目中。
  5. 点 Red Hat OpenShift distributed tracing Platform Operator。在 Details 标签页中的 Provided APIs 下,Operator 提供了一个单个链接。
  6. Jaeger 下,点 Create Instance
  7. Create Jaeger 页面上,要使用默认值进行安装,请点击 Create 来创建分布式追踪平台实例。
  8. Jaegers 页面上,点击分布式追踪平台实例的名称,如 jaeger-all-in-one-inmemory
  9. Jaeger Details 页面上,点击 Resources 选项卡。等待 pod 的状态变为"Running"再继续操作。

3.2.1.1. 通过 CLI 部署分布式追踪默认策略

按照以下步骤从命令行创建分布式追踪平台实例。

先决条件

  • 已安装并验证 Red Hat OpenShift distributed tracing 平台 Operator。
  • 您已查看了如何自定义部署的说明。
  • 您可以访问与 OpenShift Container Platform 版本匹配的 OpenShift CLI(oc)。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform CLI。

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:8443
  2. 创建一个名为 tracing-system 的新项目。

    $ oc new-project tracing-system
  3. 创建一个名为 jaeger.yaml 的自定义资源文件,其中包含以下文本:

    示例 Jaeger-all-in-one.yaml

    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: jaeger-all-in-one-inmemory

  4. 运行以下命令来部署分布式追踪平台:

    $ oc create -n tracing-system -f jaeger.yaml
  5. 在安装过程中运行以下命令来监控 pod 的进度:

    $ oc get pods -n tracing-system -w

    安装过程完成后,您应该看到类似以下示例的输出:

    NAME                                         READY   STATUS    RESTARTS   AGE
    jaeger-all-in-one-inmemory-cdff7897b-qhfdx   2/2     Running   0          24s
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.