You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes资源删除溯源:如何定位Deployment删除操作者?

定位Kubernetes资源删除操作者的方法

因为kubectl get events仅能查看当前命名空间下的近期事件,资源被删除后相关事件可能已过期或被清理,所以可以通过以下几种方式排查:

1. 检查kube-apiserver审计日志

Kubernetes的审计日志会完整记录所有API操作(包括资源删除),是最可靠的排查途径:

  • 确认kube-apiserver是否开启审计:查看apiserver启动参数是否包含--audit-policy-file和--audit-log-path(或--audit-webhook-config-file)。
  • 搜索审计日志中的关键内容:
    • 过滤prometheus命名空间下Deployment的删除操作:
      grep -E '"namespace":"prometheus","verb":"delete","resource":"deployments"' /var/log/kube-apiserver-audit.log
      
    • 匹配到的日志条目里,user字段会显示操作发起者(可能是用户名、ServiceAccount或kubelet等身份)。

2. 从etcd存储查询历史版本

etcd默认保留资源的历史修订版本(默认保留100个,可通过--max-revisions调整),可通过etcdctl回溯删除操作:

  • 获取etcd的访问凭证(通常在/etc/kubernetes/pki/etcd/目录下)。
  • 先查找目标Deployment的历史修订范围:
    etcdctl get --prefix /registry/deployments/prometheus/ --keys-only --rev=latest
    
  • 逐步降低rev值,直到找到资源存在的最后版本,再查看该版本的元数据:
    etcdctl get /registry/deployments/prometheus/<deployment-name> --rev=<target-rev> -o json
    
    输出的metadata.managedFields字段中会记录最后修改/删除操作的发起者信息。

3. 第三方监控工具

  • Falco:轻量级运行时安全工具,可实时监控Kubernetes资源变更事件,配置规则后能直接记录删除Deployment的操作者身份并输出告警。
  • kube-audit-webhook:将kube-apiserver的审计日志转发到Elasticsearch、Loki等存储系统,通过可视化界面(如Kibana、Grafana)快速检索删除操作的发起者。

内容的提问来源于stack exchange,提问作者Yassen Fouad Anis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:02:02