第6章 CronJob [batch/v1]
- 説明
- CronJob は、単一の cron ジョブの設定を表します。
- タイプ
-
object
6.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。更新はできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| CronJobSpec は、ジョブの実行がどのようになり、実際にいつ実行されるかを記述します。 |
|
| CronJobStatus は、cron ジョブの現在の状態を表します。 |
6.1.1. .spec
- 説明
- CronJobSpec は、ジョブの実行がどのようになり、実際にいつ実行されるかを記述します。
- タイプ
-
object
- 必須
-
スケジュール
-
jobTemplate
-
プロパティー | 型 | 説明 |
---|---|---|
|
| ジョブの同時実行を処理する方法を指定します。有効な値は Allow (デフォルト)、Forbit、および Replace です。Allow: CronJob の同時実行を許可します。Forbid: 同時実行を禁止し、前の実行が終了していない場合は次の実行をスキップします。Replace: 同時実行をキャンセルし、新しいジョブに置き換えます。
有効な列挙値: |
|
| 保持する失敗した終了ジョブの数。値は負の値ではない整数にする必要があります。デフォルトは 1 です。 |
|
| JobTemplateSpec は、テンプレートから作成されたときにジョブが持つべきデータを記述します |
|
| Cron 形式のスケジュールについては、https://en.wikipedia.org/wiki/Cron を参照してください。 |
|
| ジョブを開始するためのオプションの期限 (秒単位)(何らかの理由によりスケジュールされた時間が経過する場合)。ジョブの実行が行われない場合、ジョブの失敗としてカウントされます。 |
|
| 保持する成功した終了済みジョブの数。値は負の値ではない整数にする必要があります。デフォルトは 3 です。 |
|
| このフラグは、後続の実行を一時停止するようにコントローラーに指示します。すでに開始されている実行には適用されません。デフォルトは false です。 |
|
|
指定されたスケジュールのタイムゾーン名については、https://en.wikipedia.org/wiki/List_of_tz_database_time_zones を参照してください。指定しない場合、デフォルトで kube-controller-manager プロセスのタイムゾーンが使用されます。有効なタイムゾーン名とタイムゾーンオフセットのセットは、CronJob の検証中および実行時にコントローラーマネージャーによって、システム全体のタイムゾーンデータベースから読み込まれます。システム全体のタイムゾーンデータベースが見つからない場合は、代わりにバンドル化されたバージョンのデータベースが使用されます。Cron ジョブの有効期間中またはホスト設定の変更によってタイムゾーン名が無効になると、コントローラーは新しいジョブの作成を停止し、理由が UnknownTimeZone のシステムイベントを作成します。詳細については、https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones を参照してください。これはベータフィールドであり、 |
6.1.2. .spec.jobTemplate
- 説明
- JobTemplateSpec は、テンプレートから作成されたときにジョブが持つべきデータを記述します
- タイプ
-
object
プロパティー | 型 | 説明 |
---|---|---|
| このテンプレートから作成されたジョブの標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| JobSpec は、ジョブの実行がどのようになるかを記述します。 |
6.1.3. .spec.jobTemplate.spec
- 説明
- JobSpec は、ジョブの実行がどのようになるかを記述します。
- タイプ
-
object
- 必須
-
template
-
プロパティー | 型 | 説明 |
---|---|---|
|
| システムがジョブを終了しようとする前に、ジョブが継続的にアクティブになる可能性がある startTime を基準とした秒単位の期間を指定します。値は正の整数でなければなりません。ジョブが (作成時または更新中に) 一時停止になった場合、このタイマーは事実上停止となり、ジョブが再開したときにリセットされます。 |
|
| このジョブを失敗とマークするまでの再試行回数を指定します。デフォルトは 6 です。 |
|
|
CompletionMode は、Pod の完了を追跡する方法を指定します。
今後、さらに多くの完了モードを追加できます。ジョブコントローラーが認識できないモードを確認した場合、コントローラーはジョブの更新をスキップします。 |
|
| ジョブを実行するために正常に終了した Pod の希望数を指定します。nil に設定すると、任意の Pod の成功がすべての Pod の成功を示し、並列処理に正の値を設定できるようになります。1 に設定すると、並列処理が 1 に制限され、その Pod の成功がジョブの成功を示します。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ |
|
|
manualSelector は、Pod ラベルと Pod セレクターの生成を制御します。何をしているのかわからない場合は、 |
|
| ジョブが任意の時点で実行する必要のある Pod の最大数を指定します。定常状態で実行している Pod の実際の数は、((.spec.completions - .status.successful) < .spec.parallelism) の場合、つまり、実行する必要のある作業が最大並列処理より少ない場合は、この数より少なくなります。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ |
|
| PodFailurePolicy は、失敗した Pod が backoffLimit にどのように影響するかを説明します。 |
| Pod 数と一致する必要がある Pod に対するラベルクエリー。通常、システムはこのフィールドを設定します。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors | |
|
| Suspend は、Job コントローラーが Pod を作成するかどうかを指定します。suspend を true に設定して Job を作成すると、ジョブコントローラーは Pod を作成しません。作成後に Job が一時停止した場合 (つまり、フラグが false から true になる場合)、Job コントローラーはこの Job に関連付けられているすべてのアクティブな Pod を削除します。ユーザーは、これを適切に処理するようにワークロードを設計する必要があります。ジョブを一時停止すると、ジョブの StartTime フィールドがリセットされ、ActiveDeadlineSeconds タイマーも効果的にリセットされます。デフォルトは false です。 |
| ジョブの実行時に作成される Pod について説明します。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ | |
|
| ttlSecondsAfterFinished は、実行が終了した (Complete または Failed のいずれか) Job の存続期間を制限します。このフィールドが設定されている場合、Job の終了後に ttlSecondsAfterFinished を設定すると、自動的に削除される可能性があります。ジョブが削除されると、そのライフサイクル保証 (ファイナライザーなど) が尊重されます。このフィールドが設定されていないと、ジョブが自動的に削除されません。このフィールドがゼロに設定されていると、ジョブは終了後すぐに削除できるようになります。 |
6.1.4. .spec.jobTemplate.spec.podFailurePolicy
- 説明
- PodFailurePolicy は、失敗した Pod が backoffLimit にどのように影響するかを説明します。
- タイプ
-
object
- 必須
-
rules
-
プロパティー | 型 | 説明 |
---|---|---|
|
| Pod 障害ポリシールールの一覧。ルールは順番に評価されます。ルールが Pod の障害に一致すると、残りのルールは無視されます。Pod の障害に一致するルールがない場合は、デフォルトの処理が適用されます。つまり、Pod の失敗のカウンターが増分され、backoffLimit に対してチェックされます。最大 20 個の要素が許可されます。 |
|
| PodFailurePolicyRule は、要件が満たされた場合に Pod の障害がどのように処理されるかを記述します。各ルールでは、onExitCodes と onPodConditions のいずれか 1 つを使用できますが、両方は使用できません。 |
6.1.5. .spec.jobTemplate.spec.podFailurePolicy.rules
- 説明
- Pod 障害ポリシールールの一覧。ルールは順番に評価されます。ルールが Pod の障害に一致すると、残りのルールは無視されます。Pod の障害に一致するルールがない場合は、デフォルトの処理が適用されます。つまり、Pod の失敗のカウンターが増分され、backoffLimit に対してチェックされます。最大 20 個の要素が許可されます。
- タイプ
-
array
6.1.6. .spec.jobTemplate.spec.podFailurePolicy.rules[]
- 説明
- PodFailurePolicyRule は、要件が満たされた場合に Pod の障害がどのように処理されるかを記述します。各ルールでは、onExitCodes と onPodConditions のいずれか 1 つを使用できますが、両方は使用できません。
- 型
-
object
- 必須
-
action
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 要件が満たされた場合に Pod の障害に対して実行されるアクションを指定します。- FailJob: Pod のジョブが失敗としてマークされ、実行中のすべての Pod が終了することを示します。- Ignore: .backoffLimit に対するカウンターがインクリメントされず、代替 Pod が作成されることを示します。- Count: Pod がデフォルトの方法で処理されることを示します。- .backoffLimit までカウンターがインクリメントされます。その他の値は、今後追加される予定です。クライアントはルールを省略して、不明なアクションに対応する必要があります。
使用可能な列挙値: - |
|
| PodFailurePolicyOnExitCodesRequirement は、コンテナー終了コードに基づいて失敗した Pod を処理するための要件を説明します。特に、各アプリケーションコンテナーの .state.termination.exitCode と init コンテナーのステータスを検索します。これは、Pod ステータスの .status.containerStatuses フィールドと .status.initContainerStatuses フィールドをそれぞれ検索します。正常に完了したコンテナー (終了コード 0) は、要件チェックから除外されます。 |
|
| Pod の条件に関する要件を表します。要件は Pod 条件パターンのリストとして表されます。少なくとも 1 つのパターンが実際の Pod の状態と一致する場合、要件は満たされます。最大 20 個の要素が許可されます。 |
|
| PodFailurePolicyOnPodConditionsPattern は、実際の Pod 条件タイプと一致するパターンを記述します。 |
6.1.7. .spec.jobTemplate.spec.podFailurePolicy.rules[].onExitCodes
- 説明
- PodFailurePolicyOnExitCodesRequirement は、コンテナー終了コードに基づいて失敗した Pod を処理するための要件を説明します。特に、各アプリケーションコンテナーの .state.termination.exitCode と init コンテナーのステータスを検索します。これは、Pod ステータスの .status.containerStatuses フィールドと .status.initContainerStatuses フィールドをそれぞれ検索します。正常に完了したコンテナー (終了コード 0) は、要件チェックから除外されます。
- タイプ
-
object
- 必須
-
operator
-
values
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 終了コードのチェックを指定された名前のコンテナーに制限します。null の場合、ルールはすべてのコンテナーに適用されます。指定する場合、Pod テンプレート内のコンテナー名または initContainer 名のいずれかと一致する必要があります。 |
|
| コンテナー終了コードと指定された値の関係を表します。正常に完了したコンテナー (終了コード 0) は、要件チェックから除外されます。- In: 少なくとも 1 つのコンテナーの終了コードが指定の値のセット内にある場合、要件は満たされます ('containerName' フィールドからの制限がないコンテナーが複数ある場合は、複数の終了コードが存在する可能性があります)。 - NotIn: 少なくとも 1 つのコンテナーの終了コードが指定の値のセット内にない場合、要件は満たされます ('containerName' フィールドからの制限がないコンテナーが複数ある場合は、複数の終了コードが存在する可能性があります)。その他の値は、今後追加される予定です。クライアントは、要件が満たされていないことを前提として、不明な演算子に対応する必要があります。
使用可能な列挙値: - |
|
| 値のセットを指定します。返された各コンテナー終了コードは、この値のセットに対して、演算子に関するチェックを行います (複数のコンテナーがある場合は複数存在する可能性があります)。値のリストは順序付けする必要があり、重複を含めることはできません。値 '0' は、In 演算子に使用できません。少なくとも 1 つの要素が必要です。最大 255 個の要素が許可されます。 |
6.1.8. .spec.jobTemplate.spec.podFailurePolicy.rules[].onPodConditions
- 説明
- Pod の条件に関する要件を表します。要件は Pod 条件パターンのリストとして表されます。少なくとも 1 つのパターンが実際の Pod の状態と一致する場合、要件は満たされます。最大 20 個の要素が許可されます。
- タイプ
-
array
6.1.9. .spec.jobTemplate.spec.podFailurePolicy.rules[].onPodConditions[]
- 説明
- PodFailurePolicyOnPodConditionsPattern は、実際の Pod 条件タイプと一致するパターンを記述します。
- タイプ
-
object
- 必須
-
type
-
status
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 必要な Pod の条件ステータスを指定します。Pod 条件と一致するには、指定されたステータスが Pod 条件ステータスと等しい必要があります。デフォルトは True です。 |
|
| 必要な Pod 条件タイプを指定します。Pod 条件と一致するには、指定されたタイプが Pod 条件タイプと等しい必要があります。 |
6.1.10. .status
- 説明
- CronJobStatus は、cron ジョブの現在の状態を表します。
- タイプ
-
object
プロパティー | 型 | 説明 |
---|---|---|
| 現在実行中のジョブへのポインターのリスト。 | |
| この Job が最後に正常にスケジュールされた時刻情報。 | |
| この Job が最後に正常に完了した時刻情報。 |