当我执行kubectl describe <pod>
时,底部有一个“事件”部分,显示与该窗格相关的事件。例如,一个包含Reason“failedScheduling”的事件,其中包含“因故障原因而无法获得原因的PodFitsResources”和/或其他原因
如何查询API以返回事件列表?
如果我拨打/api/v1/namespaces/<ns>/pods/<pod_name>
,则不会返回任何事件。如果我尝试/api/v1/events
端点,我可以指定labelSelector
参数,但是pod的名称不是Event的标签,尽管它位于object.involvedObject.name
字段中。 / p>
我可以请求整个事件流并过滤掉客户端感兴趣的几个事件,但这看起来有点过分。 kubectl
能够做到这一点,所以我认为必须有某种方式让我失踪。
感谢。
答案 0 :(得分:5)
我认为事件支持涉及对象种类和名称
的fieldSelector您还可以将kubectl上的详细级别调高至8,以查看网络跟踪以查看其正在执行的操作
答案 1 :(得分:0)
如果您仍然想知道kubectl
如何与describe
命令一起获取事件,请查看以下内容:
如果您看到发生了什么事,那就是他们首先获取所请求资源的详细信息(请参阅https://github.com/kubernetes/kubernetes/blob/b6a0718858876bbf8cedaeeb47e6de7e650a6c5b/pkg/kubectl/describe/versioned/describe.go#L235),然后他们从该名称空间获取所有事件,并过滤出所请求资源的事件。参见同一链接中的第242行。
因此,他们没有使用其他未公开的API或其他方式,您认为过大的是他们在做什么。