假设我在Kubernetes中有计划每30分钟(10:00,10:30,11:00等)的cronjob
由于资源原因,作业开始时间是10:05而不是10:00,甚至是11:00而不是10:00
是否有一个环境变量/选项可以让运行中的pod知道这个pod应该在什么时候运行?
考虑从最后一个小时开始下载所有内容的脚本-而不是从10:00到11:00获取数据的2个pods,我希望选择利用计划时间的信息;
预测问题-是的,我知道我可以做一些队列/编码来避免这个问题,但我只对简单的kubernetes可能性感兴趣。
发布于 2019-05-07 23:09:47
如果你做了kubectl describe cj <name_of_cronjob>,它会显示Last Schedule Time
Last Schedule Time: Tue, 07 May 2019 16:58:00 +0200
您还将看到以下事件:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 2m25s cronjob-controller Created job hello-1
Normal SawCompletedJob 2m15s cronjob-controller Saw completed job: hello-1
Normal SuccessfulCreate 85s cronjob-controller Created job hello-2
Normal SawCompletedJob 75s cronjob-controller Saw completed job: hello-2
Normal SuccessfulCreate 24s cronjob-controller Created job hello-3
Normal SawCompletedJob 14s cronjob-controller Saw completed job: hello-3您可以将date作为命令添加到CronJob的开头,它将在启动时在日志中告诉您。
Yaml可能如下所示:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure您可以检查日志,这些日志将显示正在执行的data。
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-1-nrf5b 0/1 Completed 0 3m
hello-2-kk8t5 0/1 Completed 0 119s
hello-3-tpffz 0/1 Completed 0 59s
$ kubectl logs pods/hello-2-kk8t5
Tue May 7 14:58:09 UTC 2019
Hello from the Kubernetes cluster您可以在Kubernetes文档Running Automated Tasks with a CronJob中查看此示例和其他示例。
https://stackoverflow.com/questions/56024617
复制相似问题