Kubernetes ジョブで各試行の期限/タイムアウト (backoffLimit) を設定するにはどうすればよいですか?

Kubernetes ジョブで各試行の期限/タイムアウト (backoffLimit) を設定するにはどうすればよいですか?

Kubernetes で何度か再試行したいジョブがあります。ジョブにはbackoffLimitactiveDeadlineSecondsセットを含めることができます。ここまでは順調です。

しかし、残念ながら後者の設定は前者の設定よりも優先されます。私のジョブは失敗するまで長時間ブロックされるため、新しいポッドでタスクを再試行する方法が欲しいです。それぞれ期限を設けて再試行してください。

たとえば、各試行の期限を 30 秒に設定して 5 回試行します。

Kubernetes ではそれが可能でしょうか?

答え1

Kubernetes ジョブで各試行の期限/タイムアウト (backoffLimit) を設定するにはどうすればよいですか?

...

Kubernetes ではそれが可能でしょうか?

K8s ではこれを行うことはできません。 内で使用しているスクリプトまたはイメージにロジックを実装する必要がありますpod

ドキュメントに書かれているようにジョブの終了とクリーンアップ それはあなたが言及したものです。

ジョブの は.spec.activeDeadlineSecondsよりも優先されることに注意してください。したがって、 で指定された時間制限に達すると、 にまだ達していなくても、.spec.backoffLimit1 つ以上の失敗したポッドを再試行しているジョブは追加のポッドをデプロイしません。activeDeadlineSecondsbackoffLimit

関連情報