共用方式為

使用 Azure Monitor 分析 Kubernetes 群集的运行状况和状态

Azure Monitor 在 Azure 门户中提供了一组视图,该视图结合了从 Kubernetes 群集收集的性能和日志数据,以帮助分析其运行状况和性能。 本文介绍可用的不同视图,以及如何与其呈现的数据进行交互和解释。

多群集视图

若要打开多群集视图,请从 Azure 门户中“监视”菜单的“见解”部分选择“容器”。 此视图显示订阅中跨资源组部署的所有受监视 Kubernetes 群集的运行状况。 此视图使你能够快速识别处于严重或不正常状态的群集,还有助于为环境中的所有群集启用和配置监视。 有关详细信息,请参阅 “启用对 AKS 群集的监视 ”。

显示 Azure Monitor 多群集仪表板示例的屏幕截图。

注意

此视图中不再支持 Azure Stack(预览版)和非 Azure(预览版)。

选择 “节点 ”列以打开该群集的单群集视图中的 “节点 ”选项卡。 通过选择“用户 Pod”或“系统 Pod”列,打开具有适当筛选器的群集的“控制器”选项卡。

下表描述了此视图中显示的不同健康状态。 运行状况将总体群集状态计算为三种状态中的最差。 如果这三种状态中的任一状态为 “未知”,则总体群集状态显示 “未知”。

状态 说明
正常 VM 未检测到任何问题,并且它按要求运行。
警告 检测到一个或多个必须解决的问题,否则健康状况可能变得严重。
严重 检测到必须解决的一个或多个关键问题才能按预期还原正常作状态。
未经 授权 用户没有读取工作区中的数据或数据收集规则所收集数据的必要权限。
未找到 工作区、资源组或包含工作区的订阅已删除。
启用录制规则 启用 Prometheus 记录规则 以解锁高性能数据和 Prometheus 可视化效果。
配置不当 出现错误。
错误 尝试从工作区读取数据时出错。
无数据 在过去的 30 分钟内,没有数据传送到工作区。
未知 如果服务无法与节点或 Pod 建立连接,状态将更改为“未知”状态。
Pending 已启用 Arc 的群集的监视配置通常需要大约 5 分钟。 如果群集与 Azure 断开连接,则此过程可能会延迟。
等待 X 小时 已启用 Arc 服务的群集监控配置耗时比预期更长。
已失败 已启用 Arc 的群集的监视配置失败。

下表提供了计算明细,该计算控制多群集视图中受监视群集的运行状况。

受监视的群集 状态 可用性
用户 Pod 正常
警告
严重
未知
100%
90 - 99%
<90%
未在过去 30 分钟报告
系统 Pod 正常
警告
严重
未知
100%
空值
100%
未在过去 30 分钟报告
节点 正常
警告
严重
未知
>85%
60 - 84%
<60%
未在过去 30 分钟报告

单个群集视图

若要打开单个群集视图,请从多群集视图中选择群集,或者从群集的菜单中选择“ 监视 ”。 此视图提供了多个选项卡,可用于向下钻取所选群集的运行状况和性能。

选项

显示单个群集视图的可视化设置的屏幕截图。

选项 说明
可视化 允许你选择用于填充视图的数据源。 托管 Prometheus 可视化 是首选设置,它使用存储在 Azure Monitor 工作区中的 Prometheus 指标。 为群集启用托管 Prometheus 时,这些设置会被启用。 Log Analytics 可视化效果 使用存储在 Log Analytics 工作区中的性能数据。 如果未在 日志记录配置文件中收集性能数据,则可能不会收集此数据。 如果未为群集启用托管 Prometheus,则此选项将不可用。
刷新 刷新视图中的数据。
显示器设置 打开群集的监视配置设置。 有关详细信息,请参阅 “启用对 AKS 群集的监视 ”。
查看 Grafana 显示与群集的 Azure Monitor 工作区关联的任何托管 Grafana 实例的列表。 可以打开实例的仪表板,也可以查看实例的配置。
建议的警报 为群集配置建议的警报。 有关详细信息,请参阅 为 Kubernetes 群集创建建议的警报
查看所有群集 打开 多群集视图

数据筛选

单群集视图中的每个选项卡都提供了筛选所显示数据的选项。 每个选项卡都有收集 的时间范围的 筛选器。 “节点”、“控制器”和“容器”选项卡允许您通过选择“添加筛选器”来根据数据、节点或命名空间添加筛选条件。

“概述”选项卡

