Kubernetes-jobs
提供:Dev Guides
Kubernetes-ジョブ
ジョブの主な機能は、1つ以上のポッドを作成し、ポッドの成功について追跡することです。 指定された数のポッドが正常に完了することを保証します。 指定された数のポッドの正常な実行が完了すると、ジョブは完了したと見なされます。
ジョブを作成する
ジョブを作成するには、次のコマンドを使用します-
apiVersion: v1
kind: Job ------------------------> 1
metadata:
name: py
spec:
template:
metadata
name: py -------> 2
spec:
containers:
- name: py ------------------------> 3
image: python----------> 4
command: ["python", "SUCCESS"]
restartPocliy: Never --------> 5
上記のコードでは、定義しています-
- * kind:Job→* kindをJobとして定義し、 kubectl に、使用されている yaml ファイルがジョブタイプポッドを作成することであることを伝えます。
- * Name:py→*これは使用しているテンプレートの名前であり、仕様はテンプレートを定義します。
- * name:py→コンテナ仕様で *py として名前を付けました。これは、そこから作成されるPodを識別するのに役立ちます。
- *画像:python→*ポッド内で実行されるコンテナーを作成するためにプルする画像。
- restartPolicy:Never→この画像再起動の条件はneverとして指定されます。これは、コンテナが強制終了またはfalseの場合、それ自体が再起動しないことを意味します。
次のコマンドを使用して、 py.yaml という名前で保存されたyamlでジョブを作成します。
$ kubectl create –f py.yaml
上記のコマンドはジョブを作成します。 ジョブのステータスを確認する場合は、次のコマンドを使用します。
$ kubectl describe jobs/py
上記のコマンドはジョブを作成します。 ジョブのステータスを確認する場合は、次のコマンドを使用します。
スケジュールされたジョブ
Kubernetesのスケジュール済みジョブは Cronetes を使用します。これはKubernetesジョブを受け取り、Kubernetesクラスターで起動します。
- ジョブをスケジュールすると、指定した時点でポッドが実行されます。
- 自動的に起動するパロディックジョブが作成されます。
注-スケジュールされたジョブの機能はバージョン1.4でサポートされており、betch/v2alpha 1 APIは、APIサーバーを起動しながら –runtime-config = batch/v2alpha1 を渡すことで有効になります。
ジョブを作成し、スケジュールされたジョブにするために使用したのと同じyamlを使用します。
apiVersion: v1
kind: Job
metadata:
name: py
spec:
schedule: h/30 * * * * ? -------------------> 1
template:
metadata
name: py
spec:
containers:
- name: py
image: python
args:
/bin/sh -------> 2
-c
ps –eaf ------------> 3
restartPocliy: OnFailure
上記のコードでは、定義しています-
- schedule:h/30 * * ?→ジョブが30分ごとに実行されるようにスケジュールするには。
- */bin/sh:*これは/bin/shでコンテナに入ります
- * ps –eaf→*マシン上でps -eafコマンドを実行し、コンテナー内の実行中のすべてのプロセスをリストします。
このスケジュールされたジョブの概念は、指定された時点で一連のタスクをビルドして実行し、プロセスを完了するときに役立ちます。