对kubernetes的事件进行收集、存储并报警

随着企业服务向kubernetes迁移,对k8s事件的实时监控和报警需求增加。文章详细拆解了获取事件信息、实时报警、事件持久化和查询这四个核心功能,并介绍了kubernetes自带的event-exporter及局限性。通过kubewatch和自定义控制器的实现方式,阐述如何监听并处理Event类型,以满足报警和存储需求。
摘要由CSDN通过智能技术生成

背景:

随着企业内越来越多的服务迁移到了kubernetes上,用户对kubernetes相关信息的获取更加迫切,他们想知道自己的服务实例都“经历过”什么,比如在有业务异常的时候,他们想要知道自己的实例是否被重启过,在上线失败的时候他们也希望第一时间知道原因。更进一步,他们希望这些都能实时通知并且能事后查看。但通常他们又无法直接接触集群服务器,包括kubectl等。因此需要有一个好的解决方案。

需求拆解:

上述需求可以拆解为如下四个基本功能:

  1. 能够实时获取kubernetes上的事件信息
  2. 能够对异常事件做实时报警通知
  3. 能够对事件做更持久的保留以便问题追溯
  4. 能够对保存的事件进行查询

这些功能听起来都停合理的,而且kubernetes.io里有一篇文章Events in Stackdriver也讲到了事件的存储。

它提到:“事件作为kubernetes的一个对象资源,有助于排错,但大量的事件如果都存储在etcd中,会带来较大的性能与容量压力,所以etcd中默认只保存最近1小时的。因此需要一个第三方的工具来更持久的保存它们。”

具体实现而言,就是对于1.7+版本,在Google Kubernetes Engine上启用了cloud logging后,默认会在集群内部署一个event-exporter,它将使用最低优先级且尽可能少的资源(通常0.1核的CPU和0.1G的内存)。

听起来

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值