首页 > 其他分享 >Thanos HA

Thanos HA

时间:2024-08-25 15:03:53浏览次数:11  
标签:存储 Prometheus Receiver Thanos HA 数据 Sidecar

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模式也存在自身的优点和缺点,我们将在此处讨论这些优点和缺点。

标签:存储,Prometheus,Receiver,Thanos,HA,数据,Sidecar
From: https://www.cnblogs.com/apink/p/18378965

相关文章

  • 初识混沌工程(Chaos Engineering): k8s install chaosblade
    混沌工程文档:https://chaosblade.io/docs/helm:https://github.com/helm/helm/releaseschaosblade:https://github.com/chaosblade-io/chaosblade/releaseschaosblade-box:https://github.com/chaosblade-io/chaosblade-box/releasesmetrics-server:https://gith......
  • 机器学习详解-第二章-实践方法论-学习笔记-[DataWhale X 李宏毅苹果书 X AI夏令营]
    在调整模型的过程中可能会遇到许多问题,这里为了处理这些问题(前期初学情况),从而给出了一个章节用于学习相关的技巧。1.模型偏差模型偏差可能会影响模型训练,我们在训练的时候,将所有的函数集合在一起得到一个函数的集合,但是这个函数的集合大小是我们不确定的,可能会因为太小,其中的......
  • 十五张图带你快速入门 shardingsphere-proxy
    ApacheShardingSphere是一款分布式的数据库生态系统,它包含两大产品:ShardingSphere-ProxyShardingSphere-JDBC很多同学对于ShardingSphere-JDBC已经能非常熟悉的使用了,但关于网上关于ShardingSphere-Proxy5.5的使用教程却非常少。所以这篇文章,笔者尝试带大家快速入门......
  • C++(std::cout 处理 char*)
    目录1.std::cout和char*2.std::cout处理nullptr情况3.数组与指针的区别4.特殊字符的处理5.总结在C++中,std::cout是标准输出流,通常用于将数据输出到控制台。在处理char*类型时,std::cout的行为与处理其他类型有所不同。1.std::cout和char*char*是一个指向字......
  • mysql having的用法
    having的用法having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在groupby和having字句前。而having子句在聚合后对组记录进行筛选。我的理解就是真实表中没有此数据,这些数据是通过一些函数生存。SQL实例:一、显示每个地区的总人口数和总面积......
  • apt update 报错:Could not handshake: Error in the pull function. [IP: 185.199.108
    sudoaptupdate报错:错误:12https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64ReleaseCouldnothandshake:Errorinthepullfunction.[IP:185.199.108.153443]错误:13https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64Re......
  • halcon中如何截取字符串一部分
    path:='C:/Users/admini/Desktop/vision1/1.bmp'**//**:从后向前获取第一个字符“/”的下标tuple_strrstr(path,'/',Position)**//**:获取字符长度tuple_strlen(path,Length)**//**:截取指定起始下标到结束下标长度的字符串tuple_substr(path,Position+1,Leng......
  • hyperf ValidationExceptionHandler
    <?phpdeclare(strict_types=1);/***ThisfileispartofHyperf.**@linkhttps://www.hyperf.io*@documenthttps://hyperf.wiki*@[email protected]*@licensehttps://github.com/hyperf/hyperf/blob/master/LICENSE*/namespaceApp......
  • 如何高效利用ChatGPT撰写论文:从初稿到终稿的全程精华指南
    在近年来的人工智能快速发展中,自然语言处理领域尤其显著,其中ChatGPT作为OpenAI推出的先进语言模型,不仅在日常交互上表现出众,其在专业写作方面也展现了巨大潜力。本文将详尽介绍如何高效地利用ChatGPT来撰写和修改学术论文,为不同背景的用户——无论是程序员还是学生——提供一......
  • Tushare金融数据接口使用介绍【学生可以免费获取高级数据接口哦】
    Tushare是一个面向数据分析师和量化投资者的免费、开源Python财经数据接口包,它提供了丰富的中国股市历史数据和实时数据,包括股票、基金、期货、指数和行业数据等。用户可以通过Tushare获取股票交易数据、实时数据以及公司基本信息等。Tushare的使用相对简单,首先需要在Tushare官......