Kubernetes 如何通过API获取与Pod关联的事件?

Kubernetes 如何通过API获取与Pod关联的事件?,kubernetes,Kubernetes,当我执行kubectl description时,底部部分有一个“事件”部分,显示与该pod相关的事件。例如,一个原因为“failedScheduling”的事件,消息为“Failed For Reason PodFitsResources,可能还有其他原因” 如何查询API以返回该事件列表 如果我调用/api/v1/namespaces//pods/,它不会返回任何事件。如果我尝试使用/api/v1/events端点,我可以指定labelSelector参数,但是pod的名称不是事件的标签,尽

当我执行
kubectl description
时,底部部分有一个“事件”部分,显示与该pod相关的事件。例如,一个原因为“failedScheduling”的事件,消息为“Failed For Reason PodFitsResources,可能还有其他原因”

如何查询API以返回该事件列表

如果我调用
/api/v1/namespaces//pods/
,它不会返回任何事件。如果我尝试使用
/api/v1/events
端点,我可以指定
labelSelector
参数,但是pod的名称不是事件的标签,尽管它位于
对象.involvedObject.name
字段中

我可以请求整个事件流并过滤掉客户端让我感兴趣的少数事件,但这似乎有些过分
kubectl
能够做到这一点,所以我想一定有某种方式我错过了


谢谢。

我认为事件支持对涉及的对象种类和名称使用字段选择器


如果您仍然想知道
kubectl
如何与
descripe
命令一起获取事件,还可以将kubectl上的详细级别设置为8,以查看网络跟踪,查看它正在做什么

如果您看到发生了什么,那么他们首先获取所请求资源的详细信息(请参见),然后从该命名空间获取所有事件,并过滤掉所请求资源的事件。参见同一链接中的第242行


因此,他们没有使用其他未记录的API或其他方式,您认为过度使用的是他们正在做的事情

啊,太好了!我不知道查看所有API调用的详细技巧。这解开了谜团!仅供参考,如果您感到好奇,它正在调用
/v1/namespaces//events
端点,使用
fieldSelector
参数
involvedObject.name=,involvedObject.uid=
谢谢@JonM,这非常有用。