【问题标题】:k8s pods not able to retry when attach volume timeout附加卷超时时,k8s pod 无法重试
【发布时间】:2020-09-02 09:31:20
【问题描述】:

有时我要启动一堆工作,每个工作都安装一个 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?

结论

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

【问题讨论】:

    标签: kubernetes kubernetes-pod kubernetes-pvc


    【解决方案1】:

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

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

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

    【讨论】:

    • 只有一个事件,我重用了 PVC,我检查了我们只有一个 AZ(我当然希望这是原因,但不是
    • 你使用什么样的存储系统?磁盘是否直接附加到节点上 - 以便其他节点上的 Pod 无法使用它们?
    • 感谢您的提示,下次出现此问题时,我将查看新的 Pod 是否会与旧的 Pod 调度到同一节点但仍然成功。
    • 还是两个 pod 同时使用同一个 PVC?如果您使用 accessMode ReadWriteOnce,则一次只能在一个节点上挂载一个卷。
    • 不,只有一个 pod。
    【解决方案2】:

    我遇到了同样的问题,即使卷附加到运行 pod 的同一节点。

    我 ssh 进入节点并重新启动 kubelet 然后它解决了问题。

    【讨论】:

      猜你喜欢
      • 2018-07-28
      • 2018-06-12
      • 2018-11-18
      • 2021-11-26
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2022-07-14
      相关资源
      最近更新 更多