为Kubernetes CronJob失败设置GCP monitoring alert policy的最佳方法是什么?我还没有找到任何好的例子。
现在,我有一个基于ERROR
严重性的Pod中监视日志的OK解决方案。我发现这是相当片状,然而。有时候,一项工作会因为一些我无法控制的短暂原因而失败。例如,外部服务器返回临时500),并且在下一次重试时,作业成功运行。
我真正需要的是一个仅在CronJob处于持久失败状态时触发的警报。也就是说,Kubernetes已经多次尝试重新运行整个过程,但仍然失败。理想情况下,它还可以处理Pod也无法出现的情况(例如:例如,下载图像失败)。
有什么想法吗?
谢谢。
2条答案
按热度按时间9o685dep1#
首先确认您运行的GKE版本。为此,以下命令将帮助您识别GKE的默认版本和可用版本:
默认版本。
可用版本。
现在您已经知道了您的GKE版本,并且根据您想要的是仅当CronJob处于持久失败状态时才会触发的警报,GKE Workload Metrics是GCP的解决方案,用于提供完全托管且高度可配置的解决方案,用于将GKE工作负载发出的所有Prometheus兼容指标发送到Cloud Monitoring(例如CronJob或应用程序的部署)。但是,因为它现在在G K E 1中被弃用。24并被Google Cloud Managed Service for Prometheus取代,那么最后一个是您在GCP中获得的最佳选择,因为它允许您使用Prometheus监控和提醒您的工作负载,而无需手动管理和大规模操作Prometheus。
此外,您在GCP之外还有两个选择:Prometheus以及Ranch的Prometheus Push Gateway。
最后,仅供参考,它可以手动完成,通过查询作业,然后检查它的开始时间,并将其与当前时间进行比较,这样,使用bash:
或者,您可以将作业的当前状态作为JSON blob,如下所示:
你也可以看到下面的thread以获得更多参考。
将**“Failed”状态作为需求的核心点,使用
kubectl
设置一个bash脚本,以便在看到处于“Failed”**状态的作业时发送电子邮件。在这里我将与您分享一些例子:对于较新的K8:
8xiog9wr2#
我正在寻找相同的解决方案来监控GKE Cronjobs,并发现了这个方法:
通过利用GCP的日志警报功能,我们能够使用以下日志查询在Cronjob的作业被认为失败时得到通知Log Based Alert Doc
样本日志是这样的