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

如何定位EKS集群中读写EFS及PVC的Pod?

定位EKS集群中消耗EFS读写的Pod及写入PVC的Pod

方法一:通过EFS访问日志关联到具体Pod

  • 先开启EFS的访问日志:用AWS控制台或者aws efs put-file-system-policy命令配置,日志会输出到CloudWatch Logs,每条日志包含客户端IP、操作类型、访问的文件路径等信息。
  • 关联EFS日志的客户端IP到EKS节点:执行kubectl get pods -o wide,获取每个Pod所在节点的IP及Pod自身IP。由于EFS挂载由节点上的客户端发起,需进一步追踪节点进程:
    • 登录目标节点,运行mount | grep efs找到EFS挂载路径。
    • 用lsof +D <挂载点路径>列出所有访问该挂载点的进程,再通过crictl ps(containerd环境)或docker ps找到进程对应的Pod ID,最终关联到Pod名称。

方法二:用K8s监控工具直接追踪PVC读写

  • 部署Prometheus+Grafana,结合kubelet内置指标:kubelet会暴露volume_stats_used_bytes、volume_stats_writes_total等指标,这些指标直接关联PVC和对应的Pod,在Grafana中创建面板即可筛选出读写量高的Pod。
  • 直接进入Pod排查:对可疑Pod执行kubectl exec <pod-name> -- df -h,查看挂载的EFS PVC使用情况;若Pod内装有iotop工具,可实时查看进程的IO读写数据。

方法三:借助EFS CSI驱动的增强监控

如果使用AWS官方EFS CSI驱动,可开启驱动的指标收集:

  • 部署CSI驱动时,给控制器和节点插件的启动命令添加--metrics-addr=:9100参数。
  • 用Prometheus抓取这些指标,其中efs_csi_node_volume_operations_total等指标会记录每个Pod对应的EFS操作次数和字节数,可直接定位耗流量的Pod。

方法四:实时追踪写入PVC的Pod

  • 用inotifywait实时监控:在节点的EFS挂载点执行inotifywait -m -r -e create,modify <挂载点>,实时捕捉文件写入操作,再通过lsof关联到对应的Pod。
  • 开启K8s审计日志:开启后筛选与PVC挂载、写入相关的API操作,虽无法直接获取IO量,但能快速定位使用目标PVC的Pod。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:35:15