Python 相当于 kubectl describe pod 的 Kubernetes 客户端 | grep 事件

Python Kubernetes client equivalent of kubectl describe pod | grep Events

我正在为 AWS 上的自托管 kubernetes 集群创建自定义监控脚本。在所有其他工具中,我对 Python 客户端非常感兴趣。我有一本 pod 字典和它们的状态。现在我想迭代 dict.keys(基本上是 pods)来 从 kubelet 检查他们的事件。我正在寻找以下数据:

Events:
  Type     Reason       Age                    From                                                  Message
  ----     ------       ----                   ----                                                  -------
  Warning  FailedMount  20m (x25188 over 44d)  kubelet, ip-10-222-145-32.us-west-2.compute.internal  MountVolume.SetUp failed for volume "sag-license-volume" : configmap "my-licence" not found
  Warning  FailedMount  35s (x72078 over 44d)  kubelet, ip-10-222-155-32.us-west-2.compute.internal  (combined from similar events): MountVolume.SetUp failed for volume "my-license-volume" : configmap "my-license" not found

我查看了网络,只能找到与命名空间相关的示例,但找不到与个人相关的示例 pods。

请帮助我通过 Python 客户端获取此数据。提前致谢!

字段选择器成功了,list_namespaced_event 解决了这个问题。

field_selector='involvedObject.name='+'my_pod'
stream = watch.Watch().stream(v1.list_namespaced_event, "my_ns", field_selector=field_selector, timeout_seconds=1)
for event in stream:
    print(event['object'].message)