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

EKS集群中Kong网关重启后仅能转发流量至单个节点Pod的问题排查求助

EKS集群中Kong网关重启后仅能转发流量至单个节点Pod的问题排查求助

这位朋友你好,遇到这个问题确实挺闹心的,我帮你梳理几个可能的原因和排查方向,你可以逐一尝试:

  • 检查Kong Pod的调度与网络配置
    先确认Kong重启后的运行节点:kubectl get pods -o wide,看看是不是只在某一个节点上运行。如果Kong Pod固定在单个节点,再检查它的Deployment配置里有没有nodeSelector、affinity这类强制绑定单一节点的规则;另外如果Kong用了hostNetwork: true,那它的网络会和宿主机节点绑定,可能受节点本地的网络规则限制,导致只能访问同节点的Pod。

  • 验证后端服务的Endpoints状态
    后端K8s服务的Endpoints是Kong发现Pod的关键,你可以逐个检查四个服务的Endpoints:kubectl get endpoints <你的服务名称>,确认每个服务都包含了两个节点上的Pod IP。如果Endpoints正常,再看看Kong的服务发现配置,是不是依赖的DNS解析有问题?比如DNS只返回了单个节点的Pod地址,可以在Kong Pod里测试DNS解析:kubectl exec -it <kong-pod-name> -- nslookup <服务名称>。

  • 排查网络策略的访问限制
    有没有配置过NetworkPolicy?比如某个策略只允许来自特定节点的流量访问后端Pod,或者只允许Kong Pod所在节点的流量?你可以查看所有网络策略:kubectl get networkpolicy,然后针对每个策略检查ingress规则里的来源限制,看看是不是把Kong的访问范围限定到了单个节点。

  • 测试节点间Pod的连通性
    有可能是EKS的CNI插件(比如Calico、AWS VPC CNI)出现了节点间网络不通的问题。你可以在Kong Pod里ping另一个节点上的Pod IP:kubectl exec -it <kong-pod-name> -- ping <其他节点的Pod IP>,如果ping不通,那大概率是CNI的节点间路由或者隧道出了问题,需要检查CNI组件的日志和配置状态。

  • 检查Kong的Upstream配置
    如果你是手动配置Kong的Upstream而不是自动关联K8s服务,那重启后会不会Upstream里只包含了单个节点的Pod?你可以通过Kong的Admin API查询Upstream信息:kubectl exec -it <kong-pod-name> -- curl http://localhost:8001/upstreams,确认每个Upstream都包含了所有后端Pod的地址。

你可以先从这几个方向入手排查,有新的排查结果或者细节可以补充,我再帮你进一步分析~

备注:内容来源于stack exchange,提问作者user1807948

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:58:01