是否可以在重启前获取pod运行的节点的详细信息?

问题描述 投票:0回答:3

我正在运行一个包含 20 多个节点的 kubernetes 集群。命名空间中的一个 pod 重新启动。 Pod 由于 OOM 被终止,退出代码为 137,并按预期再次重新启动。但想知道 pod 之前运行在哪个节点。我们可以在哪里检查日志中的信息?像tiller、kubelet、kubeproxy等...

kubernetes kubectl
3个回答
1
投票

但是想知道 pod 之前运行在哪个节点。

如果使用

ExitCode: 137
杀死 pod,例如当它使用的内存超过其限制时,它将在同一节点上重新启动 - 而不是重新调度。为此,请检查您的指标或容器日志。

但是 Pod 也可能由于过度提交节点而被杀死,请参见例如如何排查 Kubernetes OOM 和 CPU Throttle 问题


0
投票

您可以使用下面的

Promql
查询从哪个 pod 重新启动时获取
nodename
pod name
namespace

sum(kube_pod_info * on(pod, namespace) group_left(node) 
sum(changes(kube_pod_container_status_restarts_total[5m])) by (namespace, pod) > 0) by (node, pod, namespace)

0
投票

如果您正在运行 Prometheus,您可以使用以下查询返回节点名称和其他 Pod 详细信息。

kube_pod_info{pod="<pod-name>", namespace="<namespace>"}[1h]
© www.soinside.com 2019 - 2024. All rights reserved.