k8s-eventer和bark联动
概述
本文主要介绍一下 kube-eventer 和 bark 的在 Kubernetes 事件告警的场景中的联合使用。
bark私有化部署
bark 是 IOS 上比较流行的消息组件,为了数据安全,可以选择私有化部署 bark 的服务端,可以参考 官方文档。
|
|
这里可以注意的是,不是非要公有云服务器才能实现的,只是 APP 端会有报错,但是消息还是照常推送的,如果是懒得做 https 等安全措施,直接在局域网内部署即可,另外 bark 在 APP 端还支持重置 key,后者恢复之前的 key,这样即使 Docker 部署的 bark server 被删除了,APP 端也可以恢复之前的 key。
k8s-eventer和bark
kube-eventer 是阿里开源的一个 Kubernetes 事件采集器,支持多种 sink 的输出方式,比如说 Kafka、ElasticSearch、Webhook 等等。我们这里主要是使用 Webhook 的方式来实现 bark 的推送,部署的方式参考 官方文档 即可,因为本文给的例子是对接 bark,这个在 kube-eventer 没有详细说明,这里做个介绍。对于 bark 在 kube-eventer 里可以理解成 general 的 webhook,主要是通过 HTTP 的方式来发送消息,关于对接 bark 主要还是通知模板的编写,下面是结合 bark Post 消息和 kube-eventer 的模板提供的例子。
|
|
下面就是具体的效果了。

另外如果有需要的话,还可以手动创建一个 Event 测试一下这个功能。
|
|
关于Event watch channel closed
issues#175,也记录过这个问题。
总结
笔者早年在前司也写过类似 Kubernetes 事件采集器,也是可以选择不同的 sink 把时间发送出去或者存储起来,年代有点久远了,且当时也没有开源。阿里开源的 kube-eventer 也很多年没有什么大的改动了,毕竟这并不是十分复杂的事情,主要还是对 Kubernetes 事件的处理和存储,当然也可以选择其他的存储方式,比如说 Kafka、ElasticSearch 等等。最后还是要考虑团队、公司使用的一些告警方式,是否需要私有化部署,是否需要公网入口等问题。本文就 kube-eventer 和 bark 的结合做了一个简单的介绍,当然也可以选择其他的告警方式,比如说钉钉、企业微信等,都是可以的。