Job:控制Pod完成作業
目錄
- Job:控制Pod完成作業
- Job基礎Yaml
- 一個Job運行多個Pods
- Job超時時間設定
- Job失敗重試次數設定
Begin:
kubectl explain job.spec
Job基礎Yaml
apiVersion: batch/v1
kind: Job
metadata:
name: batch-job
namespace: controller-test
spec:
template:
metadata:
labels:
app: batch-job
spec:
restartPolicy: OnFailure
containers:
- name: main
image: luksa/batch-job
command: ["echo"]
args: ["正在執行"]
restartPolicy: OnFailure??:??????????????????????????????????????????容器在結束時會做什么,默認為Always,Job不建議用默認值,因為他們并不是要一直運行下去;絕大多數是OnFailure或Never,
一個Job運行多個Pods
一般無特別指明,一個Job運行一個Pod,Pod完成后處于completed狀態結束,
運行多個Pods,通過指定屬性completions和parallelism來實作,
- completions:job完成需要幾個pod完成
- parallelism:同時可以有幾個pod作業
Case1:Job完成需要5個pod completed,順序執行(一次只能run一個)
apiVersion: batch/v1
kind: Job
metadata:
name: multi-completion-job
namespace: controller-test
spec:
completions: 5
template:
metadata:
labels:
app: batch-job
spec:
restartPolicy: OnFailure
containers:
- name: main
image: luksa/batch-job
Case 2:Job完成需要 5個pod completed,同時可以運行2個Pod
apiVersion: batch/v1
kind: Job
metadata:
name: multi-completion-batch-job
namespace: controller-test
spec:
completions: 5
parallelism: 2
template:
metadata:
labels:
app: batch-job
spec:
restartPolicy: OnFailure
containers:
- name: main
image: luksa/batch-job
Job超時時間設定
activeDeadlineSeconds: 30:如果job超過這個時間,job將終止嘗試pod,并把job標記為失敗
sapiVersion: batch/v1
kind: Job
metadata:
name: time-limited-batch-job
namespace: controller-test
spec:
activeDeadlineSeconds: 30
template:
metadata:
labels:
app: batch-job
spec:
restartPolicy: OnFailure
containers:
- name: main
image: luksa/batch-job
Job失敗重試次數設定
指定.spec.backoffLimit,指定失敗之前可以重試次數,默認為6
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/71924.html
標籤:其他