概述 ”选项卡提供一组磁贴,其中显示了该群集的运行状况和性能。 尚未启用某些监视功能时,这些磁贴中的几个可能会被禁用。 在这种情况下,磁贴将提供一个选项来启动群集的载入过程。 请参阅使用 Azure 门户启用 Kubernetes 监视,了解详细信息。

节点、控制器和容器选项卡

“节点”、“控制器”和“容器”选项卡显示群集的这些资源的列表。 如果未收集群集的性能数据,则会禁用选项卡。 在这种情况下,选项卡将提供一个选项来启动群集的载入过程。 请参阅使用 Azure 门户启用 Kubernetes 监视,了解详细信息。

状态

状态” 字段中的图标指示项目的联机状态,如下表所述。

图标 状态
“正在等待”或“已暂停”
上次报告正在运行但已超过 30 分钟未响应
成功停止或无法停止
“已失败”状态

选择指标

“节点”、“控制器”和“容器”选项卡包含用于视图中值的指标的选项。

显示容器节点性能视图的屏幕截图。

若要查看内存利用率,可在“指标”下拉列表中选择“内存 RSS”或“内存工作集”。 仅 Kubernetes 1.8 版和更高版本支持内存 RSS。 否则,看到的 Min % 值会显示为 NaN %,它表示未定义或无法表示的值的数值数据类型值。

“内存工作集”显示包含的驻留内存和虚拟内存(缓存),是应用程序正在使用的内存的总和。 “内存 RSS”只显示主内存(只显示驻留内存,而不显示任何其他内存)。 此指标显示可用内存的实际容量。

  • 驻留内存(也称为主内存)是可用于群集节点的实际计算机内存量。
  • 虚拟内存是保留的硬盘空间(缓存),操作系统在遇到内存压力时,会使用这些空间将内存中的数据交换到磁盘,并在需要时将数据提回到内存。

选择度量计算

百分位选择器定义如何在所选时间范围内聚合指标。 聚合列的标题将更改为与所选选项匹配。

显示用于数据筛选的百分位选择的屏幕截图。

趋势数据列

当鼠标悬停在“趋势”列下的条形图上方时,每一条都显示 15 分钟示例期间内的 CPU 或内存使用情况(具体取决于所选指标)。 通过键盘选择趋势图后,使用 Alt+PageUp 或 Alt+PageDown 键单独循环浏览每个条形。 获得的详细信息与将鼠标悬停在图表上时一样。

显示趋势条形图悬停示例的屏幕截图。

在下一个示例中,对于列表中的第一节点 aks-nodepool1-,其“容器”的值为 25。 此值表示部署的容器汇总总数。

显示单节点容器数汇总示例的屏幕截图。

属性窗格

选择任意项以打开显示选定项的属性的属性窗格。 选择一个 Linux 节点时,“本地磁盘容量”部分还会显示可用磁盘空间以及用于每个提供给节点的磁盘的百分比。 在此窗格中,还可以通过选择窗格顶部的 “实时事件 ”选项卡来查看 Kubernetes 容器日志(stdout/stderror)、事件和 Pod 指标。 有关此功能的详细信息,请参阅如何实时查看 Kubernetes 日志、事件和 Pod 指标

查看日志数据

若要根据预定义日志搜索查看所选资源的日志数据,请从属性窗格中选择 “查看 Log Analytics 中的事件 ”。 有关此数据和日志查询的详细信息,请参阅 如何查询容器日志

“节点”选项卡

下表描述了 “节点 ”选项卡中的列。

说明
名称 主机的名称。
状态 节点状态的 Kubernetes 视图。
Min %、Avg %、50th %、90th %、95th %、Max % 基于所选时段百分位的平均节点百分比。
Min、Avg、50th、90th、95th、Max 基于所选时段的平均节点实际值。 平均值根据为节点设置的 CPU/内存限制进行计算。 对于 Pod 和容器,平均值为主机报告的平均值。
容器 容器数量。
运行时间 表示节点启动或重启后的时间。
控制器 仅适用于容器和 Pod。 它显示驻留的控制器。 并非所有 Pod 都在控制器中,因此有些 Pod 可能会显示 N/A
趋势 Min %、Avg %、50th %、90th %、95th %、Max % 条形图趋势表示控制器的平均百分位指标百分比。

节点 ”选项卡中的行层次结构遵循 Kubernetes 对象模型。 展开一个节点以查看其中的 Pod。 如果将多个容器分组到 Pod 中,它们将在层次结构中的最后一行显示。 还可查看有多少非 Pod 相关工作负荷在主机上运行(如果主机有处理器或内存使用压力)。

显示性能视图中的 Kubernetes 节点层次结构示例的屏幕截图。

