如何在Google Kubernetes Engine中保留pod生命周期状态和事件?

时间:2018-05-22 20:32:51

标签: kubernetes google-kubernetes-engine

我们在1.9.6-gke.1上使用Google Kubernetes Engine,并且拥有一个包含多个节点池的集群,我们启用了自动扩展,因为它们中的节点包含连接的GPU(p100s)。

有时我们通过一个由于触发的自动缩放事件而启动的节点上的Kubernetes Pod一夜之间运行作业,并且许多小时后返回发现该pod已经消失,因为该pod已经终止,处于某种未知状态并且由于没有其他pod被安排到节点10分钟,因此它运行的节点已经耗尽并被删除。

也就是说,一旦节点消失,pod就会从Kubernetes日志和控制平面的角度消失,即运行kubectl get podskubectl describe pod之类的东西。我们希望能够在终止时知道这些吊舱的状态,例如。 '已完成,错误,OOM'。有没有办法让这个pod生命周期信息记录在Google Cloud Platform中,可能是通过Stackdriver或其他?如果它已经可用,我们会在哪里找到它?

请注意,这适用于pod运行的节点不再位于群集中的pod。

提前致谢!

1 个答案:

答案 0 :(得分:0)

Stackdriver Logging中有两个日志,您可以检查GKE日志。第一个称为“ GKE群集操作”,第二个称为“容器日志”。

“ GKE群集操作”日志将向您显示群集中发生的所有操作,例如吊舱创建,容器创建等...

“容器日志”将记录容器的操作。我使用给定here的yaml文件创建了一个简单的作业。运行完作业后,我进入“容器日志”,它成功显示了容器的输出。

在这种情况下,您应该能够从GCP中的“ GKE群集操作”日志中查看广告连播状态的日志。