模拟题目:
设置配置环境:
[candidate@node-1] $ kubectl config use-context k8s
Task
- 创建一个名为 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
- 为测试目的,从 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/
解答:
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
手动触发 cronjob
kubectl create job ppi-test --from=cronjob/ppi
查看这个job
kubectl get jobs