模拟题目

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

  1. 在清单文件 /ckad/CKAD00016/periodic.yaml 中定义此 Pod
  2. 在一个 busybox:stable 容器中运行命令 date 该命令必须每分钟运行一次,并且必须在 10 秒内完成运行,或者被 Kubernetes 终止运行。
    注意: CronJob 名称和容器名称都必须为 hello
  3. 在上述清单文件中创建此资源,并验证此 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

CronJob-2-0

解答

编辑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

CronJob-2-1