【クーロンジョブ(クーバネティス)】

CronJob(Kubernetes) とは?

💡 カレンダー通りに仕事を作り出す、Kubernetesのスケジューラー
📌 このページのポイント
CronJob: スケジュールに従ってJobを自動生成 CronJob schedule: "0 2 * * *" Job(昨日) Completed Job(今日) Completed Job(明日) Pending... 履歴の保持件数を制御 successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 1 同時実行ポリシー Allow / Forbid / Replace 前回実行が残っている場合
CronJobはスケジュールに従い自動でJobを生成・管理する
ひよこ ひよこ

CronJobって何?JobとCronJobの違いって何なの?

ペンギン先生 ペンギン先生

JobPodを「今すぐ1回だけ」実行する仕組みだよ。CronJobはJobを「毎日2時に」「毎週月曜に」みたいにスケジュールに従って自動で作り出す仕組みなんだ。CronJobがJobの上位版って感じだね。

ひよこ ひよこ

スケジュールはどうやって書くの?

ペンギン先生 ペンギン先生

cron形式で書くよ。たとえば「0 2 * * *」は「毎日2時0分」、「0 9 * * 1」は「毎週月曜9時」という意味。分・時・日・月・曜日の5フィールドで指定するんだ。

ひよこ ひよこ

前の実行が終わってないのに次の時刻になったらどうなるの?

ペンギン先生 ペンギン先生

concurrencyPolicyで制御できるよ。Allowなら同時実行OK、Forbidなら前のJobが終わるまで次をスキップ、Replaceなら前のJobを強制終了して新しいJobを起動する。バッチの性質に合わせて選べるんだ。

ひよこ ひよこ

実行履歴はたまっていかないの?

ペンギン先生 ペンギン先生

successfulJobsHistoryLimitとfailedJobsHistoryLimitで件数を制限できるよ。デフォルトは成功3件・失敗1件を保持する設定。古いJobは自動で削除されるから、リソースが無限に増えることはないよ。

ひよこ ひよこ

どんな用途に使われることが多いの?

ペンギン先生 ペンギン先生

夜間バッチ処理、定期レポート生成、データベースバックアップキャッシュのクリーニングなんかが代表的だよ。Linux環境でcrontabを使ってやっていたことをKubernetes上に移行するイメージだね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CronJob」って出てきたら「Kubernetes版の定期実行バッチ管理役」と思えればだいたいOK!
📖 おまけ:英語の意味
「CronJob」 = クロンジョブ
💬 Unix/Linuxの定期実行ツール「cron」と、タスクを表す「job」を組み合わせた名前だよ。cronはラテン語の「chronos(時間)」に由来するんだ。
← 用語集にもどる