这是我的CronJob规范的一部分:
kind: CronJob
spec:
schedule: #{service.schedule}
对于特定环境,已设置cron作业,但我从不希望其运行。我可以在schedule:
中写入一些值以使其永远无法运行吗?
我还没有找到所有支持的语法的文档,但我希望能找到类似的东西:
@never
或@InABillionYears
答案 0 :(得分:2)
@reboot
不保证该作业永远不会运行。实际上,它会始终在引导/重新引导系统时运行,并且可能会发生。每次重新启动cron守护程序时,它也会运行 ,因此您需要依靠系统上的“通常不应该发生” ...
还有更多某些方法可以确保永远不会运行CronJob
:
.spec.suspend
字段设置为true
您可以使用补丁轻松设置它:
kubectl patch cronjobs <job-name> -p '{"spec" : {"suspend" : true }}'
day of the month
字段中设置的值检查month
。它只要求您在两个字段中分别输入有效数字(分别为1-31
和1-12
)。您可以将其设置为: * * 31 2 *
对于 Cron 来说,这是完全有效的值,但是我们知道这样的日期是不可能的,而且永远不会发生。
答案 1 :(得分:0)
我认为您可以使用@reboot,
请参阅:https://en.wikipedia.org/wiki/Cron
@reboot configures a job to run once when the daemon is started. Since cron is typically never restarted, this typically corresponds to the machine being booted.
答案 2 :(得分:0)
您为什么首先需要将其设为CronJob
?如果您不希望它运行,则可以指定一个简单的Job
:https://kubernetes.io/docs/concepts/workloads/controllers/job/
答案 3 :(得分:-1)
kind: CronJob
spec:
suspend: true