模拟题目:
设置配置环境:
[candidate@node-1] $ kubectl config use-context k8s
Task
- 在清单文件 /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/
kubectl explain cronjob.spec
解答:
编辑yaml文件
vim /ckad/CKAD00016/periodic.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello # 名称
spec:
schedule: "* * * * *" #根据实际情况修改
jobTemplate:
spec:
activeDeadlineSeconds: 10 #pod存活时间
template:
spec:
containers:
- name: hello #名称
image: busybox:stable #镜像
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date #命令
restartPolicy: OnFailure
创建 cronjob
kubectl apply -f /ckad/CKAD00016/periodic.yaml
检查cronjob和job, job需要一分钟以后才能看到
kubectl get cronjobs hello
kubectl get jobs