我想通过 python 客户端获取日志并描述我在 kubernetes 中的 pod。在kubernetes集群中我们可以使用
kubectl logs <NAME_OF_POD>
kubectl describe pods <NAME_OF_pod>
但是我想在 kubernetes 的 python 客户端中使用这些命令。我该怎么办?
原文由 check nova 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想通过 python 客户端获取日志并描述我在 kubernetes 中的 pod。在kubernetes集群中我们可以使用
kubectl logs <NAME_OF_POD>
kubectl describe pods <NAME_OF_pod>
但是我想在 kubernetes 的 python 客户端中使用这些命令。我该怎么办?
原文由 check nova 发布,翻译遵循 CC BY-SA 4.0 许可协议
这些答案都没有返回命名空间 pod 的事件,这是在运行时默认给出的 kubectl describe
。要获取给定 pod 的命名空间事件,请运行:
from kubernetes import client, config
config.load_kube_config()
v1 = client.CoreV1Api()
out = kube.core_api.list_namespaced_event(namespace, field_selector=f'involvedObject.name={pod_name}')
其中 namespace
是感兴趣的命名空间, pod_name
是您感兴趣的 pod。
当生成一个 pod 并为用户提供一个关于 pod 当前状况的合理状态报告时,我需要这个,以及调试 pod 的状态(如果它未能超出“待处理”)。
原文由 Alex Kaszynski 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答879 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
您可以使用以下代码读取 Pod 的日志:
上面的代码非常适合获取 pod 的日志。
要获得
kubectl describe pod
的输出,提供的所有信息都在read_namespaced_pod
函数中。它具有您需要的所有信息,并且您可以按需要的任何方式使用这些信息。您可以编辑以上代码并使用read_namespaced_pod
代替read_namespaced_pod_log
来获取信息。