3.5. 安装 TempoMonolithic 实例
TempoMonolithic 实例只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以使用 Web 控制台或命令行安装 TempoMonolithic 实例。
TempoMonolithic 自定义资源(CR) 以单体模式创建 Tempo 部署。Tempo 部署的所有组件(如紧凑器、经销商、ingester、querier 和查询前端)都包含在一个容器中。
TempoMonolithic 实例支持存储 trace in-memory storage、持久性卷或对象存储。
在单体模式中进行临时部署是小型部署、演示和测试的首选方式。
Tempo 的单体部署无法水平扩展。如果您需要水平扩展,请在微服务模式中将 TempoStack CR 用于 Tempo 部署。
3.5.1. 使用 Web 控制台安装 TempoMonolithic 实例 复制链接链接已复制到粘贴板!
TempoMonolithic 实例只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以从 Web 控制台的 Administrator 视图安装 TempoMonolithic 实例。
先决条件
-
以具有
cluster-admin角色的用户身份登录到 OpenShift Container Platform Web 控制台。 -
对于 Red Hat OpenShift Dedicated,您必须使用具有
dedicated-admin角色的帐户登录。 - 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。
流程
-
前往 Home
Projects Create Project,为后续步骤中创建的 TempoMonolithic实例创建您选择的允许项目。不允许以openshift-前缀开头的项目名称。 决定用于存储 trace 的存储类型:内存中存储、持久性卷或对象存储。
重要对象存储不包括在 Distributed Tracing Platform 中,需要由受支持的供应商设置对象存储: Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage 或 Google Cloud Storage。
另外,选择对象存储需要在您为
TempoMonolithic实例创建的项目中为您的对象存储桶创建一个 secret。您可以在 WorkloadsSecrets Create From YAML 中执行此操作。 如需更多信息,请参阅"对象存储设置"。
Amazon S3 和 MinIO 存储的 secret 示例
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: <secret> type: Opaque创建
TempoMonolithic实例:注意您可以在同一集群上的不同项目中创建多个
TempoMonolithic实例。-
进入 Operators
Installed Operators。 -
选择 TempoMonolithic
Create TempoMonolithic YAML view。 在 YAML 视图中,自定义
TempoMonolithic自定义资源 (CR)。TempoMonolithicCR 示例apiVersion: tempo.grafana.com/v1alpha1 kind: TempoMonolithic1 metadata: name: <metadata_name> namespace: <permitted_project_of_tempomonolithic_instance>2 spec:3 storage:4 traces: backend: <supported_storage_type>5 size: <value>Gi6 s3:7 secret: <secret_name>8 tls:9 enabled: true caName: <ca_certificate_configmap_name>10 jaegerui: enabled: true11 route: enabled: true12 resources:13 total: limits: memory: <value>Gi cpu: <value>m multitenancy: enabled: true mode: openshift authentication:14 - tenantName: dev15 tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"16 - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb"- 1
- 此 CR 使用 OTLP 协议中的 trace ingestion 创建一个
TempoMonolithic部署。 - 2
- 为
TempoMonolithic部署选择的项目。不允许以openshift-前缀开头的项目名称。 - 3
- 红帽只支持 Red Hat OpenShift distributed Tracing Platform 文档中的提供的自定义资源选项。
- 4
- 指定用于存储 trace 的存储。
- 5
- 用于存储 trace 的存储类型:内存存储、持久性卷或对象存储。持久性卷的值是
pv。对象存储接受的值是s3、gcs或azure,具体取决于使用的对象存储类型。tmpfs内存中存储的默认值为memory,它仅适用于开发、测试、演示和概念验证环境,因为在 pod 关闭时数据不会被保留。 - 6
- 内存大小:对于内存存储,这意味着
tmpfs卷的大小,默认值为2Gi。对于持久性卷,这意味着持久性卷声明的大小,默认值为10Gi。对于对象存储,这意味着 Tempo Write-Ahead Logging (WAL)的持久性卷声明的大小,默认值为10Gi。 - 7
- 可选: 对于对象存储,对象存储的类型。接受的值包括
s3、gcs和azure,具体取决于使用的对象存储类型。 - 8
- 可选: 对于对象存储,存储 secret 的
metadata中的name值。存储 secret 必须与TempoMonolithic实例位于同一个命名空间中,并包含 "Table 1 中指定的字段。"Object storage setup" 部分中所需的 secret 参数"。 - 9
- 可选。
- 10
- 可选:包含 CA 证书的
ConfigMap对象的名称。 - 11
- 公开 Jaeger UI,它通过路由
http://<gateway_ingress>/api/traces/v1/<tenant_name>/search对数据进行视觉化。 - 12
- 启用为 Jaeger UI 创建路由。
- 13
- 可选。
- 14
- 列出租户。
- 15
- 租户名称,用作
X-Scope-OrgIdHTTP 标头的值。 - 16
- 租户的唯一标识符。在
TempoMonolithic部署的整个生命周期内必须是唯一的。此 ID 将作为前缀添加到对象存储中的对象。您可以重复使用 UUID 或tempoName字段的值。
- 选择 Create。
-
进入 Operators
验证
-
使用 Project: 下拉列表选择
TempoMonolithic实例的项目。 -
进入 Operators
Installed Operators,以验证 TempoMonolithic实例的 Status 是否为 Condition: Ready。 -
进入 Workloads
Pods,验证 TempoMonolithic实例的 pod 是否正在运行。 访问 Jaeger UI:
进入 Networking
Routes 和 Ctrl+F,以搜索 jaegerui。注意Jaeger UI 使用
tempo-<metadata_name_of_TempoMonolithic_CR>-jaegerui路由。- 在 Location 列中,打开 URL 以访问 Jaeger UI。
当
TempoMonolithic实例的 pod 就绪时,您可以将 trace 发送到tempo-<metadata_name_of_TempoMonolithic_CR>:4317(OTLP/gRPC) 和tempo-<metadata_name_of_TempoMonolithic_CR>:4318(OTLP/HTTP) 端点。Tempo API 位于集群中的
tempo-<metadata_name_of_TempoMonolithic_CR>:3200端点。
3.5.2. 使用 CLI 安装 TempoMonolithic 实例 复制链接链接已复制到粘贴板!
TempoMonolithic 实例只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以从命令行安装 TempoMonolithic 实例。
先决条件
集群管理员具有
cluster-admin角色的活跃 OpenShift CLI (oc) 会话。提示-
确保您的 OpenShift CLI (
oc) 版本为最新版本,并与您的 OpenShift Container Platform 版本匹配。 运行
oc login命令:$ oc login --username=<your_username>
-
确保您的 OpenShift CLI (
- 您已定义一个或多个租户,并配置了读写权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。
流程
运行以下命令,为您要在后续步骤中创建的
TempoMonolithic实例创建您选择的允许项目:$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <permitted_project_of_tempomonolithic_instance>1 EOF- 1
- 不允许以
openshift-前缀开头的项目名称。
决定用于存储 trace 的存储类型:内存中存储、持久性卷或对象存储。
重要对象存储不包括在 Distributed Tracing Platform 中,需要由受支持的供应商设置对象存储: Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage 或 Google Cloud Storage。
另外,选择对象存储需要在您为
TempoMonolithic实例创建的项目中为您的对象存储桶创建一个 secret。您可以运行以下命令来完成此操作:$ oc apply -f - << EOF <object_storage_secret> EOF如需更多信息,请参阅"对象存储设置"。
Amazon S3 和 MinIO 存储的 secret 示例
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: <secret> type: Opaque在您为它创建的项目中创建
TempoMonolithic实例。提示您可以在同一集群上的不同项目中创建多个
TempoMonolithic实例。自定义
TempoMonolithic自定义资源 (CR)。TempoMonolithicCR 示例apiVersion: tempo.grafana.com/v1alpha1 kind: TempoMonolithic1 metadata: name: <metadata_name> namespace: <permitted_project_of_tempomonolithic_instance>2 spec:3 storage:4 traces: backend: <supported_storage_type>5 size: <value>Gi6 s3:7 secret: <secret_name>8 tls:9 enabled: true caName: <ca_certificate_configmap_name>10 jaegerui: enabled: true11 route: enabled: true12 resources:13 total: limits: memory: <value>Gi cpu: <value>m multitenancy: enabled: true mode: openshift authentication:14 - tenantName: dev15 tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"16 - tenantName: prod tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb"- 1
- 此 CR 使用 OTLP 协议中的 trace ingestion 创建一个
TempoMonolithic部署。 - 2
- 为
TempoMonolithic部署选择的项目。不允许以openshift-前缀开头的项目名称。 - 3
- 红帽只支持 Red Hat OpenShift distributed Tracing Platform 文档中的提供的自定义资源选项。
- 4
- 指定用于存储 trace 的存储。
- 5
- 用于存储 trace 的存储类型:内存存储、持久性卷或对象存储。持久性卷的值是
pv。对象存储接受的值是s3、gcs或azure,具体取决于使用的对象存储类型。tmpfs内存中存储的默认值为memory,它仅适用于开发、测试、演示和概念验证环境,因为在 pod 关闭时数据不会被保留。 - 6
- 内存大小:对于内存存储,这意味着
tmpfs卷的大小,默认值为2Gi。对于持久性卷,这意味着持久性卷声明的大小,默认值为10Gi。对于对象存储,这意味着 Tempo Write-Ahead Logging (WAL)的持久性卷声明的大小,默认值为10Gi。 - 7
- 可选: 对于对象存储,对象存储的类型。接受的值包括
s3、gcs和azure,具体取决于使用的对象存储类型。 - 8
- 可选: 对于对象存储,存储 secret 的
metadata中的name值。存储 secret 必须与TempoMonolithic实例位于同一个命名空间中,并包含 "Table 1 中指定的字段。"Object storage setup" 部分中所需的 secret 参数"。 - 9
- 可选。
- 10
- 可选:包含 CA 证书的
ConfigMap对象的名称。 - 11
- 公开 Jaeger UI,它通过路由
http://<gateway_ingress>/api/traces/v1/<tenant_name>/search对数据进行视觉化。 - 12
- 启用为 Jaeger UI 创建路由。
- 13
- 可选。
- 14
- 列出租户。
- 15
- 租户名称,用作
X-Scope-OrgIdHTTP 标头的值。 - 16
- 租户的唯一标识符。在
TempoMonolithic部署的整个生命周期内必须是唯一的。此 ID 将作为前缀添加到对象存储中的对象。您可以重复使用 UUID 或tempoName字段的值。
运行以下命令来应用自定义 CR:
$ oc apply -f - << EOF <tempomonolithic_cr> EOF
验证
运行以下命令,验证所有
TempoMonolithiccomponents的状态是否为Running,并且conditions为type: Ready:$ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml运行以下命令,以验证
TempoMonolithic实例的 pod 是否正在运行:$ oc get pods访问 Jaeger UI:
运行以下命令,查询
tempo-<metadata_name_of_tempomonolithic_cr>-jaegerui路由的路由详情:$ oc get route-
在网页浏览器中打开
https://<route_from_previous_step>。
当
TempoMonolithic实例的 pod 就绪时,您可以将 trace 发送到tempo-<metadata_name_of_tempomonolithic_cr>:4317(OTLP/gRPC) 和tempo-<metadata_name_of_tempomonolithic_cr>:4318(OTLP/HTTP) 端点。Tempo API 位于集群中的
tempo-<metadata_name_of_tempomonolithic_cr>:3200端点。