茂名市城市建设档案馆网站,实业+东莞网站建设,域名历史查询工具,江苏嘉瑞通建设有限公司网站引用另外一篇文章对k8s event的介绍
1.什么是kubernetes事件 Kubernetes Events 是一种 Kubernetes 资源对象#xff0c;记录了某个组件在某个时间做了某个动作#xff0c;用于展示集群内发生的情况#xff0c;当 Kubernetes 集群中资源状态发生变化时#xff0c;可以产生…引用另外一篇文章对k8s event的介绍
1.什么是kubernetes事件 Kubernetes Events 是一种 Kubernetes 资源对象记录了某个组件在某个时间做了某个动作用于展示集群内发生的情况当 Kubernetes 集群中资源状态发生变化时可以产生新的 event 。
Kubernetes 系统中的各个组件会将运行时发生的各种事件例如调度器做了什么决定某些 Pod 为什么被从节点中驱逐上报给 Kubernetes API Server 。Kubernetes API Server 将 event 存储在 Etcd 中为避免 Etcd 的磁盘空间被填满默认的保留策略是在最后一次的事件发生后删除 1 小时之前发生的事件。
可以通过kubectl describe $ResourceName或 kubectl get event 命令查看相关资源的事件信息或查看 Kubernetes 集群中发生了哪些事件默认情况下只会显示最近 1 小时内发生的事件。
2.为什么监控Kubernetes事件 事件监控可以弥补Kubernetes资源监控在实时性、准确性和场景上的欠缺。通过收集、监控事件实时监控集群的异常与问题。 Kubernetes平台中可能产生大量事件 kubernetes组件不提供事件相关的指标而且会自动清理事件(1小时)但有些事件的出现可能预示着对集群或节点可用性产生影响,因此需要对事件进行收集和监控。
3.如何采集Kubernetes事件 Kubernetes中的事件最终还是存储在etcd中默认情况下只保存1个小时由于etcd并不支持一些复杂的分析操作默认Kubernetes只提供了非常简单的过滤方式比如通过Reason、时间、类型等。同时这些事件只是被动的存在etcd中并不支持主动推送到其他系统通常只能手动的去查看。
而实际上我们对事件的使用需求非常高例如
对系统中的异常事件做实时告警例如Failed、Evicted、FailedMount、FailedScheduling等。 通常问题排查可能要去查找历史数据因此需要去查询更长时间范围的事件几天甚至几个月。 事件支持归类统计例如能够计算事件发生的趋势以及与上一时间段昨天/上周/发布前对比以便基于统计指标进行判断和决策。 支持不同的人员按照各种维度去做过滤、筛选。 支持自定义的订阅这些事件去做自定义的监控以便和公司内部的部署运维平台集成。 为了让大家更便捷的使用Kubernetes事件功能所以需要进行Kubernetes Event采集。
收集 Kubernetes 事件的解决方案 有多种解决方案可用于检索 Kubernetes 事件。让我们看看现成可用的项目。
**重点推荐前两种方案**kubernetes-event-exporter https://github.com/resmoio/kubernetes-event-exporter 事件导出器允许将经常错过的 Kubernetes 事件导出到各种输出以便它们可用于可观察性或警报目的。 事件导出器实现起来很简单但功能非常强大。一旦事件被记录它利用 Prometheus 客户端以 Prometheus 格式计数和报告事件。 Kspan https://github.com/weaveworks-experiments/kspan Kspan 是 Weaveworks 创建的一个项目它将 Kubernetes 事件转换为 OpenTelemetry Spans通过因果关系将它们连接起来并将它们组合成 traces。 Kspan 将与 Kubernetes API 交互以收集各种事件并将生成的跟踪转发到 OpenTelemetry 收集器。 Eventrouter 正如 Eventrouter 项目的 GitHub 页面所述“事件路由器充当 Kubernetes 系统中事件资源的活动观察者它接收这些事件并将它们推送到用户指定的接收器。这对于许多不同的目的很有用但最值得注意的是对在 Kubernetes 集群上运行的工作负载的长期行为分析。” Kubewatch Kubewatch 是一个 K8s 事件监视工具用于跟踪 Kubewatch 中的每个资源更改。它支持通知它将能够在 Slack、Hipchat、Webhook、Flock、SMTP 等中发布通知。 Sloop Sloop 监控 Kubernetes记录事件和资源状态变化的历史并提供可视化来帮助调试过去的事件。