问题描述
我在kubernetes中每隔几分钟运行一次cronjob,并希望设置一个警报,当cronjob停止工作时通知我。
我期望它有时会失败,它正在调用两个REST端点,但它们并不总是可用。
我想知道上一次成功运行是否发生在x分钟之前。为此,我需要最后一次成功完成的时间戳。
我想使用kubectl
命令行工具。我该怎么做?
解决方法
这比我想象的要容易,这是我使用kubectl
和jq
的解决方案:
kubectl get job -l component=<cronjob> -n <namespace> -o json | \
jq -r '.items[] | select(.status.succeeded) | .status.completionTime' | \
sort -r | head -n 1
kubectl
获取cronjob的所有作业执行并将其打印到json。
jq
然后选择所有成功的作业并打印其完成时间。
sort
和head
,然后选择最新的时间戳。