模拟题目:

设置配置环境:

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

Task

  1. 创建一个名为 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
  1. 为测试目的,从 CronJob ppi 中 手动创建并执行一个名为 ppi-test 的 Job 。
    • 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

cron 表示法 https://tool.lu/crontab/ file

file file file

解答:

vim cronjob-1.yaml
---
apiVersion: batch/v1
kind: CronJob
metadata:
  name: ppi #修改为对应的
spec:
  schedule: "*/5 * * * *" #根据题目要求修改
  successfulJobsHistoryLimit: 2 # 成功记录次数
  failedJobsHistoryLimit: 4     # 失败记录次数
  jobTemplate:
    spec:
      activeDeadlineSeconds: 8  # pod存活时间
      template:
        spec:
          containers:
          - name: pi            # 名称
            image: perl:5       # 镜像
            imagePullPolicy: IfNotPresent
            command: ["perl", "Mbignum=bpi", " wle", "print bpi(2000)"] #题目命令
          restartPolicy: Never  # 重启策略

创建

kubectl apply -f cronjob-1.yaml

检查

kubectl get cronjobs

file

手动触发 cronjob

kubectl create job ppi-test --from=cronjob/ppi

查看这个job

kubectl get jobs

file