Last Updated on 2024-08-27 by likun.gong
event是什么
Kubernetes 中的组件状态发生变化,它就会产生一个事件,也就是 event 。在 event 中提供了集群的状态和健康信息,例如:
- 容器创建失败
- Pod 在不停的被调度
事件存储在 Etcd 中,默认只存储最近 1 个小时。如果需要持久化事件,可以通过 kubernetes-event-exporter 持久化到 ElasticSearch 中。
event的数据结构
平时使用比较多的查看 event 的方法
kubectl describe node <node_name>
kubectl describe pod <pod_name>
这里显示了常用的字段,如果需要查看完整的字段,可以
kubectl get events -ojson
过滤对应资源的时间,并且定制输出字段,例如可以查看 Pod 从创建到启动的各个时间,分析 Pod 启动的各个过程花费的时间,是否有优化的地方。例如可以在事件中查到容器启动时拉取镜像花费了多久时间。
kubectl -n cloud get events \
-o custom-columns=Time:.lastTimestamp,From:.source.component,Type:.type,Reason:.reason,Message:.message \
--field-selector involvedObject.name=temporary-pod,involvedObject.kind=Pod
应该关注哪些event
event 中包含了很多重要的信息,我们需要关注起来,并配置对应的告警。
- Failed events: 容器创建失败
- Eviction events: Pod 因为资源不够被驱逐
- Volume events: 卷挂载失败
- Scheduling events: 调度失败
- Unready node events: worker node 未就绪
发表回复