39.2. Cron ジョブの作成
Cron ジョブの設定は以下の主な部分で構成されます。
- cron 形式で指定されるスケジュール。
- 次のジョブの作成時に使用されるジョブテンプレート。
- ジョブを開始するためのオプションの期限 (秒単位)(何らかの理由によりスケジュールされた時間が経過する場合)。ジョブの実行が行われない場合、ジョブの失敗としてカウントされます。これが指定されない場合は期間が設定されません。
ConcurrencyPolicy
: オプションの同時実行ポリシー。Cron ジョブ内での同時実行ジョブを処理する方法を指定します。以下の同時実行ポリシーの 1 つのみを指定できます。 これが指定されない場合、同時実行を許可するようにデフォルト設定されます。-
Allow
: Cron ジョブを同時に実行できます。 -
Forbid
: 同時実行を禁止し、直前の実行が終了していない場合は次の実行を省略します。 -
Replace
: 同時に実行されているジョブを取り消し、これを新規ジョブに置き換えます。
-
-
Cron ジョブの停止を許可するオプションのフラグ。これが
true
に設定されている場合、後続のすべての実行が停止されます。
以下は、CronJob
リソースのサンプルです。
apiVersion: batch/v1beta1 kind: CronJob metadata: name: pi spec: schedule: "*/1 * * * *" 1 jobTemplate: 2 spec: template: metadata: labels: 3 parent: "cronjobpi" spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: OnFailure 4
- ジョブのスケジュールです。この例では、ジョブは 1 分ごとに実行されます。
- ジョブテンプレートです。これは、ジョブの例と同様です。
- この Cron ジョブで生成されるジョブのラベルを設定します。
- Pod の再起動ポリシー。これは、ジョブコントローラーには適用されません。詳細は、「既知の問題および制限」を参照してください。
すべての cron ジョブ schedule
の時間は、ジョブが実行されるマスターのタイムゾーンをベースとします。
oc run
を使用して単一コマンドから cron ジョブを作成し、起動することもできます。以下のコマンドは直前の例で指定されている同じ cron ジョブを作成し、これを起動します。
$ oc run pi --image=perl --schedule='*/1 * * * *' \ --restart=OnFailure --labels parent="cronjobpi" \ --command -- perl -Mbignum=bpi -wle 'print bpi(2000)'
oc run
で、--schedule
オプションは cron 形式のスケジュールを受け入れます。
Cron ジョブの作成時に、oc run
は Never
または OnFailure
再起動ポリシー (--restart
) のみをサポートします。
必要なくなった Cron ジョブを削除します。
$ oc delete cronjob/<cron_job_name>
これを実行することで、不要なアーティファクトの生成を防げます。