首页 > 解决方案 > 附加卷超时时,k8s pod 无法重试

问题描述

有时我要启动一堆工作,每个工作都安装一个 pvc。由于我们的资源有限,一些 pod 不到一分钟就无法挂载。

无法为 pod“package-job-120348968617328640-5gv7s_vname(b059856a-ecfa-11ea-a226-fa163e205547)”挂载卷:超时已过期等待卷为 pod“vname”/“package-job-120348968617328640-5gv7s 附加或挂载” ”。卸载卷列表=[tmp]。未附加卷列表=[log tmp]。

它肯定会不断重试。但它永远不会成功(事件时代就像44s (x11 over 23m))。但是如果我删除这个 pod,这个作业会创建一个新的 pod 并且它会完成。

那么为什么会这样呢?pod 不应该自动重试挂载而不需要手动干预吗?如果这无法避免,是否有一种解决方法可以自动删除 Init Phase 超过 2 分钟的 Pod?

结论

它实际上是我的云提供商在某些节点卡住(由网络问题引起)中提供的附加脚本。因此,如果其他人遇到这些问题,也许检查附加磁盘的存储插件是个好主意。

标签: kuberneteskubernetes-podkubernetes-pvc

解决方案


那么为什么会这样呢?pod 不应该自动重试挂载而不需要手动干预吗?如果这无法避免,是否有一种解决方法可以自动删除 Init Phase 超过 2 分钟的 Pod?

这可能有多种原因。如果有的话,你在 Pod 上是否有任何事件kubectl describe pod <podname>?你会重复使用另一个 Pod 之前使用的 PVC 吗?

我猜您使用的是由多个数据中心(可用区)组成的区域集群,并且您的 PVC 位于一个 AZ 中,但您的 Pod 计划在不同的 AZ 中运行?在这种情况下,Pod 将永远无法挂载该卷,因为它位于另一个 AZ。


推荐阅读