kubernetes Job
来源:原创
时间:2019-04-21
作者:脚本小站
分类:云原生
Job一次性任务控制器,任务完成后状态为Completed。
单工作列队:多个一次性任务串行作业。
多工作列队:多个一次性任务并行运行。
必要字段:template。
API组:batch/v1
创建
创建job:
kubectl create job job-example --image=busybox --dry-run -o yaml
spec.restartPolicy 默认为 Always 要手动定义为Never。
apiVersion: batch/v1 kind: Job metadata: name: job-example spec: template: spec: containers: - image: busybox name: job-example command: ["/bin/sh","-c","sleep 120"] restartPolicy: Never
查看:
kubectl get jobs job-example kubectl get pods -l job-name=job-example kubectl describe jobs job-example kubectl get pods -A
并行式Job
spec.parallelism 并行度,同时运行的Pod数
spec.backoffLimit 任务失败重试次数,默认6
spec.completions 总任务数
apiVersion: batch/v1 kind: Job metadata: name: job-multi spec: completions: 5 parallelism: 2 template: spec: containers: - name: job-multi image: busybox command: ["/bin/sh","-c","sleep 20"] restartPolicy: OnFailure
扩容
扩容:修改同时运行的Pod数 parallelism。使用 scale 命令。
kubectl scale jobs job-multi --replicas=2
删除
删除job:
kubectl delete jobs job-multi
有些任务可能无法终止,可使用下面两个属性:
spec.backoffLimit: 5 失败重试次数
spec.activeDeadlineSeconds: 100 超出一百秒未运行完成将其终止