我在 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
然后选择最新的时间戳。