kubernetes job的原理

时间:2021-05-06 16:43:11

job例子:

apiVersion: batch/v1   #job的apiVersion
kind: Job #资源类型为job
metadata:
labels:
name: busybox
name: busybox
spec:
template:
metadata:
name: busybox
spec:
containers:
- name: busybox
image: myhub.mingyuanyun.com/library/busybox
command:
- sleep
- "30"
restartPolicy: Never #什么情况下重启容器,job一般只能设置为Never和OnFailure,一般设置为Never

restartPolicy: Never  #如果使用参数Never,容器启动后未成功就会一直创建新的容器
restartPolicy: OnFailure  #如果使用参数OnFailure,容器启动后未成功不会在创建新的容器,他会一直重启

kubectl apply -f myjob.yaml

kubectl get job

kubectl get pod --show-all

kubectl logs busybox

kubectl delete -f myjob.yaml

并行job的创建:

apiVersion: batch/v1
kind: Job
metadata:
labels:
name: busybox
name: busybox
spec:
completions: 6 #直到总共有6个pod成功执行 如果不指定默认值为1
parallelism: 2 #一次启动2个pod来执行job 如果不指定默认值为1
template:
metadata:
name: busybox
spec:
containers:
- name: busybox
image: myhub.mingyuanyun.com/library/busybox
command:
- sleep
- "30"
restartPolicy: Never

  

定时job:

apiVersion: batch/v2alpha1  #当前CronJob的apiVersion
kind: CronJob #当前类型CronJob
metadata:
name: test
spec:
schedule: "*/1 * * * *" #运行时间,格式与linux一致
jobTemplate: #job模板
spec:
template:
spec:
containners:
- name: test
image: nginx
command: ["echo", "this is test"]
restartPolicy: OnFailure

  

需要在kube-aoiservier配置文件中添加

kubernetes  job的原理

kubectl api-version   #查看当前所有api-version 是否支持 batch/v2alpha1

kubernetes  job的原理

kubectl  get cronjob