你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Kubernetes 群集的建议警报规则
Azure Monitor 中的警报会主动识别与 Azure 资源的运行状况和性能相关的问题。 本文介绍如何启用和编辑为 Kubernetes 群集预定义的一组建议的指标警报规则。
警报规则的类型
Kubernetes 群集使用两种类型的指标警报规则。
预警规则类型 | 说明 |
---|---|
Prometheus 指标警报规则(预览版) | 使用 Azure Monitor 适用于 Prometheus 的托管服务中从你的 Kubernetes 群集收集的指标数据。 这些规则要求在群集上启用 Prometheus,并将其存储在 Prometheus 规则组中。 |
平台指标警报规则 | 使用从你的 AKS 群集自动收集并存储为 Azure Monitor 警报规则的指标。 |
启用建议的警报规则
使用以下方法之一为群集启用建议的警报规则。 可以为同一群集启用 Prometheus 和平台指标警报规则。
使用 Azure 门户时,Prometheus 规则组将在群集所在的同一区域中创建。
编辑建议的警报规则
创建完规则组后,无法在门户中使用相同的页面编辑规则。 对于 Prometheus 指标,必须编辑规则组以修改其中的任何规则,包括启用尚未启用的任何规则。 对于平台指标,可以编辑每个警报规则。
禁用警报规则组
禁用规则组以停止在其中接收来自规则的警报。
建议的警报规则详细信息
下表列出了每个建议的警报规则的详细信息。 GitHub 中提供了每个规则的源代码以及来自 Prometheus 社区的故障排除指南。
Prometheus 社区警报规则
群集级别警报
警报名称 | 说明 | 默认阈值 | 时间范围(分钟) |
---|---|---|---|
KubeCPUQuotaOvercommit | 在过去 5 分钟内,分配给命名空间的 CPU 资源配额超过群集节点上可用 CPU 资源 50% 以上。 | >1.5 | 5 |
KubeMemoryQuotaOvercommit | 在过去 5 分钟内,分配给命名空间的内存资源配额超过群集节点上可用内存资源 50% 以上。 | >1.5 | 5 |
OOM 终止的容器数大于 0 | 在过去 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 级别警报
警报名称 | 说明 | 默认阈值 | 时间范围(分钟) |
---|---|---|---|
平均 PV 使用率大于 80% | 在过去 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 |
Pod 容器在过去 1 小时内重新启动 | 在过去一小时内,Kubernetes 群集中 Pod 内的一个或多个容器至少被重启了一次。 | >0 | 15 |
处于就绪状态的 Pod 百分比小于 80% | 在过去 5 分钟内,Kubernetes 群集中任何部署或守护程序集处于就绪状态的 Pod 百分比低于 80%。 | <0.8 | 5 |
处于失败状态的 Pod 数大于 0。 | 过去 5 分钟内,一个或多个 Pod 处于失败状态。 | >0 | 5 |
KubePodNotReadyByController | 在过去 15 分钟内,一个或多个 Pod 未处于就绪状态(即处于“挂起”或“未知”阶段)。 | >0 | 15 |
KubeStatefulSetGenerationMismatch | 在过去 15 分钟内,观察到的 Kubernetes StatefulSet 的生成与其元数据生成不匹配。 | 空值 | 15 |
KubeJobFailed | 在过去 15 分钟内,一个或多个 Kubernetes 作业失败。 | >0 | 15 |
每个容器的平均 CPU 使用率大于 95% | 在过去 5 分钟内,每个容器的平均 CPU 使用率超过 95%。 | >0.95 | 5 |
每个容器的平均内存使用率大于 95% | 在过去 5 分钟内,每个容器的平均内存使用率超过 95%。 | >0.95 | 10 |
KubeletPodStartUpLatencyHigh | 在过去 10 分钟内,Pod 启动延迟的第 99 百分位超过 60 秒。 | >60 | 10 |
平台指标警报规则
警报名称 | 说明 | 默认阈值 | 时间范围(分钟) |
---|---|---|---|
节点 CPU 百分比大于 95% | 在过去 5 分钟内,节点 CPU 百分比大于 95%。 | 95 | 5 |
节点内存工作集百分比大于 100% | 在过去 5 分钟内,节点内存工作集百分比大于 95%。 | 100 | 5 |
旧容器见解指标警报(预览版)
容器见解中的指标规则将于 2024 年 5 月 31 日停用(此前宣布为 2026 年 3 月 14 日)。 自 2023 年 8 月 15 日以来,这些规则无法使用门户创建。 这些规则处于公共预览版,但由于本文中介绍的新的建议的指标警报现已推出,它们将停用而不会正式发布。
如果你已启用这些旧警报规则,则应禁用它们并启用新体验。
禁用指标警报规则
- 从群集的“见解”菜单中,选择“建议的警报(预览版)”。
- 将每个警报规则的状态更改为“禁用”。