你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Kubernetes 群集的建议警报规则

Azure Monitor 中的警报会主动识别与 Azure 资源的运行状况和性能相关的问题。 本文介绍如何启用和编辑为 Kubernetes 群集预定义的一组建议的指标警报规则。

使用以下方法之一为群集启用建议的警报规则。 可以为同一群集启用 Prometheus 和平台指标警报规则。

注意

若要在已启用 Arc 的 Kubernetes 群集上启用建议的警报,ARM 模板是唯一受支持的方法。

使用 Azure 门户时,Prometheus 规则组将在群集所在的同一区域中创建。

  1. 在群集的“警报”菜单中,选择“设置建议”。

    AKS 群集的屏幕截图,其中显示了“设置建议”按钮。

  2. 可用的 Prometheus 和平台警报规则随 Prometheus 规则一起显示,按 Pod、群集和节点级别分类。 切换一组 Prometheus 规则以启用该规则集。 展开组以查看各个规则。 可以保留默认值或禁用单个规则,并编辑其名称和严重性。

    启用 Prometheus 警报规则的屏幕截图。

  3. 切换平台指标规则以启用该规则。 可以展开规则以修改其详细信息,例如名称、严重性和阈值。

    启用平台指标警报规则的屏幕截图。

  4. 选择一个或多个通知方法以创建新的操作组,或选择包含此警报规则集的通知详细信息的现有操作组。

  5. 单击“保存”以保存规则组。

创建完规则组后,无法在门户中使用相同的页面编辑规则。 对于 Prometheus 指标,必须编辑规则组以修改其中的任何规则,包括启用尚未启用的任何规则。 对于平台指标,可以编辑每个警报规则。

  1. 在群集的“警报”菜单中,选择“设置建议”。 已创建的任何规则或规则组都将标记为“已创建”。

  2. 展开规则或规则组。 对于 Prometheus,单击“查看规则组”;对于平台指标,单击“查看警报规则”。

    视图规则组选项的屏幕截图。

  3. 对于 Prometheus 规则组:

    1. 选择“规则”以查看组中的警报规则。

    2. 单击要修改的规则旁边的“编辑”图标。 使用“创建警报规则”中的指南来修改规则。

      编辑 Prometheus 警报规则的选项的屏幕截图。

    3. 完成组中的规则编辑后,单击“保存”以保存规则组。

  4. 对于平台指标:

    1. 单击“编辑”以打开警报规则的详细信息。 使用“创建警报规则”中的指南来修改规则。

      编辑平台指标规则的选项的屏幕截图。

禁用警报规则组

禁用规则组以停止在其中接收来自规则的警报。

  1. 查看 Prometheus 警报规则组或平台指标警报规则,如“编辑建议的警报规则”中所述。

  2. 在“概览”菜单中,选择“禁用”。

    禁用规则组的选项的屏幕截图。

下表列出了每个建议的警报规则的详细信息。 GitHub 中提供了每个规则的源代码以及来自 Prometheus 社区的故障排除指南

Prometheus 社区警报规则

群集级别警报

警报名称 说明 默认阈值 时间范围(分钟)
KubeCPUQuotaOvercommit 在过去 5 分钟内,分配给命名空间的 CPU 资源配额超过群集节点上可用 CPU 资源 50% 以上。 >1.5 5
KubeMemoryQuotaOvercommit 在过去 5 分钟内,分配给命名空间的内存资源配额超过群集节点上可用内存资源 50% 以上。 >1.5 5
KubeContainerOOMKilledCount 在过去 5 分钟内,Pod 中的一个或多个容器因内存不足 (OOM) 事件而被终止。 >0 5
KubeClientErrors 在过去 15 分钟内,Kubernetes API 请求中的客户端错误率(以 5xx 开头的 HTTP 状态代码)超过 API 总请求率的 1%。 >0.01 15
KubePersistentVolumeFillingUp 根据可用空间比率、已用空间和过去 6 小时可用空间的预测线性趋势,永久性卷正在被填满,预计可用空间将耗尽。 在过去 60 分钟内评估了这些情况。 空值 60
KubePersistentVolumeInodesFillingUp 在过去 15 分钟内,某个永久性卷中的 inode 少于 3% 可用。 <0.03 15
KubePersistentVolumeErrors 在过去 5 分钟内,一个或多个永久性卷处于失败或挂起阶段。 >0 5
KubeContainerWaiting 在过去 60 分钟内,Kubernetes Pod 中的一个或多个容器处于等待状态。 >0 60
KubeDaemonSetNotScheduled 在过去 15 分钟内,一个或多个 Pod 没有在任何节点上有日程安排。 >0 15
KubeDaemonSetMisScheduled 在过去 15 分钟内,群集中错误安排了一个或多个 Pod。 >0 15
KubeQuotaAlmostFull 过去 15 分钟内,Kubernetes 资源配额的利用率在硬上限的 90% 到 100% 之间。 >0.9 <1 15

节点级别警报

警报名称 说明 默认阈值 时间范围(分钟)
KubeNodeUnreachable 在过去 15 分钟内,节点无法访问。 1 15
KubeNodeReadinessFlapping 在过去 15 分钟内,节点的就绪状态已更改了 2 次以上。 2 15

Pod 级别警报

