知乎专栏 | 多维度架构 |
kubectl run hello --schedule="*/1 * * * *" --restart=OnFailure --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster" kubectl delete cronjob hello
.spec.completions 标志Job结束需要成功运行的Pod个数,默认为1
.spec.parallelism 标志并行运行的Pod的个数,默认为1
.spec.activeDeadlineSeconds 标志失败Pod的重试最大时间,超过这个时间不会继续重试
apiVersion: batch/v1 kind: Job metadata: name: busybox spec: completions: 1 parallelism: 1 template: metadata: name: busybox spec: containers: - name: busybox image: busybox command: ["echo", "hello"] restartPolicy: Never
$ kubectl create -f job.yaml job "busybox" created $ pods=$(kubectl get pods --selector=job-name=busybox --output=jsonpath={.items..metadata.name}) $ kubectl logs $pods
.spec.schedule 指定任务运行周期,格式同Cron
.spec.startingDeadlineSeconds 指定任务开始的截止期限
.spec.concurrencyPolicy 指定任务的并发策略,支持Allow、Forbid和Replace三个选项
apiVersion: batch/v2alpha1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure