具有单个 Pod 的 Kubernetes 作业与具有重启策略 OnFailure 的单个 Pod

Iva*_*hov 5 kubernetes google-kubernetes-engine

与仅具有重启策略 OnFailure 以在 Kubernetes 中可靠地执行一次的单个 Pod 相比,具有单个 Pod 的作业有什么好处?

正如尽管 RestartPolicy: Never 仍会不断重新创建 Job 中所述,在 Job 的情况下,如果容器返回非零状态,将无休止地创建一个新 Pod。这同样适用于单个 OnFailure Pod,只是这次没有创建新的 Pod,这更干净。

这两种方法的优缺点是什么?Pod 重启参数,比如重启延迟,或者重试次数可以控制在任何一种情况下吗?

Ale*_*son 3

不同之处在于,如果作业由于其 pod 所在的节点由于某种原因离线而未完成,则将创建一个新的 pod 并在不同的节点上运行。如果单个 Pod 由于其节点不可用而未完成,则不会将其重新调度到其他节点上。

  • 如果节点再次可用,单个 Pod 会发生什么情况?是否会重新执行? (2认同)
  • 一旦 Pod 被调度到一台机器,它将被分配给该机器,直到它完成或被删除。如果节点消失,则会开始超时,在超时结束时,分配给该节点的所有 pod 都将被删除。所以如果节点在超时之前回来,它会发现 Pod 仍然被分配并重新启动它。如果节点在超时后回来,它将根本找不到该 Pod。 (2认同)