开发者社区> 问答> 正文

工作失败后,Kubernetes pods 消失了

我通过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集群上有自动缩放设置。我注意到,当删除服务器时,pod也会被删除(以及它们的元数据)。这是预期的行为吗?不幸的是,这让我无法轻松查看pod日志。

我的理论是,当pod失败时,CrashLoopBackOff启动并最终自动缩放决定不再需要该节点(它不会将pod视为活动工作负载)。此时,节点就会消失,pod也会消失。我不认为这是使用Restart OnFailure的预期行为,但我通过仔细观察它基本上见证了这一点。

展开
收起
k8s小能手 2019-01-11 14:13:17 4096 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    获取工作的名称

    kubectl get jobs --watch
    找到最后一个预定作业的窗格

    pods=$(kubectl get pods --selector=job-name=nameofjob-xxxxx --output=jsonpath={.items..metadata.name})
    获取pod日志

    echo $pods
    kubectl logs $pods

    2019-07-17 23:25:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像