第13章 Job [batch/v1]
- 説明
- Job は、単一の Job の設定を表します。
- タイプ
-
object
13.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 を参照してください。 | |
|
| JobSpec は、ジョブの実行がどのようになるかを記述します。 |
|
| JobStatus は、ジョブの現在の状態を表します。 |
13.1.1. .spec
- 説明
- JobSpec は、ジョブの実行がどのようになるかを記述します。
- タイプ
-
object
- 必須
-
template
-
プロパティー | 型 | 説明 |
---|---|---|
|
| システムがジョブを終了しようとする前に、ジョブが継続的にアクティブになる可能性がある startTime を基準とした秒単位の期間を指定します。値は正の整数でなければなりません。ジョブが (作成時または更新中に) 一時停止になった場合、このタイマーは事実上停止となり、ジョブが再開したときにリセットされます。 |
|
| このジョブを失敗とマークするまでの再試行回数を指定します。デフォルトは 6 です。 |
|
|
このインデックスを失敗としてマークするまでの、インデックス内における再試行回数の制限を指定します。有効にすると、インデックスごとの失敗回数が Pod の batch.kubernetes.io/job-index-failure-count アノテーションに保持されます。これは、ジョブの completionMode=Indexed で、Pod の再起動ポリシーが Never の場合にのみ設定できます。このフィールドはイミュータブルです。このフィールドはアルファレベルです。 |
|
|
completionMode は、Pod の完了を追跡する方法を指定します。
今後、さらに多くの完了モードを追加できます。ジョブコントローラーが認識できないモードを確認した場合、コントローラーはジョブの更新をスキップします。
可能な列挙値: |
|
| ジョブを実行するために正常に終了した Pod の希望数を指定します。null に設定すると、任意の Pod の成功がすべての Pod の成功を示し、並列処理に正の値を設定できるようになります。1 に設定すると、並列処理が 1 に制限され、その Pod の成功がジョブの成功を示します。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ |
|
|
manualSelector は、Pod ラベルと Pod セレクターの生成を制御します。何をしているのかわからない場合は、 |
|
|
backoffLimitPerIndex が設定されている場合、ジョブを失敗としてマークするまでの失敗したインデックスの最大数を指定します。失敗したインデックスの数がこの数を超えると、ジョブ全体が Failed としてマークされ、実行が終了します。null のままにすると、ジョブはすべてのインデックスの実行を続行し、ジョブ状態は |
|
| ジョブが任意の時点で実行する必要のある Pod の最大数を指定します。定常状態で実行している Pod の実際の数は、((.spec.completions - .status.successful) < .spec.parallelism) の場合、つまり、実行する必要のある作業が最大並列処理より少ない場合は、この数より少なくなります。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ |
|
| PodFailurePolicy は、失敗した Pod が backoffLimit にどのように影響するかを説明します。 |
|
| podReplacementPolicy は、代替 Pod をいつ作成するか指定します。可能な値は次のとおりです。- TerminatingOrFailed : Pod が終了中 (metadata.deletionTimestamp がある) または失敗したときに Pod が再作成されます。- Failed: 以前に作成された Pod が完全に終了する (フェーズが Failed または Succeeded になる) まで待機してから代替 Pod を作成します。 podFailurePolicy を使用する場合、許可される値は Failed のみです。podFailurePolicy が使用されていない場合、許可される値は TerminatingOrFailed と Failed です。これはアルファフィールドです。このフィールドを使用できるように、JobPodReplacementPolicy を有効にします。
可能な列挙値: - |
| 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 について説明します。使用できる template.spec.restartPolicy の値は "Never" または "OnFailure" のみです。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ | |
|
| ttlSecondsAfterFinished は、実行が終了した (Complete または Failed のいずれか) Job の存続期間を制限します。このフィールドが設定されている場合、Job の終了後に ttlSecondsAfterFinished を設定すると、自動的に削除される可能性があります。ジョブが削除されると、そのライフサイクル保証 (ファイナライザーなど) が尊重されます。このフィールドが設定されていないと、ジョブが自動的に削除されません。このフィールドがゼロに設定されていると、ジョブは終了後すぐに削除できるようになります。 |
13.1.2. .spec.podFailurePolicy
- 説明
- PodFailurePolicy は、失敗した Pod が backoffLimit にどのように影響するかを説明します。
- タイプ
-
object
- 必須
-
rules
-
プロパティー | 型 | 説明 |
---|---|---|
|
| Pod 障害ポリシールールの一覧。ルールは順番に評価されます。ルールが Pod の障害に一致すると、残りのルールは無視されます。Pod の障害に一致するルールがない場合は、デフォルトの処理が適用されます。つまり、Pod の失敗のカウンターが増分され、backoffLimit に対してチェックされます。最大 20 個の要素が許可されます。 |
|
| PodFailurePolicyRule は、要件が満たされた場合に Pod の障害がどのように処理されるかを記述します。各ルールでは、onExitCodes と onPodConditions のいずれか 1 つを使用できますが、両方は使用できません。 |
13.1.3. .spec.podFailurePolicy.rules
- 説明
- Pod 障害ポリシールールの一覧。ルールは順番に評価されます。ルールが Pod の障害に一致すると、残りのルールは無視されます。Pod の障害に一致するルールがない場合は、デフォルトの処理が適用されます。つまり、Pod の失敗のカウンターが増分され、backoffLimit に対してチェックされます。最大 20 個の要素が許可されます。
- タイプ
-
array
13.1.4. .spec.podFailurePolicy.rules[]
- 説明
- PodFailurePolicyRule は、要件が満たされた場合に Pod の障害がどのように処理されるかを記述します。各ルールでは、onExitCodes と onPodConditions のいずれか 1 つを使用できますが、両方は使用できません。
- タイプ
-
object
- 必須
-
action
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 要件が満たされた場合に Pod の障害に対して実行されるアクションを指定します。可能な値は次のとおりです。
- FailJob: Pod のジョブが Failed としてマークされ、実行中のすべての Pod が終了したことを示します。- FailIndex: Pod のインデックスが Failed としてマークされ、再起動されないことを示します。この値はアルファレベルです。これは、
可能な列挙値: - |
|
| PodFailurePolicyOnExitCodesRequirement は、コンテナー終了コードに基づいて失敗した Pod を処理するための要件を説明します。特に、各アプリケーションコンテナーの .state.termination.exitCode と init コンテナーのステータスを検索します。これは、Pod ステータスの .status.containerStatuses フィールドと .status.initContainerStatuses フィールドをそれぞれ検索します。正常に完了したコンテナー (終了コード 0) は、要件チェックから除外されます。 |
|
| Pod の条件に関する要件を表します。要件は Pod 条件パターンのリストとして表されます。少なくとも 1 つのパターンが実際の Pod の状態と一致する場合、要件は満たされます。最大 20 個の要素が許可されます。 |
|
| PodFailurePolicyOnPodConditionsPattern は、実際の Pod 条件タイプと一致するパターンを記述します。 |
13.1.5. .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 個の要素が許可されます。 |
13.1.6. .spec.podFailurePolicy.rules[].onPodConditions
- 説明
- Pod の条件に関する要件を表します。要件は Pod 条件パターンのリストとして表されます。少なくとも 1 つのパターンが実際の Pod の状態と一致する場合、要件は満たされます。最大 20 個の要素が許可されます。
- タイプ
-
array
13.1.7. .spec.podFailurePolicy.rules[].onPodConditions[]
- 説明
- PodFailurePolicyOnPodConditionsPattern は、実際の Pod 条件タイプと一致するパターンを記述します。
- タイプ
-
object
- 必須
-
type
-
status
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 必要な Pod の条件ステータスを指定します。Pod 条件と一致するには、指定されたステータスが Pod 条件ステータスと等しい必要があります。デフォルトは True です。 |
|
| 必要な Pod 条件タイプを指定します。Pod 条件と一致するには、指定されたタイプが Pod 条件タイプと等しい必要があります。 |
13.1.8. .status
- 説明
- JobStatus は、ジョブの現在の状態を表します。
- タイプ
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| 保留中および実行中の Pod の数。 |
|
| completedIndexes は、.spec.completionMode = "Indexed" の場合に完成したインデックスをテキスト形式で保持します。インデックスは、コンマで区切られた 10 進整数として表されます。番号は昇順でリストされています。3 つ以上の連続する数値は圧縮され、ハイフンで区切られたシリーズの最初と最後の要素で表されます。たとえば、完了したインデックスが 1、3、4、5、7 の場合は、"1,3-5,7" で表現されます。 |
| ジョブが完了した時間を表します。別々の操作をまたいで、happens-before の順序が設定されることは保証されていません。これは RFC3339 形式で表されます。これは UTC です。完了時間は、ジョブが正常に終了したときにのみ設定されます。 | |
|
| オブジェクトの現在の状態の最新の利用可能な観測。ジョブが失敗すると、条件の 1 つに "Failed" と入力され、ステータスが true になります。Job が一時停止すると、条件の 1 つのタイプが "Suspended" になり、ステータスが true になります。Job が再開すると、この状態のステータスは false になります。ジョブが完了すると、条件の 1 つのタイプが "Complete" になり、ステータスが true になります。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ |
|
| JobCondition は、ジョブの現在の状態を記述します。 |
|
| フェーズ失敗に達した Pod の数。 |
|
|
FailedIndexes は、backoffLimitPerIndex=true の場合に失敗したインデックスを保持します。インデックスは、 |
|
| Ready 状態の Pod 数。 このフィールドは、ベータレベルですジョブコントローラーは、JobReadyPods のフィーチャーゲート が有効になっている場合 (デフォルトで有効になっている場合)、フィールドにデータを入力します。 |
| ジョブコントローラーがジョブの処理を開始した時刻を表します。Job が一時停止状態で作成された場合、このフィールドは最初に再開されるまで設定されません。このフィールドは、Job が一時停止から再開するたびにリセットされます。これは RFC3339 形式で表されます。これは UTC です。 | |
|
| フェーズ成功に達した Pod の数。 |
|
| 終了中の (Pending または Running フェーズにあり、deletetionTimestamp を持つ) Pod の数。 このフィールドはアルファレベルです。ジョブコントローラーは、機能ゲート JobPodReplacementPolicy が有効な場合にフィールドを設定します(デフォルトでは無効)。 |
|
| UncountedTerminatedPods は、終了したにもかかわらず Job ステータスカウンターに計上されていない Pod の UID を保持します。 |
13.1.9. .status.conditions
- 説明
- オブジェクトの現在の状態の最新の利用可能な観測。ジョブが失敗すると、条件の 1 つに "Failed" と入力され、ステータスが true になります。Job が一時停止すると、条件の 1 つのタイプが "Suspended" になり、ステータスが true になります。Job が再開すると、この状態のステータスは false になります。ジョブが完了すると、条件の 1 つのタイプが "Complete" になり、ステータスが true になります。詳細: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
- タイプ
-
array
13.1.10. .status.conditions[]
- 説明
- JobCondition は、ジョブの現在の状態を記述します。
- タイプ
-
object
- 必須
-
type
-
status
-
プロパティー | 型 | 説明 |
---|---|---|
| 前回条件がチェックされたとき。 | |
| 前回、状態が 1 つのステータスから別のステータスに移行したとき。 | |
|
| 最後にある状態から別の状態に遷移した時間。 |
|
| (簡単な) 条件の最後の遷移の理由。 |
|
| 状態のステータス、True、False、Unknown のいずれか。 |
|
| ジョブ条件のタイプ、完了または失敗。 |
13.1.11. .status.uncountedTerminatedPods
- 説明
- UncountedTerminatedPods は、終了したにもかかわらず Job ステータスカウンターに計上されていない Pod の UID を保持します。
- タイプ
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| failed は、失敗した Pod の UID を保持します。 |
|
| succeeded は、成功した Pod の UID を保持します。 |