gpt4 book ai didi

作业失败后 Kubernetes pod 消失

转载 作者:行者123 更新时间:2023-12-02 11:29:41 26 4
gpt4 key购买 nike

我正在通过 cron 运行 Kubernetes 作业。在某些情况下,作业可能会失败,我希望它们重新启动。我正在安排这样的工作:
kubectl run collector-60053 --schedule=30 10 * * * * --image=gcr.io/myimage/collector --restart=OnFailure --command node collector.js
我遇到了一个问题,其中一些作业正在运行并失败,但相关联的 pod 正在消失,所以我无法查看日志并且它们没有重新启动。

例如:

$ kubectl get jobs | grep 60053
collector-60053-1546943400 1 0 1h
$ kubectl get pods -a | grep 60053
$ // nothing returned

这是在运行 1.10.9-gke.5 的 Google Cloud Platform 上

任何帮助将非常感激!

编辑:

我发现了更多信息。我的 GCP 集群上有自动缩放设置。我注意到当服务器被移除时,pods(以及它们的元数据)也会被移除。这是预期的行为吗?不幸的是,这让我无法轻松查看 pod 日志。

我的理论是,当 pod 出现故障时,CrashLoopBackOff 会启动并最终自动缩放决定不再需要该节点(它不会将 pod 视为事件工作负载)。此时,节点消失了,Pod 也消失了。我不认为这是 Restart OnFailure 的预期行为,但我基本上通过密切观察目睹了这一点。

最佳答案

在深入研究这个问题之后,我对我的情况有所了解。根据 issue 54870在 Kubernetes 存储库上,当设置为 Restart=OnFailure 时,作业存在一些问题。

我已将配置更改为使用 Restart=Never 并为作业设置 backoffLimit。即使重新启动设置为从不,在我使用从不重新启动的测试中,Kubernetes 实际上会重新启动 pod 直至达到 backoffLimit 设置,并保留错误 pod 以供检查。

关于作业失败后 Kubernetes pod 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54091659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com