如何检查Kubernetes pod是否因OOM或DEADLINE EXCEEDED而被杀死?

mklgxw1f  于 2023-11-17  发布在  Kubernetes
关注(0)|答案(3)|浏览(139)

我有一些以前运行过的pod,我认为它们被Kubernetes杀死了,因为OOM或DEADLINE EXCEEDED,什么是最可靠的方法来确认这一点?特别是如果pod不是最近的。

zy1mlcev

zy1mlcev1#

如果在输入kubectl get pods -a时pod仍然显示,则输入以下kubectl describe pod PODNAME并查看终止原因。输出将类似于以下内容(我提取了与此讨论相关的部分输出):

Containers:
  somename:
    Container ID: docker://5f0d9e4c8e0510189f5f209cb09de27b7b114032cc94db0130a9edca59560c11
    Image:      ubuntu:latest
    ...
    State:      Terminated
      Reason:       Completed
      Exit Code:    0

字符串
在示例输出中,我的pod的终止原因是Completed,但您将看到其他原因,如OOMKilled和其他原因。

fnatzsnv

fnatzsnv2#

如果pod已经被删除,你也可以检查kubernetes事件,看看发生了什么:

$ kubectl get events

LAST SEEN   FIRST SEEN   COUNT    NAME                                               KIND                      SUBOBJECT                                     TYPE      REASON                SOURCE    MESSAGE
59m         59m          1        my-pod-7477dc76c5-p49k4                            Pod                       spec.containers{my-service}                   Normal    Killing               kubelet   Killing container with id docker://my-service:Need to kill Pod

字符串

zour9fqk

zour9fqk3#

我遇到了类似的问题,我的pod被杀死,并立即删除。我滚动日志,但没有找到太多。要查看事件,pod已被删除,没有留下任何痕迹。
我所做的是在上面放一个手表,每隔1或2秒用命令在屏幕上捕捉事件-
watch -n2 "kubectl describe pod <pod_name>"的。
不确定这是否有帮助,但对我有效

相关问题