1.4. Red Hat OpenShift distributed tracing Platform 2.9 发行注记
1.4.1. 分布式追踪概述
作为服务所有者,您可以使用分布式追踪来检测您的服务,以收集与服务架构相关的信息。您可以使用 Red Hat OpenShift distributed tracing 平台来监控、网络性能分析,并对现代、云原生的微服务应用程序中组件间的交互进行故障排除。
使用分布式追踪平台,您可以执行以下功能:
- 监控分布式事务
- 优化性能和延迟时间
- 执行根原因分析
分布式追踪平台由三个组件组成:
- Red Hat OpenShift distributed tracing Platform (Jaeger),它基于开源 Jaeger 项目。
- Red Hat OpenShift distributed tracing Platform (Tempo),它基于开源 Grafana Tempo 项目。
- 红帽构建的 OpenTelemetry,它基于开源 OpenTelemetry 项目。
1.4.2. Red Hat OpenShift distributed tracing Platform 2.9 中的组件版本
Operator | 组件 | Version |
---|---|---|
Red Hat OpenShift distributed tracing Platform (Jaeger) | Jaeger | 1.47.0 |
Red Hat build of OpenTelemetry | OpenTelemetry | 0.81.0 |
Red Hat OpenShift distributed tracing Platform (Tempo) | Tempo | 2.1.1 |
1.4.3. Red Hat OpenShift distributed tracing Platform (Jaeger)
1.4.3.1. 新功能及功能增强
- 无。
1.4.3.2. 程序错误修复
-
在此次更新之前,因为
jaeger-query
部署中缺少一个 gRPC 端口,连接会被拒绝。此问题会导致transport: Error while dialing: dial tcp :16685: connect: connection refused
错误信息。在这个版本中,Jaeger Query gRPC 端口 (16685) 可以在 Jaeger Query 服务上成功公开。(TRACING-3322) -
在此次更新之前,为
jaeger-production-query
公开的端口是错误的,并导致连接被拒绝。在这个版本中,这个问题已通过在 Jaeger Query 部署上公开 Jaeger Query gRPC 端口(16685) 被解决。(TRACING-2968) -
在此次更新之前,当在断开连接的环境中的单节点 OpenShift 集群上部署 Service Mesh 时,Jaeger pod 会经常进入
Pending
状态。在这个版本中,这个问题已被解决。(TRACING-3312) -
在此次更新之前,因为
reason: OOMKilled
错误信息,Jaeger Operator pod 会以默认内存值重启。在这个版本中,通过删除资源限值解决了这个问题。(TRACING-3173)
1.4.3.3. 已知问题
- 不支持 Apache spark。
- IBM Z 和 IBM Power Systems 上不支持通过 AMQ/Kafka 进行流部署。
1.4.4. Red Hat OpenShift distributed tracing Platform (Tempo)
Red Hat OpenShift distributed tracing Platform (Tempo)只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
1.4.4.1. 新功能及功能增强
此发行版本包括对分布式追踪平台 (Tempo) 的以下改进:
-
支持 operator maturity Level IV, Deep Insights, 它会启用对
TempoStack
实例和 Tempo Operator 的升级、监控和提示。 - 为网关添加 Ingress 和 Route 配置。
-
支持
TempoStack
自定义资源中的managed
和unmanaged
状态。 - 在 Distributor 服务中公开以下额外的 ingestion 协议:Jaeger Thrift 二进制、Jaeger Thrift compact、Jaeger gRPC 和 Zipkin。启用网关时,只启用 OpenTelemetry 协议 (OTLP) gRPC。
- 在 Query Frontend 服务上公开 Jaeger Query gRPC 端点。
- 支持没有网关身份验证和授权的多租户。
1.4.4.2. 程序错误修复
- 在此次更新之前,Tempo Operator 与断开连接的环境不兼容。在这个版本中,Tempo Operator 支持断开连接的环境。(TRACING-3145)
- 在此次更新之前,带有 TLS 的 Tempo Operator 无法在 OpenShift Container Platform 上启动。在这个版本中,mTLS 通信会在 Tempo 组件、Operand 启动成功时启用,并且可以访问 Jaeger UI。(TRACING-3091)
-
在此次更新之前,来自 Tempo Operator 的资源限值会导致错误消息,如
reason: OOMKilled
。在这个版本中,Tempo Operator 的资源限值被删除,以避免此类错误。(TRACING-3204)
1.4.4.3. 已知问题
- 目前,没有为连接对象存储而实施自定义 TLS CA 选项。(TRACING-3462)
- 目前,当与 Tempo Operator 一起使用时,Jaeger UI 只显示在最后 15 分钟内发送了 trace 的服务。对于没有在最后 15 分钟内发送 trace 的服务,trace 仍然会被存储,但不会在 Jaeger UI 中显示。(TRACING-3139)
-
目前,分布式追踪平台(Tempo)在 IBM Z (
s390x
)架构中会失败。(TRACING-3545) 目前,在未部署网关时,Tempo 查询前端服务不得使用内部 mTLS。这个问题不会影响 Jaeger Query API。解决办法是禁用 mTLS。(TRACING-3510)
临时解决方案
禁用 mTLS,如下所示:
运行以下命令,打开 Tempo Operator ConfigMap 进行编辑:
$ oc edit configmap tempo-operator-manager-config -n openshift-tempo-operator 1
- 1
- 安装 Tempo Operator 的项目。
通过更新 YAML 文件来禁用 Operator 配置中的 mTLS:
data: controller_manager_config.yaml: | featureGates: httpEncryption: false grpcEncryption: false builtInCertManagement: enabled: false
运行以下命令来重启 Tempo Operator pod:
$ oc rollout restart deployment.apps/tempo-operator-controller -n openshift-tempo-operator
缺少在受限环境中运行 Tempo Operator 的镜像。Red Hat OpenShift distributed tracing Platform (Tempo) CSV 缺少对操作对象镜像的引用。(TRACING-3523)
临时解决方案
在镜像工具中添加 Tempo Operator 相关镜像,将镜像复制到 registry:
kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 archiveSize: 20 storageConfig: local: path: /home/user/images mirror: operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.13 packages: - name: tempo-product channels: - name: stable additionalImages: - name: registry.redhat.io/rhosdt/tempo-rhel8@sha256:e4295f837066efb05bcc5897f31eb2bdbd81684a8c59d6f9498dd3590c62c12a - name: registry.redhat.io/rhosdt/tempo-gateway-rhel8@sha256:b62f5cedfeb5907b638f14ca6aaeea50f41642980a8a6f87b7061e88d90fac23 - name: registry.redhat.io/rhosdt/tempo-gateway-opa-rhel8@sha256:8cd134deca47d6817b26566e272e6c3f75367653d589f5c90855c59b2fab01e9 - name: registry.redhat.io/rhosdt/tempo-query-rhel8@sha256:0da43034f440b8258a48a0697ba643b5643d48b615cdb882ac7f4f1f80aad08e
1.4.5. Red Hat build of OpenTelemetry
红帽构建的 OpenTelemetry 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
1.4.5.1. 新功能及功能增强
此发行版本为 OpenTelemetry 的红帽构建引入了以下改进:
-
支持 OTLP 指标 ingestion。指标可以通过 Prometheus 导出器转发并存储在
user-workload-monitoring
中。 -
支持 Operator 成熟度 级别 IV、Deep Insights,它启用了对
OpenTelemetry Collector
实例的升级和监控,以及红帽构建的 OpenTelemetry Operator。 - 使用 OTLP 或 HTTP 和 HTTPS 报告远程集群中的追踪和指标。
-
通过
resourcedetection
处理器收集 OpenShift Container Platform 资源属性。 -
支持
OpenTelemetryCollector
自定义 resouce 中的managed
和unmanaged
状态。
1.4.5.2. 程序错误修复
无。
1.4.5.3. 已知问题
- 目前,您必须手动将 operator 成熟度 设置为 Level IV, Deep Insights。(TRACING-3431)
1.4.6. 获取支持
如果您在执行本文档所述的某个流程或 OpenShift Container Platform 时遇到问题,请访问 红帽客户门户网站。通过红帽客户门户网站:
- 搜索或者浏览红帽知识库,了解与红帽产品相关的文章和解决方案。
- 提交问题单给红帽支持。
- 访问其他产品文档。
要识别集群中的问题,您可以在 OpenShift Cluster Manager Hybrid Cloud Console 中使用 Insights。Insights 提供了问题的详细信息,并在有可用的情况下,提供了如何解决问题的信息。
如果您对本文档有任何改进建议,或发现了任何错误,请为相关文档组件提交 JIRA 问题。请提供具体详情,如章节名称和 OpenShift Container Platform 版本。
1.4.7. 使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。