Prometheus 学习之——高可用方案 Thanos
前言
在 Thanos 产生前,在 Improbable 公司内部存在多套 Kubernetes 集群,每个集群都部署了一套独立的 Prometheus,再通过 Grafana 之类的展示工具分别查看每个集群的资源,缺乏一个全局资源视图;另一方面,Prometheus 的高可用需要得到保证,需要一套数据备份方案及历史数据存储方案。在这种背景下,Thanos 诞生了。
一、Thanos 的 4 个组件
Thanos 的整体架构如下,它主要有 4 个组件:Querier、Sidecar、Store 和 Compactor。
每个 Prometheus 节点都配置了一个 Sidecar 组件,Prometheus 通过 Kubernetes 的部署,可以将 Sidecar 容器和 Prometheus 容器集成到一个 Pod 中。Sidecar 组件有两个主要作用,一是用来代理 Querier 对 Prometheus 本地数据的读取,二是将 Prometheus 本地监控数据通过对象存储接口保存到对象存储中。
Querier 接收 HTTP 的 PromQL 查询,组件负责数据查询汇聚。当 Querier 收到一个请求时&