问题:编写查询以检查所有 Kubernetes 节点以确保 coredns 正在运行,如果没有 - 它是否已经超过 30 分钟?- 如果是,发送警报。
警报部分将是我最初的问题的次要部分,不必在此线程上解决。我只想弄清楚如何首先获得这些信息。
本质上:嘿节点,你有一个名为 coredns.* 的 pod 正在运行吗?如果不是,距离你这样做已经超过 30m 了吗?
我的策略:我假设搜索没有 coredns.* pod 名称的节点是我开始的方式。
FROM K8sPodSample SELECT nodeName WHERE podName != 'coredns.*'
然后,将时间范围设置为从 31 分钟前开始。(不确定这是否显示 31 分钟内没有 pod 的节点,或者是否显示 31 分钟前没有它的所有 pod ,即使只有几分钟)
SINCE 31 minute ago
这是一个集群级别的查询,所以我也会添加它。
WHERE clusterName = '<clusterName>'
然后,如果这工作正常,我将为出现在此列表中的任何节点生成警报。
我是否正确地考虑了这一点,或者可以以更好的方式实现这一点?
更新:我的新策略是返回一个 nodeName ,其中名称中包含 coredns 的 pod 数量为 0 ...仍在解决这部分问题。