警报名称 说明 默认阈值 时间范围(分钟)
KubePVUsageHigh 在过去 15 分钟内,Pod 上的永久性卷 (PV) 的平均使用率超过 80%。 >0.8 15
KubeDeploymentReplicasMismatch 在过去 10 分钟内,所需副本数与可用副本数不匹配。 空值 10
KubeStatefulSetReplicasMismatch 在过去 15 分钟内,StatefulSet 中的就绪副本数与 StatefulSet 中的副本总数不匹配。 空值 15
KubeHpaReplicasMismatch 在过去 15 分钟内,群集中的水平 Pod 自动缩放程序未匹配所需的副本数。 空值 15
KubeHpaMaxedOut 在过去 15 分钟内,群集中的水平 Pod 自动缩放程序 (HPA) 在最大副本上运行。 空值 15
KubePodCrashLooping 在过去 15 分钟内,一个或多个 Pod 处于 CrashLoopBackOff 状态,即 Pod 一直在启动后崩溃,并且无法成功恢复。 >=1 15
KubeJobStale 在过去 6 小时内,至少有一个作业实例未成功完成。 >0 360
KubePodContainerRestart 在过去一小时内,Kubernetes 群集中 Pod 内的一个或多个容器至少被重启了一次。 >0 15
KubePodReadyStateLow 在过去 5 分钟内,Kubernetes 群集中任何部署或守护程序集处于就绪状态的 Pod 百分比低于 80%。 <0.8 5
KubePodFailedState 过去 5 分钟内,一个或多个 Pod 处于失败状态。 >0 5
KubePodNotReadyByController 在过去 15 分钟内,一个或多个 Pod 未处于就绪状态(即处于“挂起”或“未知”阶段)。 >0 15
KubeStatefulSetGenerationMismatch 在过去 15 分钟内,观察到的 Kubernetes StatefulSet 的生成与其元数据生成不匹配。 空值 15
KubeJobFailed 在过去 15 分钟内,一个或多个 Kubernetes 作业失败。 >0 15
KubeContainerAverageCPUHigh 在过去 5 分钟内,每个容器的平均 CPU 使用率超过 95%。 >0.95 5
KubeContainerAverageMemoryHigh 在过去 5 分钟内,每个容器的平均内存使用率超过 95%。 >0.95 10
KubeletPodStartUpLatencyHigh 在过去 10 分钟内,Pod 启动延迟的第 99 百分位超过 60 秒。 >60 10

平台指标警报规则

警报名称 说明 默认阈值 时间范围(分钟)
节点 CPU 百分比大于 95% 在过去 5 分钟内,节点 CPU 百分比大于 95%。 95 5
节点内存工作集百分比大于 100% 在过去 5 分钟内,节点内存工作集百分比大于 100%。 100 5

旧容器见解指标警报(预览版)

容器见解中的指标规则已于 2024 年 5 月 31 日停用。 这些规则之前处于公共预览版,但由于本文中介绍的新的建议的指标警报现已推出,这些规则将停用而不会正式发布。

如果你已启用这些旧警报规则,则应禁用它们并启用新体验。

禁用指标警报规则

  1. 从群集的“见解”菜单中,选择“建议的警报(预览版)”
  2. 将每个警报规则的状态更改为“禁用”

旧警报映射

下表将每个旧容器见解指标警报映射为等效的建议 Prometheus 指标警报。

建议的自定义指标警报 建议的等效 Prometheus/Platform 指标警报 条件
已完成作业计数 KubeJobStale(Pod 级别警报) 在过去 6 小时内,至少有一个作业实例未成功完成。
容器 CPU 百分比 KubeContainerAverageCPUHigh(Pod 级别警报) 在过去 5 分钟内,每个容器的平均 CPU 使用率超过 95%。
容器工作集内存利用率 (%) KubeContainerAverageMemoryHigh(Pod 级别警报) 在过去 5 分钟内,每个容器的平均内存使用率超过 95%。
故障 Pod 计数 KubePodFailedState(Pod 级别警报) 过去 5 分钟内,一个或多个 Pod 处于失败状态。
节点 CPU 利用率 (%) 节点 CPU 百分比大于 95%(Platform 指标) 在过去 5 分钟内,节点 CPU 百分比大于 95%。
节点磁盘使用率 (%) 空值 节点的磁盘平均使用率大于 80%。
节点未就绪状态 KubeNodeUnreachable(节点级别警报) 在过去 15 分钟内,节点无法访问。
节点工作集内存利用率 (%) 节点内存工作集百分比大于 100% 在过去 5 分钟内,节点内存工作集百分比大于 100%。
OOM 终止的容器数 KubeContainerOOMKilledCount(群集级别警报) 在过去 5 分钟内,Pod 中的一个或多个容器因内存不足 (OOM) 事件而被终止。
永久性卷使用率 (%) KubePVUsageHigh(Pod 级别警报) 在过去 15 分钟内,Pod 上的永久性卷 (PV) 的平均使用率超过 80%。
已就绪 Pod 百分比 KubePodReadyStateLow(Pod 级别警报) 在过去 5 分钟内,Kubernetes 群集中任何部署或守护程序集处于就绪状态的 Pod 百分比低于 80%。
重启容器计数 KubePodContainerRestart(Pod 级别警报) 在过去一小时内,Kubernetes 群集中 Pod 内的一个或多个容器至少被重启了一次。

后续步骤