You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS集群无明显原因启停异常,访问时出现503错误求助

排查步骤建议

一、Ingress 与负载均衡层排查

  • 检查ALB/NLB目标组健康状态:登录AWS控制台找到对应负载均衡的目标组,查看访问出现503时,目标实例(Pod对应的节点ENI)的健康检查失败记录,确认是否是临时健康检查失败导致流量被切走,或是健康检查配置(超时、阈值)过于严格,Pod短暂响应慢就被标记为不健康。
  • 查看Ingress Controller日志:若使用AWS Load Balancer Controller,执行kubectl logs -n kube-system deployment/aws-load-balancer-controller查看日志,搜索503相关条目,排查是否存在流量路由异常、目标组同步错误等信息。
  • 验证Pod端口监听状态:在问题Pod所在节点执行netstat -tulpn | grep <pod-port>,确认容器内端口是否持续监听,有没有短暂停止监听的情况。

二、Pod 与应用层排查

  • 查看Pod事件日志:执行kubectl describe pod <pod-name>,重点检查事件列表中是否有重启、OOMKilled、容器退出记录,哪怕是短暂重启也会引发503。
  • 抓取应用容器日志:用kubectl logs <pod-name> --previous查看容器重启前的日志(若有重启),或用kubectl logs -f <pod-name>实时查看日志,结合访问时间点排查应用内部是否存在未被Newrelic捕获的异常——比如部分异常处理程序仅吞掉错误未记录日志,或是Newrelic Agent配置遗漏了某些日志路径。
  • 关联CPU飙升事件:确认6月26日10点的CPU飙升是单个Pod CPU突增,还是集群节点整体CPU上升。用kubectl top pods(或查看历史监控)定位引发CPU上涨的Pod,确认这些Pod是否与出现503的服务相关。CPU达60%本身一般不会直接导致服务停止,但如果应用是单线程、CPU绑定类型,可能因CPU占满无法处理请求,触发健康检查失败。

三、集群组件层面排查

  • 检查kubelet日志:在出现问题的节点上查看kubelet日志(AWS EKS节点路径一般为/var/log/kubelet.log),搜索是否存在Pod被驱逐、容器运行时(containerd/docker)异常的记录。
  • 排查节点隐性资源瓶颈:尽管内存、磁盘使用率正常,仍需检查节点的**CPU节流(CPU Throttling)**情况。执行kubectl describe node <node-name>查看Conditions中的CPUThrottlingHigh状态,或通过监控工具查看Pod的CPU节流指标——若Pod的CPU请求设置过低,实际使用超过请求时会被kubelet节流,导致应用响应变慢甚至无法处理请求。
  • 检查集群DNS服务:若服务间调用依赖DNS,短暂的DNS解析失败也可能引发503。查看CoreDNS日志kubectl logs -n kube-system deployment/coredns,排查是否存在解析超时、错误的记录。

四、监控盲区补充排查

  • 手动触发健康检查:模拟负载均衡的健康检查请求(如curl <pod-ip>:<port>/health-check-path),在出现503的时间段内持续执行,确认是服务本身无法处理健康检查,还是负载均衡的路由问题。
  • 验证Newrelic配置:确认Newrelic Agent是否正确采集了应用的所有错误日志,比如是否配置了忽略某些错误级别,或是应用的异常处理程序未抛出可被Agent捕获的异常(仅返回503但未记录错误栈)。

内容的提问来源于stack exchange,提问作者johnny68

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:13:18