kubernetes job


Job

Job負責批處理任務,即僅執行一次的任務,它保證批處理任務的一個或多個Pod成功結束。

Job Spec格式

  • spec.template格式同Pod
  • RestartPolicy僅支持Never或OnFailure
  • 單個Pod時,默認Pod成功運行后Job即結束
  • .spec.completions標志Job結束需要成功運行的Pod個數,默認為1
  • .spec.parallelism標志並行運行的Pod的個數,默認為1
  • spec.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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM