kvass icon indicating copy to clipboard operation
kvass copied to clipboard

高可用的保证

Open VincentYuan-hub opened this issue 4 years ago • 6 comments

我希望能让每2个普罗米修斯采集同样的数据,通过thanos来做去重,保证高可用性。但使用了kvass之后,无法控制让他们去采集重复的数据。请问是你们是如何保证高可用的?

VincentYuan-hub avatar Jun 10 '21 07:06 VincentYuan-hub

我理解是:Coordinator可以做分片,并且做了服务发现,通过这种方式做服务的一些切换。但如果中间有一个服务器挂掉了,切换过去还是会出现数据断的情况。

VincentYuan-hub avatar Jun 10 '21 07:06 VincentYuan-hub

我也有同样的问题:每当kvass分片发生变动或意外重启的时候,总会断数据。目前我是准备跑两套kvass去采集相同的指标,用这种方式去保障高可用,但这样做资源消耗比较大。

u-kyou avatar Jun 15 '21 03:06 u-kyou

目前是支持高可用的,Coordinator是通过selector去筛选PrometheusStatefulSet,每个筛选到的Promtheus StatefulSet都会被作为一个副本, 独立管理。这就是为什么example里。PrometheusStatfulSet后缀标记了rep-0 当然,高可用是会消耗更多资源的。

RayHuangCN avatar Jun 18 '21 03:06 RayHuangCN

目前是支持高可用的,Coordinator是通过selector去筛选PrometheusStatefulSet,每个筛选到的Promtheus StatefulSet都会被作为一个副本, 独立管理。这就是为什么example里。PrometheusStatfulSet后缀标记了rep-0 当然,高可用是会消耗更多资源的。

是指只部署一个Coordinator来管理两套Prometheus的StatefulSet是吗?!我起初理解也是应该可以这样,但实际测了一下,发现第二套sts起的实例感觉被当作了第一套sts的子分片实例,感觉有点bug。后来我看Coordinator本身占用资源不多,我就跑了两个Coordinator分别管理自己那套Prometheus的StatefulSet。这个大佬可以再确认一下

u-kyou avatar Jun 18 '21 05:06 u-kyou

每个StatefulSet是单独管理的。你的情况是不是因为2个StatefulSet的pod selector有冲突导致的?使用1个Coordinator的好处是,他会整合多个副本的Target结果。只要有一个副本采集成功就会是up的。当然,使用独立的Coordinator,可用性更高一些。

RayHuangCN avatar Jun 23 '21 02:06 RayHuangCN

我希望能让每2个普罗米修斯采集同样的数据,通过thanos来做去重,保证高可用性。但使用了kvass之后,无法控制让他们去采集重复的数据。请问是你们是如何保证高可用的?

我也有同样的问题

我也有同样的问题:每当kvass分片发生变动或意外重启的时候,总会断数据。目前我是准备跑两套kvass去采集相同的指标,用这种方式去保障高可用,但这样做资源消耗比较大。

最近在看的时候我也想到了这个问题, 我觉得能不能在每个分片中采集两部分数据 例如prom-0采集a、b,prom-1采集b、c ,prom-2采集c、a这样既实现了分片采集又可以高可用 image

greppro avatar Dec 17 '21 06:12 greppro