【ジョブ(クーバネティス)】

Job(Kubernetes) とは?

💡 やり遂げたら潔く消える、Kubernetesの一期一会バッチ担当
📌 このページのポイント
Job: 完了するまでPodを実行・再試行 Job Pod 実行中 完了(Completed) 失敗(Failed) 再試行(backoffLimit回数まで) 完了後もPodは残る → ログ確認が可能 ttlSecondsAfterFinishedで自動削除 並列実行も可能 parallelism: 同時実行数 completions: 合計完了数
JobはPodが正常完了するまで実行・再試行を管理する
ひよこ ひよこ

KubernetesのJobって何?Deploymentとどう違うの?

ペンギン先生 ペンギン先生

Deploymentは「常に3台動かし続けてね」って感じで、終わらせないことが目的だよ。JobはPodが正常に終了することを目的にしたリソースで、「このバッチ処理を1回やって終わり」ってときに使うんだ。

ひよこ ひよこ

具体的にどんな処理に使うの?

ペンギン先生 ペンギン先生

データベースマイグレーション、ファイルの一括変換、メール一斉送信、機械学習のモデル学習なんかに使われるよ。「定期的に」じゃなく「今すぐ1回」実行したいときがJobの出番だね。

ひよこ ひよこ

途中で失敗したらどうなるの?

ペンギン先生 ペンギン先生

backoffLimitで指定した回数まで自動で再試行してくれるよ。デフォルトは6回。全部失敗したらJobはFailedになって止まる。成功するまであきらめないけど、無限ループにもならないようになってるんだ。

ひよこ ひよこ

並列でいくつも同時に動かすこともできるの?

ペンギン先生 ペンギン先生

できるよ!parallelismで同時実行数を、completionsで合計何回成功すればいいかを指定できる。たとえば「100件のデータを10並列で処理する」みたいな使い方もできるんだ。

ひよこ ひよこ

終わったPodはすぐ消えるの?

ペンギン先生 ペンギン先生

完了したPodはすぐには消えないよ。ログを確認できるようにそのまま残るんだ。ただしttlSecondsAfterFinishedを設定すると、完了後に指定秒数で自動削除してくれる。ログ確認とリソース節約を両立できるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Job(Kubernetes)」って出てきたら「一回やり遂げたら終わるバッチ処理の管理役」と思えればだいたいOK!
📖 おまけ:英語の意味
「Job」 = 仕事・タスク
💬 コンピュータ用語の「ジョブ」(実行単位の仕事)そのまま。一定の処理をこなして終わる、という意味でJobと名付けられたんだよ。
← 用語集にもどる