Thanos HA

news/2024/9/21 20:47:40/文章来源:https://www.cnblogs.com/apink/p/18378965

ThanosHA组件


HA组件

  1. Sidercar
  2. Receiver

其它组件

  1. Querier
  2. Store
  3. Compactor
  4. Ruler

Sidecar & Receiver工作方式


Sidecar

为实现高可用,Sidecar组件与Prometheus运行在一个Pod中,双副本的Prometheus独立运行采集数据(scrape metrics),默认情况部署在Kubernetesk的Prometheus使用PVC持久化存储卷

Sidecar 在 Prometheus 的远程读取 API 之上实现了 Thanos 的 Store API,Thanos Querier通过Thanos Store API接口查询 Prometheus数据。此外,sidecar还可以配置为每隔两小时将TSDB块上传到对象存储,每两小时创建一次块。存储在存储桶中的数据可以使用 Thanos Store 组件进行查询,该组件实现了相同的 Store API,并且需要由 Thanos Querier 查询

有关 sidecar 的详细信息 Making Prometheus High Availability (HA) & Scalable with Thanos

Receiver

与 sidecar 不同,Receiver 使用 StatefulSet独立配置。在这种方法中,Thanos Stack 所有其他组件都存在,并且其功能与 Sidecar 方法相同,但 Receiver 取代了 Sidecar 组件。

Prometheus Remote Write API投入使用,Prometheus实例被配置为在Receiver上持续远程写入。接收器配置写入到对象存储桶,同时支持数据保留期。Querier用于通过Store查询Receiver和存储桶上的数据,同时也支持Thanos Query访问Receiver的Store API

与 Sidecar 相比,集成 Receiver 有点棘手,有关设置接收器的更多详细信息,请参阅博客文章使用 Prometheus & Thanos Receiver 实现监控中的多租户。

Sidecar vs Receiver 对比


从以下几个方面对比

高可用模式

Sidecar

副本集的组成是由Sidecar与Prometeus集成在一起,每个副本中的Prometheus独立采集监控数据,并且Sidecar支持将数据上传至对象存储,但是有个缺点Prometheus二个小时刷一次数据到磁盘,如果实例故障有二个小时的数据丢失风险存在,所以需要配置二个Prometheus实例,Thanos Querier 负责填补丢失的数据并进行重复数据删除

Receiver

基本上与Sidecar相似,但是Receiver模式不是必须一定要Prometheus集成一起,而是使用Prometheus的remote_write功能将采集的数据写入至远程的Receiver接口(使用HTTP协议),如果Prometheus部署在Kubernetes集群需要使用StatefulSet副本,Receiver适合在多租户的场景下

与Prometheus集成

Sidecar

Sidecar只需要与Prometheus实例集成在一个Pod就可以了,主要是共享Prometheus数据卷,远端存储至对象存储

Receiver

与Sidecar不同的是需要独立部署至StatefulSet副本中,并且需要独立的存储来存放Prometheus监控数据,需要在 Prometheus 实例中更改配置,将 TSDB 远程写入Receiver将并将TSDB 保留在本地存储

Storage

Sidecar

Sidecar 从 Prometheus 的本地存储中读取,因此 TSDB 不需要额外的本地存储 (PV)。此外,它还大大减少了 TSDB 在 Prometheus 本地存储中的保留时间,因为它每两小时上传一次,同时其历史数据通过对象存储变得持久且可查询。默认情况下,Prometheus 会存储数据 15 天。在监控一个完整的、重型生产集群的情况下,需要大量的本地存储,并且本地存储比对象存储相对昂贵(EBS卷比S3存储桶贵)。

由于 Sidecar 每 2 小时将 Prometheus 指标导出到存储桶,因此它使 Prometheus 更接近无状态。虽然在 Thanos文档中,建议 Prometheus 的保留时间不低于最小区块持续时间的三倍,因此变为 6 小时

Receiver

Receiver 作为 StatefulSet,需要配置 PV。这里所需的本地存储量取决于StatefulSet 的flags --receive.replication-factor、和 pod 副本。--tsdb.retentionTSDB 保留率越高,将利用更多的本地存储。由于数据不断写入接收器,Prometheus 保留率可以保持在最小值。与 Sidecar 相比,此设置需要更多本地存储。

数据获取方式

Sidecar

