我正在为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客户端获取此数据。在此先感谢!
答案 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)