规划您的 Tempo 部署
Tempo 可以部署在 *单体* 或 *微服务* 模式下。
部署模式由运行时配置 target
或命令行中的 -target
标志决定。默认目标是 all
,即单体部署模式。
注意
*单体模式* 以前称为 *单二进制模式*。类似地,*可扩展单体模式* 以前称为 *可扩展单二进制模式*。尽管文档已更新以反映此更改,但某些 URL 名称和部署工具(例如 Helm chart)尚未反映此更改。
单体模式
单体模式部署在一个进程中运行所有顶层组件,形成一个 Tempo 实例。单体模式部署最简单,但不能通过增加组件数量来实现水平扩展。有关组件的描述,请参阅架构。
要启用此模式,使用 -target=all
,这是默认值。
docker-compose 部署示例请参见
可扩展单体模式
单体模式可以水平扩展。这种可扩展单体模式类似于单体模式,所有组件都在一个进程中运行。通过实例化多个进程实现水平扩展,每个进程的 -target
设置为 scalable-single-binary
。
此模式提供了一定的扩展灵活性,同时避免了完整微服务部署的配置复杂性。
每个 queriers
对 frontend_address
执行 DNS 查找,并连接到 DNS 记录中找到的地址。
docker-compose 部署示例请参见
微服务模式
在微服务模式下,组件部署在独立的进程中。每个组件都可以独立扩展,从而在扩展方面提供了更大的灵活性,并实现了更精细的故障域。这是生产部署的首选方法,但也是最复杂的方法。
与每个组件部署关联的配置指定了一个 target
。例如,要部署一个 querier
,配置将包含 target: querier
。命令行部署可以指定 -target=querier
标志。必须部署架构中引用的每个组件才能获得一个可用的 Tempo 实例。
docker-compose 部署示例请参见
用于部署 Tempo 的工具
Tempo 可以通过多种工具轻松部署,包括 Helm、Tanka、Kubernetes 和 Docker。
注意
Tanka 和 Helm 示例是等效的。两者都提供给喜欢不同配置机制的用户。
Helm
Helm chart 在 grafana/helm-charts
仓库中提供
此外,Tempo 仓库中还提供了几个 Helm chart 示例。
Kubernetes Tempo Operator
该 operator 在 grafana/tempo-operator 仓库中提供。该 operator 协调 TempoStack
资源以部署和管理 Tempo 微服务安装。
有关更多详细信息,请参阅operator 文档。
Tanka/Jsonnet
使用 Tanka 部署 Tempo 所需的 Jsonnet 文件在此提供
这里有一些使用官方 Jsonnet 文件的示例。它们展示了 Tempo 可用的完整配置范围。
Kubernetes manifests
您可以在 operations/jsonnet-compiled 文件夹中找到一组用于部署 Tempo 的 Kubernetes manifests。这些是使用 Tanka/Jsonnet 生成的。