kubectl events 是什么
事件是集群的自动记录:调度失败、镜像拉取、探针失败、资源压力、容器被杀,几乎每一个异常都会写成一条事件。它是排障时最先该看的东西——往往事件里的 Message 已经直接给出了方向。最大的限制是保留时间有限,控制器事件通常只保留约一小时,排障慢一步线索就消失了。
基本信息
| 查看方式 | kubectl get events 加排序参数,或使用新版 kubectl events 命令 |
|---|---|
| 范围控制 | -A 表示全集群,--field-selector 可聚焦单个对象 |
| 类型分组 | 分为 Normal 与 Warning,先看 Warning |
| 跟随模式 | 新版命令支持 --for 持续观察某个对象的事件 |
| 保留期 | 控制器事件默认保留时间很短,过期即无法再查 |
典型使用场景
- Pod 起不来:看是调度失败、拉取失败还是探针失败
- 发布异常:观察滚动过程中是否有实例被反复重建
- 节点问题:查看节点资源压力与驱逐相关事件
- 排查时快照:把当前事件导出留档,供事后复盘分析
- 日常巡检:按时间排序看最近的告警类事件,发现潜在问题
使用示例
使用示例
kubectl get events -A --sort-by=.lastTimestamp | tail -30
# 先看最近发生的事件,Warning 类型优先关注
kubectl get events --field-selector involvedObject.name=web-1 -n dev
kubectl events --for pod/web-1 -n dev # 持续观察某个对象的事件
kubectl get events -n dev -o yaml > events.yaml # 导出留档,防止过期丢失常见事件与含义
| 事件原因 | 含义 | 常见处置 |
|---|---|---|
| FailedScheduling | 调度失败,节点资源不足或约束不满足 | 看具体约束信息并调整资源 |
| FailedMount | 卷挂载失败 | 检查存储类与卷声明状态 |
| BackOff 拉取失败 | 镜像拉取重试中 | 核对镜像地址与仓库凭证 |
| Unhealthy | 探针判定失败 | 复现探测命令并核对探针配置 |
| OOMKilling | 容器内存超限被杀死 | 确认限制值与实际峰值用量 |
事件相当于应急快照:重要故障发生时先把事件导出留档,事后复盘时就不必靠回忆或复现来还原现场。
事件默认只保留很短时间,排障拖得太久关键线索就会消失。遇到异常第一时间执行一次事件导出,成本极低收益很高。