TSDB块是从Prometheus实例的本地存储中读取的,要么提供给Thanos Query进行查询,要么间歇性地导出到对象存储。Sidecar 使用pull的模型(Thanos Querier 在查询时从 Prometheus 中拉出数据),并且数据不会不断写入任何其他实例。

Receiver

Receiver 采用基于push的模型,TSDB 由 Prometheus 实例不断远程写入到 Receiver,从而使 Prometheus 最接近无状态。然后数据进一步从接收器上传到对象存储。push模式也存在自身的优点和缺点,我们将在此处讨论这些优点和缺点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/787072.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

063、Vue3+TypeScript基础,作用域插槽的使用

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 // import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mou…

使用AI识别语音和B站视频并通过GPT生成思维导图

AI脑图除了对文本、网页链接和文件生成思维导图外,现在也支持了对语音和B站视频的内容识别,并自动生成思维导图。AI脑图除了对文本、网页链接和文件生成思维导图外,现在也支持了对语音和B站视频的内容识别,并自动生成思维导图。 语音生成思维导图 直接发送语音:对AI脑图公…

C++函数调用栈从何而来

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~个人主页:rainInSunny | 个人专栏:C++那些事儿、Qt那些事儿目录写在前面原理综述x86架构函数调用栈分析如何获取rbp寄存器的值总结 写在前面程序员对函数调用栈是再熟悉不过了,无论是使用IDE调试还是GDB等工具进行调试,都离不开函数…

[COCI2017-2018#5] Planinarenje

这道题目是二分图博弈的板子 介绍一下二分图博弈:设两部的节点分别为\(x_1,x_2,...,x_n\)和\(y_1,y_2,...,y_m\),先手选择了\(x_i\)这个节点,则先手必胜当且仅当\(x_i\)是最大匹配的必须点(也就是说少了\(x_i\)的话最大匹配数会减少) 证明: 任选一个最大匹配,则\(x_i\)为…

C# StartsWith 字符串的实例方法解析

原文链接:https://www.jb51.net/program/317525q14.htm 在 C# 中,StartsWith 是一个字符串的实例方法,用于检查字符串是否以指定的前缀开头。它返回一个布尔值,指示字符串是否以指定的前缀开始。

062、Vue3+TypeScript基础,插槽中使用具名插槽

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 // import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mou…

ZBlog的数据库表是可以设置前缀-修改ZBlog数据库前缀

ZBlog的数据库表是可以设置前缀,程序安装的时候默认是 zbp_,所以很多同学也就默认用了 zbp_,但是因为某些原因需要修改ZBlog数据的前缀。 例如烽烟前几天搭建了几个演示站,多个演示站都使用的是一个数据库,但是由于之前的演示站数据表也是默认的zbp_,这样的话就与现在存在…

ZBlog后台密码忘记该如何找回

应 网友留言‘ZBlog后台密码忘记该如何找回?’ 每个人都会健忘,而且会忘记某些重要的东西,例如老婆的生日(很严重),银行卡密码(着急),当然也会忘记ZBlog管理员账号的密码。。。那么当我们忘记了后台的登录密码要怎么办呢?不要着急,接下来烽烟就来说下ZBlog找回管理员…

导入数据库提示unknown character set utf8mb4的原因及解决方案

今天尝试往阿里云的一个虚拟机当中导入数据库,然而却出现了“unknown character set utf8mb4”这样的提示。 之所以会产生这个错误,原因在于阿里虚拟机所使用的数据库版本为 5.1 版,此版本并不支持 utf8mb4 字符集。要知道,utf8mb4 字符集是从 5.5 版本开始被采用的,正因如…

061、Vue3+TypeScript基础,插槽中增加图片和控制视频

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 // import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mou…

如何快速将经纬度坐标解析为地址文本?

GIS数据转换器的"坐标转地址"功能,可以帮助用户将经纬度坐标快速转换为对应的地址文本,广泛用于地图导航、地籍管理、物流追踪、紧急救援等多个领域,提高地理位置信息的实用性和可访问性。下面是详细的使用步骤:方法/步骤1. 数据要求(1)数据格式:软件支持DWG、…

C# 扫描并读取图片中的文字(.NET Core)

本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例。下面是具体步骤,供参考。 程序测试环境:Visual Studio版本要求不低于2017 图片扫描工具:Spire.OCR for .NET 图片格式:png(这里的图片格式支持JPG、PNG、GIF、BMP、TIFF等格式) 扫描…