创建一个名为 ppi 并执行一个运行以下单一容器的 Pod 的 CronJob:
name: pi
image: perl:5
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
配置 CronJob 为:
- 每隔 5 分钟执行一次
- 保留 2 个已完成的 Job
- 保留 4 个失败的 Job
- 永不重启 Pod
- 在 8 秒后终止 Pod
参考:
- https://kubernetes.io/zh-cn/docs/tasks/job/automated-tasks-with-cron-jobs/
- https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/job/
- https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/
apiVersion: batch/v1
kind: CronJob
metadata:
name: ppi
spec:
schedule: "*/5 * * * *" # 分时日月周 每隔 5 分钟执行一次
successfulJobsHistoryLimit: 2 # 保留 2 个已完成的 Job
failedJobsHistoryLimit: 4 # 保留 4 个失败的 Job
jobTemplate:
spec:
activeDeadlineSeconds: 8 # 在 8 秒后终止 Pod
template:
spec:
containers:
- name: pi
image: perl:5
imagePullPolicy: IfNotPresent
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never # 永不重启 Pod
- 在清单文件 /ckad/CKAD00016/periodic.yaml 中定义此 Pod
- 在一个 busybox:stable 容器中运行命令 date ,该命令必须每分钟运行一次,并且必须在 10 秒内完成运行,或者被 Kubernetes 终止运行。
注意:CronJob 名称和容器名称都必须为 hello - 在上述清单文件中创建此资源,并验证此 Job 至少成功执行一次。
参考:
- https://kubernetes.io/zh-cn/docs/tasks/job/automated-tasks-with-cron-jobs/
- https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/job/
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello # CronJob 名称和容器名称都必须为 hello
spec:
schedule: "* * * * *"
jobTemplate:
spec:
activeDeadlineSeconds: 10 # 10 秒内完成运行
template:
spec:
containers:
- name: hello # CronJob 名称和容器名称都必须为 hello
image: busybox:stable
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date
restartPolicy: OnFailure