3.2.3. 从 Web 控制台部署分布式追踪流策略

streaming 部署策略主要用于生产环境,在生产环境中需要更具扩展性和高度可用的架构,其中,对 trace 数据进行长期存储非常重要。

streaming 策略提供了位于 Collector 和 Elasticsearch 存储之间的流功能。这可在高负载情况下减少存储压力,并允许其他 trace 后处理功能直接从 Kafka 流平台利用实时 span 数据。

注意

streaming 策略需要额外的 AMQ Streams 订阅。如果您没有 AMQ Streams 订阅,请联络您的销售代表以了解更多信息。

注意

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

先决条件

  • 已安装 AMQ Streams Operator。如果使用 1.4.0 或更高版本,您可以使用自助置备。否则,您必须创建 Kafka 实例。
  • 已安装 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. 浏览至 HomeProject
    2. 点击 Create Project
    3. Name 字段中输入 tracing-system
    4. Create
  3. 导航到 OperatorsInstalled Operators
  4. 如有必要,从 Project 菜单中选择 tracing-system。您可能需要等待一些时间,让 Operator 复制到新项目中。
  5. 点 Red Hat OpenShift distributed tracing Platform Operator。在 Overview 选项卡上的 Provided APIs 下,Operator 提供了单个链接。
  6. Jaeger 下,点 Create Instance
  7. Create Jaeger 页面上,将默认的 all-in-one YAML 文本替换为您的流传输 YAML 配置,例如:

示例 Jaeger-streaming.yaml 文件

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger-streaming
spec:
  strategy: streaming
  collector:
    options:
      kafka:
        producer:
          topic: jaeger-spans
          #Note: If brokers are not defined,AMQStreams 1.4.0+ will self-provision Kafka.
          brokers: my-cluster-kafka-brokers.kafka:9092
  storage:
    type: elasticsearch
  ingester:
    options:
      kafka:
        consumer:
          topic: jaeger-spans
          brokers: my-cluster-kafka-brokers.kafka:9092

  1. 单击 Create 以创建分布式追踪平台实例。
  2. Jaegers 页面上,点击分布式追踪平台实例的名称,如 jaeger-streaming
  3. Jaeger Details 页面上,点击 Resources 选项卡。等到所有 Pod 的状态变为“Running”再继续操作。

3.2.3.1. 通过 CLI 部署分布式追踪流策略

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

先决条件

  • 已安装 AMQ Streams Operator。如果使用 1.4.0 或更高版本,您可以使用自助置备。否则,您必须创建 Kafka 实例。
  • 已安装 Red Hat OpenShift distributed tracing Platform 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-streaming.yaml 的自定义资源文件,其中包含上一步中的示例文件文本。
  4. 运行以下命令来部署 Jaeger:

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

    $ oc get pods -n tracing-system -w

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

    NAME                                                              READY   STATUS    RESTARTS   AGE
    elasticsearch-cdm-jaegersystemjaegerstreaming-1-697b66d6fcztcnn   2/2     Running   0          5m40s
    elasticsearch-cdm-jaegersystemjaegerstreaming-2-5f4b95c78b9gckz   2/2     Running   0          5m37s
    elasticsearch-cdm-jaegersystemjaegerstreaming-3-7b6d964576nnz97   2/2     Running   0          5m5s
    jaeger-streaming-collector-6f6db7f99f-rtcfm                       1/1     Running   0          80s
    jaeger-streaming-entity-operator-6b6d67cc99-4lm9q                 3/3     Running   2          2m18s
    jaeger-streaming-ingester-7d479847f8-5h8kc                        1/1     Running   0          80s
    jaeger-streaming-kafka-0                                          2/2     Running   0          3m1s
    jaeger-streaming-query-65bf5bb854-ncnc7                           3/3     Running   0          80s
    jaeger-streaming-zookeeper-0                                      2/2     Running   0          3m39s