AKS Container Insights:如何列出未就绪 pods?

AKS Container Insights: How to list not ready pods?

我正在为 AKS 群集使用 Azure Container Insights,并希望使用 Log Analytics 和 Kusto 查询语言筛选一些日志。我这样做是为了提供方便的仪表板和警报。

我想要实现的只是列表未准备好 pods。列出不 运行 的是不够的。这可以使用 kubectl 轻松过滤,例如按照这个 post 但是,当使用 Kusto 在日志分析中查询时,此数据不可用,因为 containerStatuses 似乎只是一个字符串

这应该是有可能的,因为 Container Insights 允许在 Metrics 部分进行这种过滤。然而,它并不完全令人满意,因为使用指标我的过滤能力要小得多。

您可以按照下面的方式在最后 1 小时内完成 pods。

let endDateTime = now();
let startDateTime = ago(1h);
 
KubePodInventory
| where TimeGenerated < endDateTime
| where TimeGenerated >= startDateTime
| where PodStatus != "Running"
| distinct Computer, PodUid, TimeGenerated, PodStatus

efdestegul 的回答只是没有列出“运行”pods,我正在寻找尚未准备好的答案。然而,这个答案让我想到了一个我真正需要的问题,谢谢你。也许这会对其他人有所帮助。

let timeGrain=1m;

KubePodInventory
// | where Namespace in ('my-namespace-1', 'my-namespace-2')
| summarize countif(ContainerStatus == 'waiting') by bin(TimeGenerated,timeGrain)
| order by countif_ desc
| render timechart

通过此查询,我能够呈现一个图表,及时显示所有未就绪 pods。实际上,以一种非常有用的方式,只有 pods 没有准备好超过预期,他们需要重新启动。您始终可以针对所需的任何名称空间过滤结果。