kube-eventer
kube-eventer是由阿里开源的k8s离线事件收集器,可以将集群的事件离线到钉钉、SLS、EventBridge等系统,并提供不同等级的过滤条件,实现事件的实时采集、定向告警、异步归档
事件监控
在Kubernetes中,事件分为两种
- 一种是Warning事件,表示产生这个事件的状态转换是在非预期的状态之间产生的;
- 一种是Normal事件,表示期望到达的状态,和目前达到的状态是一致的。
用一个Pod的生命周期进行举例,当创建一个Pod的时候,首先Pod会进入Pending的状态,等待镜像的拉取,当镜像录取完毕并通过健康检查的时候,Pod的状态就变为Running。此时会生成Normal的事件。而如果在运行中,由于OOM或者其他原因造成Pod宕掉,进入Failed的状态,而这种状态是非预期的,那么此时会在Kubernetes中产生Warning的事件。
一个标准的Kubernetes事件有如下几个重要的属性。
- Namespace:产生事件的对象所在的命名空间。
- Kind:绑定事件的对象的类型,例如:Node、Pod、Namespace、Componenet等等。
- Timestamp:事件产生的时间等等。
- Reason:产生这个事件的原因。
- Message: 事件的具体描述
kube-eventer部署
使用webhook来发送告警事件
Webhook Sink支持根据事件的Kind、Reaso