AMS Accelerate 中的 Amazon EKS 监控和事件管理中的基准警报 - AMS 加速用户指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AMS Accelerate 中的 Amazon EKS 监控和事件管理中的基准警报

验证警报后,AMS 会为 Amazon EKS 启用以下警报,然后对所选的 Amazon EKS 集群进行监控和事件管理。响应时间服务级别协议 (SLAs) 和服务级别目标 (SLOs) 取决于您选择的账户服务级别(Plus、Premium)。有关更多信息,请参阅 AMS Accelerate 中的事件报告和服务请求

警报和操作

下表列出了 Amazon EKS 警报以及 AMS 采取的相应操作:

警报 阈值 操作

容器 OOM 被杀

在过去 10 分钟内,容器重启的总次数至少为 1,Pod 中的 Kubernetes 容器在过去 10 分钟内已终止,原因为 “OOMKilled”。

AMS 会调查 OOM 终止是由于达到容器限制还是内存限制过度使用而导致,然后建议您采取纠正措施。

Pod Job 失败

Kubernetes 任务无法完成。如果存在至少一个失败的任务状态,则表示失败。

AMS 会调查 Kubernetes 作业或相应的 cron 作业失败的原因,然后建议您采取纠正措施。

StatefulSet 向下

在至少 1 分钟内,准备提供流量的副本数量与每个 StatefulSet 副本的当前数量不匹配。

AMS 通过查看 pod 事件中的错误消息和 pod 日志中的错误日志片段来确定 pod 未准备就绪的原因,然后建议您采取更正措施。

HPA 扩展能力

由于状态条件 “AbleToScale” 在至少 2 分钟内为假,水平吊舱自动扩缩器 (HPA) 无法扩展。

AMS 确定哪个 Kubernetes 水平容器自动扩缩器 (HPA) 无法为其后续工作负载资源(例如部署或)扩展 pod。 StatefulSet

HPA 指标可用性

由于状态条件 “ScalingActive” 在至少 2 分钟内为假,水平吊舱自动扩缩器 (HPA) 无法收集指标。

AMS 确定 HPA 无法收集指标的原因,例如与服务器配置问题或 RBAC 授权问题相关的指标。

吊舱未准备好

Kubernetes Pod 处于非运行状态(例如 “待处理”、“未知” 或 “失败”)的时间超过 15 分钟。

AMS 会调查受影响的 pod 以获取详细信息,查看容器日志中是否存在相关的错误和事件,然后建议您采取纠正措施。

吊舱崩溃循环

Pod 容器至少每 15 分钟重启一次,持续 1 小时。

AMS 会调查 Pod 无法启动的原因,例如资源不足、文件被另一个容器锁定、数据库被另一个容器锁定、服务依赖关系失败、外部服务的 DNS 问题以及配置错误。

Daemonset 计划错误

至少有一个 Kubernetes Daemonset pod 在 10 分钟内错时调度。

AMS 决定为何将守护进程安排在不应该运行的节点上。当将错误的 pod 应用于 Da nodeSelector/taints/affinities emonset pod 时,或者当节点(节点池)受到污染并且未安排驱逐现有 Pod 时,可能会发生这种情况。

Kubernetes API 错误

在 2 分钟内,Kubernetes API 服务器的错误率超过 3%。

AMS 会分析控制平面日志,以确定导致此警报的错误数量和类型,并识别主节点或 etcd 自动缩放组的任何资源争用问题。如果 API 服务器无法恢复,AMS 会与 Amazon EKS 服务团队合作。

Kubernetes API 延迟

在 2 分钟内,向 Kubernetes API 服务器发出的请求延迟在 99 个百分位数内超过 1 秒。

AMS 分析控制平面日志,以确定导致延迟的错误数量和类型,并识别主节点或 etcd 自动缩放组的任何资源争用问题。如果 API 服务器无法恢复,AMS 会与 Amazon EKS 服务团队合作。

Kubernetes 客户端证书即将到期

用于向 Kubernetes API 服务器进行身份验证的客户端证书将在不到 24 小时后到期。

AMS 发送此通知是为了通知您,您的集群证书将在 24 小时后过期。

