本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 调试日志。 |