第12章. 仕事
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
これまでは、データベースやウェブアプリケーションなど、長時間稼働するプロセスに焦点を当ててきた。これらのタイプのワークロードは、アップグレードされるかサービスが不要になるまで実行される。Kubernetesクラスタ上で実行されるワークロードの大部分は長時間実行されるプロセスだが、短時間の単発タスクを実行する必要があることも多い。Jobオブジェクトは、このようなタイプのタスクを処理するために作られている。
ジョブは、正常終了するまで(インスタンスンスンスンス0が出力されるまで)実行されるPodを作成する。対照的に、通常のPodは終了コードに関係なく継続的に再起動する。ジョブは、データベースの移行やバッチジョブなど、一度だけ実行したい場合に便利です。通常のPodとして実行した場合、データベース移行タスクはループして実行され、終了するたびにデータベースを再投入し続けることになる。
この章では、Kubernetesが提供する最も一般的なジョブパターンを探る。また、これらのパターンを実際のシナリオで活用する方法も紹介する。
ジョブ・オブジェクト
ジョブオブジェクトは、ジョブ仕様のテンプレートで定義されたPodの作成と管理を担当する。 これらのPodは一般的に、正常に完了するまで実行される。 ジョブオブジェクトは多数のPodを並列実行する座標を持つ。
Podが正常に終了する前に失敗した場合、ジョブコントローラーはジョブ仕様のPodテンプレートに基づいて新しいPodを作成する。Podはスケジューリングされなければならないため、スケジューラが必要なリソースを発見できない場合、ジョブが実行されない可能性がある。 また、分散システムの性質上、特定の障害シナリオにおいて、特定のタスクに対して重複したPodが作成される可能性も少なからずある。
仕事のパターン
ジョブは、ワークアイテムが1つまたは複数のPodによって処理されるバッチ的なワークロードを管理するために設計されている。 デフォルトでは、各ジョブは1つのPodを正常終了するまで1回実行する。このジョブパターンは、ジョブの完了回数と並列実行するPodの数という2つの主要属性によって定義される。 完了まで1回実行」パターンの場合、completions とparallelism のパラメータは1 にセットされます。表12-1では、ジョブ構成のcompletions と parallelismの組み合わせに基づくジョブパターンを強調する。
| タイプ | 使用例 | 振る舞い | completions |
parallelism |
|---|---|---|---|---|
一発 |
データベースの移行 |
単一のPodが正常終了するまで一度だけ実行される。 |
1 |
1 |
並列固定コンプリート |
複数のPodが一連の作業を並行して処理する |
1つまたは複数のPodが、一定の完了カウントに達するまで1回または複数回実行される。 |
1+ |
1+ |
ワークキュー:並列ジョブ |
集中ワークキューから複数のPodを処理する |
1つまたは複数のPodが正常に終了するまで一度だけ実行される。 |
1 |
2+ |
ワンショット
ワンショットジョブは、1つのPodを成功裏に終了するまで実行する方法を提供する。 これは簡単な作業のように聞こえるかもしれないが、これを実行するにはいくつかの作業が必要だ。まず、Podを作成してKubernetes ...