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

如何查询Kubernetes中被删除的资源、操作人及对应日志的查看与收集方法

Kubernetes 已删除资源及操作人查询方案

查询核心依据:kube-apiserver 审计日志

Kubernetes 所有资源的操作请求都会经过 kube-apiserver 处理,只要集群开启了审计日志,所有删除操作的全链路信息都会被留存,是查询删除操作的唯一可靠来源。

前置检查:确认集群审计日志开启状态

执行以下命令检查 kube-apiserver 是否配置了审计策略:
kubectl get pods -n kube-system -l component=kube-apiserver -o yaml | grep audit-policy-file
如果有返回配置路径说明审计功能已开启,无返回则需要先配置审计策略后才能查询历史删除操作。

审计日志查询示例

以查询 default 命名空间下名为 demo 的 Deployment 删除记录为例:
如果审计日志默认落盘在节点的 /var/log/kube-apiserver/audit.log 路径,可直接用以下命令过滤:
grep '"verb":"delete"' /var/log/kube-apiserver/audit.log | grep '"name":"demo"' | grep '"namespace":"default"' | grep '"resource":"deployments"'
返回结果中你可以直接获取以下核心信息:

  • user.username:执行删除操作的用户身份
  • sourceIPs:操作请求的来源IP
  • requestReceivedTimestamp:删除操作的执行时间
    如果使用的是云厂商托管K8s集群,审计日志默认会上报到对应厂商的日志服务,直接在日志控制台按删除动作、资源类型、资源名称、命名空间过滤即可。

审计日志收集持久化方案

常用的审计日志长期留存方案有三类:

  • 本地落盘轮转:在 kube-apiserver 启动参数中配置--audit-log-path指定本地存储路径,同时搭配--audit-log-maxage、--audit-log-maxbackup、--audit-log-maxsize参数控制日志轮转规则,适合小型自用集群使用
  • 集群日志组件采集:通过 DaemonSet 部署 Filebeat、Fluentd 等日志采集工具,将节点上的审计日志统一采集到 Elasticsearch、Loki 等存储组件,支持长期存储和多维度检索,适合中大规模集群使用
  • 托管集群自动上报:云厂商托管K8s集群大多支持一键开启审计日志自动上报功能,无需自行部署采集组件,运维成本最低

最小可用审计策略示例

如果集群还未开启审计,可以使用以下配置捕获所有核心资源的删除操作:

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: RequestResponse
  verbs: ["delete", "deletecollection"]
  resources:
  - group: apps
    resources: ["deployments", "statefulsets", "daemonsets"]
  - group: ""
    resources: ["pods", "services", "configmaps", "secrets"]

内容的提问来源于stack exchange,提问作者j_shoon24

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:45:03