Windows Server 容器显示在列表中所有基于 Linux 的节点之后。 展开 Windows Server 节点时,可以查看在节点上运行的一个或多个 Pod 和容器。 选择节点后,属性窗格会显示版本信息。

显示列出了 Windows Server 节点的示例节点层次结构的屏幕截图。

运行 Linux OS 的 Azure 容器实例虚拟节点显示在列表中最后一个 AKS 群集节点之后。 展开容器实例虚拟节点时,可以查看在节点上运行的一个或多个容器实例 Pod 和容器。 不会为节点(只为 Pod)收集和报告指标。

显示列出了容器实例的示例节点层次结构的屏幕截图。

从展开的节点中,你可以从在节点上运行的 pod 或容器向下钻取到控制器来查看针对该控制器筛选的性能数据。 选择特定节点的“控制器”列下的值。

显示性能视图中从节点到控制器的向下钻取的屏幕截图。

“其他进程”条目视图旨在帮助你清楚地了解节点上资源使用率过高的根本原因。 此信息有助于区分容器化进程与非容器化进程的使用情况。 这些是在节点上运行的非容器化进程,包括以下各项:

  • 自行管理或托管的 Kubernetes 非容器化进程
  • 容器运行时处理过程
  • Kubelet
  • 节点上运行的系统进程
  • 在节点硬件或 VM 上运行的其他非 Kubernetes 工作负荷

其他进程的值为 Total usage from CAdvisor - Usage from containerized process

“控制器”选项卡

控制器 ”选项卡允许查看控制器、虚拟节点控制器和未连接到控制器的虚拟节点 Pod 的性能运行状况。

显示 \<Name> 控制器性能视图的屏幕截图。

行层次结构以控制器开始。 展开控制器时,可以查看一个或多个 Pod。 展开 Pod,最后一行显示分组到 Pod 的容器。 从展开的控制器中,你可以向下钻取到运行它的节点来查看针对该节点筛选的性能数据。 未连接到控制器的容器实例 Pod 在列表中最后列出。

显示列出了容器实例 Pod 的示例控制器层次结构的屏幕截图。

选择特定控制器的“节点”列下的值。

显示性能视图中从控制器到节点的示例向下钻取的屏幕截图。

下表描述了“ 控制器 ”选项卡中的列。

说明
名称 控制器的名称。
状态 容器运行完成后的汇总状态。 状态图标显示的计数基于 Pod 提供的数据。 它显示最差的两个状态。 将鼠标悬停在状态上时,它显示容器中所有 Pod 的汇总状态。 如果没有就绪状态,状态值会显示 (0)
Min %、Avg %、50th %、90th %、95th %、Max % 每个实体在选定指标和百分位的平均百分比的汇总平均值。
Min、Avg、50th、90th、95th、Max 容器在选定百分位的平均 CPU millicore 或内存性能汇总。 平均值根据为 Pod 设置的 CPU/内存限制进行计算。
容器 控制器或 Pod 的容器总数。
重启数 容器重启计数汇总。
运行时间 表示容器启动后的时间。
Node 仅适用于容器和 Pod。 它显示驻留的控制器。
趋势 Min %、Avg %、50th %、90th %、95th %、Max % 条形图趋势表示控制器的平均百分位指标。

“容器”选项卡

使用“ 容器 ”选项卡可以查看容器的性能运行状况。

显示 \<Name> 容器性能视图的屏幕截图。

从容器中,可以向下钻取到某个 pod 或节点来查看针对该对象筛选的性能数据。 选择特定容器的“Pod”或“节点”列下的值。

显示性能视图中从节点到容器的示例向下钻取的屏幕截图。

下表描述了“ 容器 ”选项卡中的列。

说明
名称 容器的名称。
状态 容器的状态。
Min %、Avg %、50th %、90th %、95th %、Max % 每个实体在选定指标和百分位的平均百分比汇总。
Min、Avg、50th、90th、95th、Max 容器在选定百分位的平均 CPU millicore 或内存性能汇总。 平均值根据为 Pod 设置的 CPU/内存限制进行计算。
Pod(容器) Pod 驻留的容器。
Node 容器驻留的节点。
重启数 表示容器启动后的时间。
运行时间 表示容器启动或重启后的时间。
趋势 Min %、Avg %、50th %、90th %、95th %、Max % 条形图趋势表示容器的平均百分位指标百分比。

后续步骤

  • 请参阅使用容器见解创建性能警报,了解如何创建在 CPU 和内存使用率过高时会发出的警报,为 DevOps 或操作进程和过程提供支持。
  • 请参阅日志查询示例,以查看预定义的查询,以及有关群集警报、可视化或分析的评估或自定义示例。