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

AWS kops部署K8s集群Nginx Ingress出现间歇性502 Bad Gateway错误

需优先检查的日志与排查点

  • 业务Pod内部日志:优先排查异常Pod的标准输出/标准错误日志(kubectl logs <异常pod名称> [-c 容器名]),以及应用自身的日志文件,重点查找进程崩溃重启、OOM异常、监听队列溢出、最大连接数打满、GC停顿过长的相关记录。当前返回RST包是Pod侧直接响应,绝大多数情况是业务应用侧的端口监听出现了间歇性异常。
  • 节点kubelet日志:登录异常Pod所在的节点,执行journalctl -u kubelet或查看/var/log/kubelet.log,检查是否有针对该Pod的存活/就绪探针检测失败、Pod被驱逐、容器自动重启、生命周期钩子执行失败的记录。如果探针配置不合理,会出现偶发的Pod重启,重启过程中端口未监听就会返回连接拒绝。
  • 集群控制面组件日志:查看kube-controller-manager日志,检查Endpoint资源是否存在更新延迟、同步失败的问题;查看节点上的kube-proxy日志,检查是否有iptables/IPVS规则同步异常的记录。如果Endpoint更新滞后,已终止的Pod IP仍会被保留在转发列表中,导致请求被转发到已经停止监听端口的实例。
  • 节点系统日志:查看节点的dmesg输出与/var/log/syslog日志,检查是否有内核OOM killer杀掉业务进程、conntrack连接跟踪表满、端口资源耗尽、网络栈报错的相关记录。
  • Nginx Ingress控制器日志:查看Ingress Pod的日志,检查是否有配置重载失败、上游服务列表更新异常的记录;同时执行kubectl describe ingress <ingress名称>、kubectl describe svc <关联服务名称>查看资源事件,确认是否存在配置同步异常。

同类问题常见触发原因

该场景属于长期稳定运行的Kubernetes集群非常高发的问题,常见触发点如下:

  1. 业务应用并发承载能力达到瓶颈:应用的最大连接数、TCP监听backlog队列配置过小,峰值请求到来时队列占满,内核直接返回RST拒绝新连接
  2. Pod优雅终止配置不合理:未配置preStop等待流量排空的钩子,或者terminationGracePeriodSeconds设置过短,Ingress仍在向终止过程中的Pod转发流量,此时Pod已经停止监听端口
  3. 节点连接跟踪表溢出:高并发场景下节点的nf_conntrack_max内核参数配置过小,连接跟踪表占满后内核会直接拒绝新连接
  4. kube-proxy规则同步延迟:集群规模较大、Service/Endpoint数量较多时,kube-proxy的规则同步间隔过长,已销毁的Pod IP仍会残留在转发规则中
  5. 业务进程无感知重启:HPA自动扩缩容、应用热重载、滚动发布过程中,端口出现短暂的未监听窗口,刚好收到请求就会触发连接拒绝

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:39:05