Job
Job負責批處理任務,即僅執行一次的任務,它保證批處理任務的一個或多個Pod成功結束。
Job Spec格式
- spec.template格式同Pod
- RestartPolicy僅支持Never或OnFailure
- 單個Pod時,默認Pod成功運行后Job即結束
.spec.completions標志Job結束需要成功運行的Pod個數,默認為1.spec.parallelism標志並行運行的Pod的個數,默認為1spec.activeDeadlineSeconds標志失敗Pod的重試最大時間,超過這個時間不會繼續重試
一個簡單的例子:
apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: metadata: name: pi spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never
$ kubectl create -f ./job.yaml
job "pi" created $ pods=$(kubectl get pods --selector=job-name=pi --output=jsonpath={.items..metadata.name}) $ kubectl logs $pods 3.141592653589793238462643383279502...
Bare Pods
所謂Bare Pods是指直接用PodSpec來創建的Pod(即不在ReplicaSets或者ReplicationController的管理之下的Pods)。這些Pod在Node重啟后不會自動重啟,但Job則會創建新的Pod繼續任務。所以,推薦使用Job來替代Bare Pods,即便是應用只需要一個Pod。
