如何通过 API 获取与 Pod 关联的事件?
How do I get Events associated with a Pod via the API?
当我执行 kubectl describe <pod>
时,底部有一个 "Events" 部分,显示与该 pod 相关的事件。例如,原因为 "failedScheduling"、消息为 "Failed for reason PodFitsResources and possibly others"
的事件
如何查询 API 到 return 的事件列表?
如果我调用 /api/v1/namespaces/<ns>/pods/<pod_name>
,它不会 return 任何事件。如果我尝试 /api/v1/events
端点,我可以指定一个 labelSelector
参数,但是 pod 的名称不是事件的标签,尽管它在 object.involvedObject.name
字段中。
我可以请求整个事件流并在客户端过滤掉我感兴趣的几个事件,但这似乎有点过分了。 kubectl
能够做到,所以我想一定有一些方法是我想念的。
谢谢。
我认为事件支持涉及对象种类和名称的字段选择器
您还可以将 kubectl 的详细级别提高到 8,以查看网络跟踪以查看它在做什么
如果您仍然想知道 kubectl
如何通过 describe
命令获取事件,请查看以下内容:
如果您看到发生了什么,他们首先获取所请求资源的详细信息(请参阅 https://github.com/kubernetes/kubernetes/blob/b6a0718858876bbf8cedaeeb47e6de7e650a6c5b/pkg/kubectl/describe/versioned/describe.go#L235 ),然后他们从该名称空间获取所有事件并过滤掉所请求资源的事件。见同link.
中的第242行
所以他们没有使用其他一些未记录的 API 或其他方式,你认为矫枉过正的是他们正在做的事情。
当我执行 kubectl describe <pod>
时,底部有一个 "Events" 部分,显示与该 pod 相关的事件。例如,原因为 "failedScheduling"、消息为 "Failed for reason PodFitsResources and possibly others"
如何查询 API 到 return 的事件列表?
如果我调用 /api/v1/namespaces/<ns>/pods/<pod_name>
,它不会 return 任何事件。如果我尝试 /api/v1/events
端点,我可以指定一个 labelSelector
参数,但是 pod 的名称不是事件的标签,尽管它在 object.involvedObject.name
字段中。
我可以请求整个事件流并在客户端过滤掉我感兴趣的几个事件,但这似乎有点过分了。 kubectl
能够做到,所以我想一定有一些方法是我想念的。
谢谢。
我认为事件支持涉及对象种类和名称的字段选择器
您还可以将 kubectl 的详细级别提高到 8,以查看网络跟踪以查看它在做什么
如果您仍然想知道 kubectl
如何通过 describe
命令获取事件,请查看以下内容:
如果您看到发生了什么,他们首先获取所请求资源的详细信息(请参阅 https://github.com/kubernetes/kubernetes/blob/b6a0718858876bbf8cedaeeb47e6de7e650a6c5b/pkg/kubectl/describe/versioned/describe.go#L235 ),然后他们从该名称空间获取所有事件并过滤掉所请求资源的事件。见同link.
中的第242行所以他们没有使用其他一些未记录的 API 或其他方式,你认为矫枉过正的是他们正在做的事情。