Deployment、StatefulSet及DaemonSet三個主要用來進行長時間業務,不會退出。
而有一些離線業務,或者叫Batch Job(計算業務),計算完成後就直接退出 了,若是用Deployment來管理這種業務,Pod會在計算結束後退出,而後被Deployment Controller不斷地重啓,
而咱們的任務不須要一直被執行,Job對象主要就是針對這種離線跑任務場景ubuntu
示例api
apiVersion: batch/v1 kind: Job metadata: name: pi spec: parallelism: 2 completions: 4 template: spec: containers: - name: pi image: resouer/ubuntu-bc command: ["sh", "-c", "echo 'scale=10000; 4*a(1)' | bc -l "] restartPolicy: Never activeDeadlineSeconds: 100 backoffLimit: 4
參數解釋:併發
執行建立app
kubectl apply -f job.yaml
建立後會看到po狀態,由ContainerCreating->Running->Completed,若是有失敗狀況還會出現DeadlineExceeded狀態rest
參考資料:https://www.kubernetes.org.cn/jobcode