7章Batch Job(バッチジョブ)
Batch Job(バッチジョブ)パターンは、分離された仕事のアトミックな単位を管理するのに適しています。このパターンは、分散環境において一時的なPodを信頼性高くその完了まで実行する方法であるJobリソースを基礎としています。
7.1 問題
Kubernetesにおいてコンテナを管理し実行する基本単位はPodです。さまざまな特徴に対応して、さまざまなPod作成方法があります。
- ベアPod(Bare Pod)
- コンテナを動かすために手動でPodを作成できます。しかし、このようなPodが動作しているノードで障害が起きると、そのPodは再起動されません。この方法でPodを動かすのは、開発あるいはテスト目的以外では推奨されません。この仕組みは、管理されていないPod(unmanaged pods)あるいは裸のPod(naked pods)とも呼ばれます。
- ReplicaSet
- このコントローラは、継続的に動作することが期待されるPod(Webサーバコンテナを動かすなど)のライフサイクルを作成し、管理するために使われます。ReplicaSetはある時点でPodの安定したレプリカが動作しているようにし、同じPodが一定の数使用可能であることを保証するものです。ReplicaSetについては「11章 Stateless Service(ステートレスサービス)」で詳しく説明します。
- DaemonSet
- このコントローラは、各ノードでPodを1つ実行し、監視、ログアグリゲーション、ストレージコンテナなどのプラットフォームの機能を管理するのに使われます。詳しい説明は「9章 Daemon Service(デーモンサービス)」を参照して下さい。
これらのPodで共通しているのは、一定の時間が経過した後に停止することを意図していない、長期にわたって動作するプロセスを表していることです。しかし、事前に定義された仕事の有限の単位を信頼性高く実行し、その後コンテナをシャットダウンする必要があるケースもあります。このようなタスクに対してKubernetesは、Jobリソースを提供しています。 ...