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配置文件中添加

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

kubectl get cronjob
