1.26.4.6. 分布式追踪存储配置选项
您可以在 spec.storage
下为 Collector、Ingester 和 Query 服务配置存储。可以根据性能和恢复能力的需要提供每个组件的多个实例。
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
spec: storage: type: | 要在部署中使用的存储类型。 |
|
|
storage: secretname: |
secret 名称,例如 | N/A | |
storage: options: {} | 定义存储的配置选项。 |
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
storage: esIndexCleaner: enabled: | 当使用 Elasticsearch 存储时,默认会创建一个任务来清理索引中的旧 trace。这个参数用于启用或禁用索引清理任务。 |
|
|
storage: esIndexCleaner: numberOfDays: | 删除索引前等待的天数。 | 整数值 |
|
storage: esIndexCleaner: schedule: | 为 Elasticsearch 索引的清理频率定义调度。 | Cron 表达式 | "55 23 * * *" |
1.26.4.6.1. 自动置备 Elasticsearch 实例
部署 Jaeger 自定义资源时,Red Hat OpenShift distributed tracing platform Operator 会使用 OpenShift Elasticsearch Operator 根据自定义资源文件的 storage
部分中提供的配置创建 Elasticsearch 集群。如果设置了以下配置,Red Hat OpenShift distributed tracing Platform Operator 将置备 Elasticsearch:
-
spec.storage:type
设置为elasticsearch
-
spec.storage.elasticsearch.doNotProvision
设置为false
-
未定义
spec.storage.options.es.server-urls
,因此没有连接到 Red Hat Elasticsearch Operator 未置备的 Elasticsearch 实例。
在置备 Elasticsearch 时,Red Hat OpenShift distributed tracing platform Operator 会将 Elasticsearch 自定义资源名称设置为 Jaeger 自定义资源的 spec.storage.elasticsearch.name
的 name
值。如果没有为 spec.storage.elasticsearch.name
指定一个值,Operator 会使用 elasticsearch
。
限制
- 每个命名空间只能有一个具有自助置备 Elasticsearch 实例的分布式追踪平台。Elasticsearch 集群旨在专用于单个分布式追踪平台实例。
- 每个命名空间只能有一个 Elasticsearch。
如果您已经安装了 Elasticsearch 作为 OpenShift Logging 的一部分,Red Hat OpenShift distributed tracing Platform Operator 可使用已安装的 OpenShift Elasticsearch Operator 来置备存储。
以下配置参数用于一个 自置备的 Elasticsearch 实例,这是由 Red Hat OpenShift distributed tracing Platform Operator 使用 OpenShift Elasticsearch Operator 创建的实例。在配置文件中,您可以在 spec:storage:elasticsearch
下为自助置备 Elasticsearch 指定配置选项。
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
elasticsearch: properties: doNotProvision: | 用于指定 Red Hat OpenShift distributed tracing platform Operator 是否应该置备 Elasticsearch 实例。 |
|
|
elasticsearch: properties: name: | Elasticsearch 实例的名称。Red Hat OpenShift distributed tracing platform Operator 使用此参数中指定的 Elasticsearch 实例连接到 Elasticsearch。 | 字符串 |
|
elasticsearch: nodeCount: | Elasticsearch 节点数量。对于高可用性,需要至少 3 个节点。不要只使用 2 个节点,因为可能会出现“脑裂”问题。 | 整数值。例如,概念验证 = 1,最小部署 = 3 | 3 |
elasticsearch: resources: requests: cpu: | 根据您的环境配置,请求的 CPU 数量。 | 以内核数或 millicores 指定,例如 200m, 0.5, 1。例如,概念证明 = 500m,最小部署 =1 | 1 |
elasticsearch: resources: requests: memory: | 根据您的环境配置,可用于请求的内存。 | 以字节为单位指定,例如 200Ki, 50Mi, 5Gi。例如,概念证明 = 1Gi,最小部署 = 16Gi* | 16Gi |
elasticsearch: resources: limits: cpu: | 根据您的环境配置,CPU 数量的限值。 | 以内核数或 millicores 指定,例如 200m, 0.5, 1。例如,概念证明 = 500m,最小部署 =1 | |
elasticsearch: resources: limits: memory: | 根据您的环境配置,可用的内存限值。 | 以字节为单位指定,例如 200Ki, 50Mi, 5Gi。例如,概念证明 = 1Gi,最小部署 = 16Gi* | |
elasticsearch: redundancyPolicy: | 数据复制策略定义如何在集群中的数据节点之间复制 Elasticsearch 分片:如果没有指定,Red Hat OpenShift distributed tracing Platform Operator 会自动根据节点数量决定最合适的复制。 |
| |
elasticsearch: useCertManagement: | 用于指定分布式追踪平台是否应使用 Red Hat Elasticsearch Operator 的证书管理功能。此功能被添加到 OpenShift Container Platform 4.7 中的 Red Hat OpenShift 5.2 的日志记录子系统中,是新 Jaeger 部署的首选设置。 |
|
|
*通过这个设置可以使每个 Elasticsearch 节点使用较低内存进行操作,但对于生产环境部署,不建议这样做。对于生产环境,您应该默认为每个 pod 分配不少于 16Gi 内存,但最好为每个 pod 最多分配 64Gi 内存。 |
生产环境存储示例
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: simple-prod spec: strategy: production storage: type: elasticsearch elasticsearch: nodeCount: 3 resources: requests: cpu: 1 memory: 16Gi limits: memory: 16Gi
具有持久性存储的存储示例:
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simple-prod
spec:
strategy: production
storage:
type: elasticsearch
elasticsearch:
nodeCount: 1
storage: 1
storageClassName: gp2
size: 5Gi
resources:
requests:
cpu: 200m
memory: 4Gi
limits:
memory: 4Gi
redundancyPolicy: ZeroRedundancy
- 1
- 持久性存储配置。在本例中,AWS
gp2
的大小为5Gi
。如果没有指定值,则分布式追踪平台将使用emptyDir
。OpenShift Elasticsearch Operator 置备PersistentVolumeClaim
和PersistentVolume
,它们不会在分布式追踪平台实例中删除。如果您创建具有相同名称和命名空间的分布式追踪平台实例,则可以挂载同一卷。