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