Azure Kubernetes 服务 - 查找因 OOM 而被杀死的 Pod 的日志

问题描述 投票:0回答:1

我在 Azure Kubernetes 服务上运行我的 k8s 集群。最近我遇到了一个问题,我的一个 Pod 被 Kubernetes 杀死了,因为它破坏了内存(我的假设)。我正在尝试在 AzureDiagnostics 或任何其他表中查找导致 Pod 终止/崩溃的原因。

我尝试了很多 KQL 查询,但没有看到任何条目。任何帮助将不胜感激。

azure kubernetes azure-aks azure-diagnostics oom
1个回答
0
投票
  • 请注意,OOM可能是由于以下原因造成的,
  1. 分配给您的 pod 的内存不足。

    请打开您的 deployment.yml 并增加内存限制。

  2. 有时开发人员可能会控制需要使用的内存量。如果他们设置了此类限制,请与您的开发人员联系

  3. 检查入口控制器的日志。当入口控制器在默认时间(60 秒)内没有得到响应时,请求将超时,并且 pod 有可能因此而崩溃。

  • 我们还可以使用 azure CLI 来获取有关 Pod 的更多详细信息。

Cmd:kubectl describe pod “pod名称” enter image description here

  • 在 Azure 门户的日志中,您还可以验证 CPU 使用情况,如下图所示查看 Prometheus 和 Pod。

每分钟 CPU 使用百分比enter image description here

从默认的 kubernetes 命名空间查看 Prometheus 磁盘读取指标作为时间图。 enter image description here

Pod 信息查看基于所有阶段的 Pod 阶段计数:失败、待定、未知、运行或成功。 enter image description here

  • 您也可以尝试这个 SO 问题中提到的查询,它可能会有所帮助。如果您有多个 Pod 并且需要快速确定哪些被 OOM 杀死,这个查询可能会有所帮助。
© www.soinside.com 2019 - 2024. All rights reserved.