3.2. 配置和部署 Jaeger
Jaeger Operator 包含自定义资源定义 (CRD) 文件,该文件定义 Jaeger 资源的架构和配置设置。您可以安装默认配置或修改该文件以更好地满足您的业务要求。
Jaeger 具有预定义的部署策略。您可以在自定义资源文件中指定一个部署策略。创建 Jaeger 实例时,Operator 会使用此配置文件创建部署所需的对象。
Jaeger 自定义资源文件显示部署策略
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simple-prod
spec:
strategy: production 1
- 1
- Jaeger Operator 目前支持以下部署策略:
allInOne(默认)- 此策略用于开发、测试和演示目的。主要的后端组件 Agent、Collector 和 Query 服务都打包成单一可执行文件,(默认)配置为使用内存存储。
注意内存存储不是持久性的,这意味着如果 Jaeger 实例关闭、重启或被替换,您的 trace 数据将会丢失。此外,内存存储无法扩展,因为每个 Pod 都有自己的内存。对于持久性存储,您必须使用
production
或streaming
策略,这些策略使用 Elasticsearch 作为默认存储。- production - production 策略主要用于生产环境,在生产环境中,对 trace 数据进行长期存储非常重要,同时需要更容易扩展和高度可用的构架。因此,每个后端组件都将单独部署。Agent 可以作为检测应用程序上的 sidecar 注入,也可以作为 daemonset 注入。Query 和 Collector 服务被配置为使用一个受支持的存储类型 - 当前为 Elasticsearch。可以根据性能和恢复能力的需要提供每个组件的多个实例。
streaming - streaming 策略旨在提供在 Collector 和后端存储 (Elasticsearch) 之间有效发挥作用的流传输功能,以此增强 production 策略。这样做的好处是在高负载情况下降低后端存储压力,并允许其他 trace 后处理功能直接从流传输平台 (AMQ Streams/ Kafka) 中利用实时 span 数据。
注意streaming 策略需要额外的 AMQ Streams 订阅。
可以使用两种方式安装 Jaeger:作为服务网格的一部分或作为独立组件。如果您已将 Jaeger 作为 Red Hat OpenShift Service Mesh 的一部分安装,您必须将 Jaeger 配置为 ServiceMeshControlPlane 的一部分。
3.2.1. 从 Web 控制台部署默认 Jaeger 策略
自定义资源定义 (CRD) 定义部署 Jaeger 实例时使用的配置。Jaeger 的默认 CR 名为 jaeger-all-in-one-inmemory
,它配置为使用最少资源,以确保您可以在默认的 OpenShift Container Platform 安装中成功安装它。您可以使用此默认配置创建使用 AllInOne
部署策略的 Jaeger 实例,或者您可以定义自己的自定义资源文件。
内存存储不是持久性的,这意味着如果 Jaeger Pod 关闭、重启或被替换,您的 trace 数据将会丢失。对于持久性存储,您必须使用 production
或 streaming
策略,这些策略使用 Elasticsearch 作为默认存储。
先决条件
- 必须安装 Jaeger Operator。
- 查看有关如何自定义 Jaeger 安装的说明。
-
具有
cluster-admin
角色的帐户。
流程
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform web 控制台。 创建一个新项目,如
jaeger-system
。-
浏览至 Home
Project。 - 点击 Create Project。
-
在 Name 字段中输入
jaeger-system
。 - 点击 Create。
-
浏览至 Home
-
导航到 Operators
Installed Operators。 -
如果需要,请在 Project 菜单中选择
jaeger-system
。您可能需要等待一些时间,让 Operator 复制到新项目中。 - 点击 OpenShift Jaeger Operator。在 Overview 选项卡上的 Provided APIs 下,Operator 提供了单个链接。
- 在 Jaeger 下点击 Create Instance。
- 在 Create Jaeger 页面上,要使用默认值进行安装,请点击 Create 来创建 Jaeger 实例。
-
在 Jaegers 页面上,点击 Jaeger 实例的名称,如
jaeger-all-in-one-inmemory
。 - 在 Jaeger Details 页面上,点击 Resources 选项卡。等到 Pod 的状态变为“Running”再继续操作。
3.2.1.1. 通过 CLI 部署默认 Jaeger
按照以下步骤,通过命令行创建 Jaeger 实例。
先决条件
- 已安装并验证 OpenShift Jaeger Operator。
-
访问与 OpenShift Container Platform 版本匹配的 OpenShift CLI(
oc
)。 -
具有
cluster-admin
角色的帐户。
流程
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform CLI。$ oc login https://{HOSTNAME}:8443
创建一个名为
jaeger-system
的新项目。$ oc new-project jaeger-system
创建一个名为
jaeger.yaml
的自定义资源文件,其中包含以下文本:示例 Jaeger-all-in-one.yaml
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger-all-in-one-inmemory
运行以下命令来部署 Jaeger:
$ oc create -n jaeger-system -f jaeger.yaml
在安装过程中运行以下命令来监控 pod 的进度:
$ oc get pods -n jaeger-system -w
安装过程完成后,您应该看到类似如下的输出:
NAME READY STATUS RESTARTS AGE jaeger-all-in-one-inmemory-cdff7897b-qhfdx 2/2 Running 0 24s