模拟题目:

设置配置环境:

[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

file

解答:

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

file