为什么我的DataDog实例报告Kubernetes"no_pod"?

jon*_*are 6 kubernetes datadog kubernetes-health-check

我们在AWS中运行Kubernetes集群,我们正在使用dd-agent DaemonSet在DataDog中收集指标.

我们的指标中显示了一个标记为"no_pod"的Pod,它使用了大量资源,内存/ CPU/NetworkTx/NetworkRX.

有什么解释这个pod是什么,我怎么能找到它,杀死它,重新启动它等?

我找到了似乎定义了"no_pod"标签的dd-agent 源代码,但我无法理解它为什么存在,它来自何处以及如何通过kubectl等找到它.

在此输入图像描述

jon*_*are 4

在与 DataDog 的支持团队交谈后,我设法找到了与 no_pod pod 相关的以下信息。

我们的 Kubernetes 检查是从 Kubernetes API 获取容器列表,该 API 公开聚合数据。在此处的度量资源管理器配置中,您可以看到几个名为 /docker 和 / 的容器与其他容器一起被拾取。来自container_name:/ 和container_name:/docker 的带有pod_name:no_pod 的指标只是跨多个容器聚合的指标。(因此,这些是图表中的最高值是有道理的。)如果您不希望图表显示这些聚合容器指标,您可以克隆仪表板,然后从查询中排除这些 Pod。为此,在克隆的仪表板上,只需在 JSON 选项卡中编辑查询,然后在标记范围中添加 !pod_name:no_pod。

因此,这些 Pod 似乎是在集群外部运行的 docker 和根级容器,并且将始终显示,除非您想像我现在那样专门过滤掉它们。

非常感谢 DataDog 的支持人员为我研究了这个问题,并为我提供了有关 Pod 的详细解释,并从本质上确认我可以安全地过滤掉这些 Pod,而不必担心它们。