10章Job

ここまでは、データベースやWebアプリケーションといった、長期間動き続けるプロセスに焦点を当てて見てきました。こういったワークロードは、アップグレードするか不要になるその時点まで動き続けます。Kubernetesクラスタ上のワークロードの多くは、こういった長期間動き続けるプロセスですが、1回限りの短い時間しか動かさない処理もあります。Jobオブジェクトは、そのような短時間だけ動かすタスクを扱うものです。

通常のPodは戻り値に関係なく動き続けますが、Jobは、処理が正常終了する(戻り値0での終了など)まで動くPodを作成します。Jobは、データベースマイグレーションやバッチ処理など、1度しか動かさない処理を実行するのに便利です。1度限りの処理に通常のPodを使うと、データベースマイグレーションタスクがループし、データベースに同じ処理を何度も行うことになってしまいます。

この章では、Kubernetesで実行できる一般的なJobのパターンを見ていきます。また、それらのパターンを実際のシナリオに当てはめて考えます。

10.1 Jobオブジェクト

Jobオブジェクトは、Jobの設定に書かれたテンプレートで定義されたPodの作成や管理を行います。これらのPodは、処理が成功するまで動き続けます。Jobオブジェクトは、複数のPodを並列に動かすための調整も行います。

処理が完了する前に失敗した場合、JobコントローラはJobの設定内のPodテンプレートを元に、新しいPodを作成します。Podは必ずどこかのノードに割り当てられる必要があるので、必要なリソースをスケジューラが見つけられない場合、すぐにJobが実行されない可能性もあります。また、分散システムの性質上、障害の発生時には、同じタスクを実行するPodが複数作られることもあり得ます。 ...

Get 入門 Kubernetes now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.