相当于Kubectl的Python Kubernetes客户端描述pod | grep活动

时间:2020-04-06 14:39:59

标签: python kubernetes kubernetes-python-client

我正在为AWS上的自托管kubernetes集群创建自定义监视脚本。在所有其他工具中,Python客户端对我很感兴趣。我有一个关于pod及其状态的字典。现在,我要迭代dict.keys(基本上是其中的pod)来从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

我浏览了整个网络,只能找到与名称空间相关的示例,而不能找到与各个Pod相关的示例。

请帮助我通过Python客户端获取此数据。在此先感谢!

1 个答案:

答案 0 :(得分:1)

字段选择器可以解决问题,使用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)