节点未就绪

在至少 10 分钟内,节点 “就绪” 状态为假。

AMS 会调查阻止 kubelet 访问 API 服务器的节点状况和事件,例如网络问题。

节点高 CPU

在 5 分钟内,CPU 负载超过 80%。

AMS 会确定一个或多个 pod 消耗的 CPU 量是否异常高。然后,AMS 会与您核实您的请求、限制和 pod 活动是否符合预期。

检测到节点 OOM 杀死

在 4 分钟的时间段内,该节点至少报告了一次主机 OOM 终止。

AMS 确定 OOM 终止是由于达到容器限制还是节点过度使用而导致。如果应用程序活动正常,AMS 会就超额提交的请求和限制以及修改 Pod 限制向您提供建议。

节点连接限制

在 5 分钟内,当前连接跟踪条目数与最大限制的比率超过 80%。

AMS 会根据每个内核的推荐连接值为您提供建议。Kubernetes 节点将 conntrack 最大值设置为与节点的总内存容量成正比。高负载应用程序,尤其是在较小的节点上,很容易超过 conntrack 的最大值,从而导致连接重置和超时。

节点时钟不同步

2 分钟内的最低同步状态为 0,以秒为单位的最大错误为 16 或更高。

AMS 确定网络时间协议 (NTP) 是否已安装并正常运行。

Pod 高 CPU

容器的 CPU 使用率在 3 分钟内超过 80%,持续至少 2 分钟。

AMS 会调查 pod 日志,以确定消耗大量 CPU 的 pod 任务。

Pod 高内存

容器的内存使用率在 2 分钟内超过其指定内存限制的 80%。

AMS 会调查 pod 日志,以确定消耗大量内存的 pod 任务。

CoreDNS 关闭

CoreDNS 已经从 Prometheus 的目标发现中消失了超过 15 分钟。

这是一个严重警报,表示内部或外部群集服务的域名解析已停止。AMS 会检查 CoreDNS 容器的状态,验证 CoreDNS 配置,验证指向 CoreDNS 容器的 DNS 端点,验证 CoreDNS 限制,并在您批准后启用 CoreDNS 调试日志。

CoreDNS 错误

CoreDNS 会在 10 分钟内对超过 3% 的 DNS 请求返回 SERVFAIL 错误。

此警报可能表示应用程序存在问题或配置错误。AMS 会检查 CoreDNS 容器的状态,验证 CoreDNS 配置,验证指向 CoreDNS 容器的 DNS 端点,验证 CoreDNS 限制,并在您批准后启用 CoreDNS 调试日志。

CoreDNS 延迟

DNS 请求持续时间的第 99 个百分位数超过 4 秒,持续 10 分钟。

此警报表示 CoreDNS 可能已过载。AMS 会检查 CoreDNS 容器的状态,验证 CoreDNS 配置,验证指向 CoreDNS 容器的 DNS 端点,验证 CoreDNS 限制,并在您批准后启用 CoreDNS 调试日志。

CoreDNS 转发延迟

CoreDNS 将请求转发到 kube-dns 的响应时间的第 99 个百分位数在 10 分钟内超过 4 秒。

当 CoreDNS 不是权威服务器或者没有域名的缓存条目时,CoreDNS 会将 DNS 请求转发到上游 DNS 服务器。此警报表示 CoreDNS 可能已过载或上游 DNS 服务器可能存在问题。AMS 会检查 CoreDNS 容器的状态,验证 CoreDNS 配置,验证指向 CoreDNS 容器的 DNS 端点,验证 CoreDNS 限制,并在您批准后启用 CoreDNS 调试日志。

CoreDNS 转发错误

超过 3% 的 DNS 查询在 5 分钟内失败。

当 CoreDNS 不是权威服务器或者没有域名的缓存条目时,CoreDNS 会将 DNS 请求转发到上游 DNS 服务器。此警报表示上游 DNS 服务器可能存在配置错误或问题。AMS 会检查 CoreDNS 容器的状态,验证 CoreDNS 配置,验证指向 CoreDNS 容器的 DNS 端点,验证 CoreDNS 限制,并在您批准后启用 CoreDNS 调试日志。