006、高可用和联邦集群

原文地址

https://zhuanlan.zhihu.com/p/86763004

小规模高可用方法:

部署多个相同配置的server即可

架构图如下:

在这里插入图片描述

A和B配置完全一样,同时收集所要监控的所有数据

但是这种方法存在明显的弊端:

1、无法扩展

2、数据可能不一致

所以这种架构的使用场景是只适用小规模集群和短期的存储需求

小规模高可用方法之二:

用第三方tsdb来存储数据,作为server的后端

架构图如下:

在这里插入图片描述

A和B的配置一样,数据写入第三方存储,A挂了则启动B

相比第一种方法、这种架构有以下优点:

1、可以保证数据一致

2、数据可长期存储

3、server可以灵活迁移

但是实际工作的server同样是单点,数据量大的时候存在性能瓶颈

所以也只是适合小规模集群,只是可以做数据的长期存储

以上两点只支持小规模集群,如果面对大规模集群应该用什么方法呢?

联邦机制介绍

在开始之前我们先介绍一下prometheus的联邦机制:

Prometheus原生支持联邦架构,能够实现从别的prometheus来抓取符合特定条件的数据,简单的举个例子说明一下:

在这里插入图片描述

这段配置可以抓取目标prometheus中job为kubernetes开头的所有监控项

知道了联邦机制之后我们再继续讨论高可用架构问题:

单资料中心高可用架构

单资料中心意思是所有监控最终要汇总到一个节点上的

架构图如下:

在这里插入图片描述

如果我们的规模比较大,单台server有压力的话,可以用上图的方法来实现高可用,首先我们的serverA和serverB都分别收集一部分数据,然后serverC通过联邦机制,从A和B中抓取特定的需要持久保存的数据,写入第三方的存储落地

这种架构有以下优点:

1、资料能够被持久性保持在第三方存储系统中

2、能够依据不同任务进行层级划分

3、server可以灵活迁移

4、serverA和serverB可以用前面提到的方法进行高可用扩展

当然伴随而来的就是:

1、单一资料中心带来的单点(ServerC压力较大)

2、分层带来的配置复杂,维护成本较高

不过这种架构已经基本可以满足绝大部分公司的需求了,下面介绍一下我们线上的架构设计作为结尾:

我们线上的架构有着显著的特点,首先我们用了多套k8s集群,其次呢prometheuds对接了业务数据,业务数据和线上访问量成正比,数据量非常大,所以最终的设计架构如下:

在这里插入图片描述

这里分了两层,首先系统监控我们要做持久保存,然后业务数据做实时报警,没有这个需求,因此这个分开来做,防止互相影响,我们每个集群部署一套系统监控的server和一套业务监控的server同时所有指标分别打上cluster=1,cluster=2,cluster=3的标签,然后起一个系统汇总的server通过联邦机制收集需要汇总的系统指标,写入第三方存储来做持久话保存,同时起一个业务汇总的server收集需要汇总的业务指标,来做实时展示,因为没有持久话需求,所以没设置第三方存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值