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

如何在Kubernetes中列出指定Cassandra Pod的所有kubectl exec会话信息?

列出指定Pod的exec会话及相关信息的方法

下面是几种可行的方式,根据你的集群配置选择:

1. 查看kube-apiserver日志

所有kubectl exec请求都会经过kube-apiserver,日志里会记录关键信息:

  • 先找到kube-system命名空间下的kube-apiserver Pod:
    kubectl get pods -n kube-system | grep kube-apiserver
    
  • 过滤目标Pod的exec相关日志:
    kubectl logs -n kube-system <kube-apiserver-pod-name> | grep -E "exec.*<target-pod-name>"
    
    日志条目会包含发起请求的用户(user字段)、来源IP(sourceIPs)、执行的命令(command)以及请求时间,能帮你定位是谁发起的会话。

2. 利用Kubernetes审计日志(若已开启)

如果集群开启了审计日志功能,能获取更完整的exec请求细节,审计日志会记录请求的完整生命周期,包括发起者身份、操作内容、资源信息等:

  • 若审计日志存储在集群内的日志系统中,直接查询verbs: create且resource: pods/exec的条目,并过滤目标Pod的名称。
  • 如果审计日志输出到kube-apiserver的标准输出,可从kube-apiserver日志中提取审计相关的JSON条目(需集群内已安装jq工具):
    kubectl logs -n kube-system <kube-apiserver-pod-name> | jq 'select(.objectRef.name == "<target-pod-name>" and .verb == "create" and .objectRef.subresource == "exec")'
    

3. 直接在目标Pod内查看进程

进入目标Pod查看进程树,能直观看到当前活跃的cqlsh会话及相关进程:

  • 先exec进入Pod:
    kubectl exec -it <target-pod-name> -- bash
    
  • 查看进程树:
    ps auxf
    
    你会看到所有运行的cqlsh进程,以及它们的父进程(通常对应exec会话的shell进程),还能看到进程的启动时间、运行用户等信息。若需要更结构化的进程信息,可执行:
    ps -eo pid,ppid,user,cmd,lstart
    
    该命令会列出进程ID、父ID、用户、命令和启动时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:31:00