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