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

EKS集群Kong网关重启后仅能访问单节点Pod问题排查求助

问题排查方向

以下是可能导致Kong重启后仅转发流量到单个节点Pod的几个常见原因及排查步骤:

1. Kong的K8s服务发现配置异常

  • 检查Kong Deployment的环境变量KONG_K8S_ENDPOINT_MODE,若设置为node,Kong会优先转发到节点IP而非Pod IP,可能导致流量集中在单个节点。应确保该参数设为ip(默认值),让Kong直接对接Pod的Endpoint。
  • 确认Kong使用的ServiceAccount具备访问K8s Endpoint、Service资源的权限,若权限不足,Kong无法同步所有Pod的地址信息。

2. 后端K8s Service配置问题

  • 检查后端服务的Service类型:若使用NodePort/LoadBalancer,Kong可能直接转发到节点端口,而非Pod。建议改为ClusterIP类型,让Kong通过Service的ClusterIP访问所有关联Pod。
  • 验证Service的selector标签是否准确匹配所有4个Pod,若标签误写,会导致Service仅关联单个节点的Pod。
  • 查看Service的sessionAffinity配置:若设置为ClientIP,虽会固定客户端流量到特定Pod,但重启Kong后应重新分配;若全局流量都集中在单节点,需确认是否该配置导致异常路由。

3. 集群网络策略/安全组限制

  • 检查EKS节点的安全组规则,确认Kong所在节点与另一节点的Pod之间允许通信(比如Pod端口的入站规则),若安全组仅开放同节点通信,会导致跨节点Pod无法被访问。
  • 排查集群内的NetworkPolicy资源,确认没有规则限制Kong只能访问特定节点标签的Pod。

4. Kong Upstream配置问题

  • 若手动配置了Kong Upstream,检查是否仅添加了单个节点的IP作为Target,而非所有Pod的IP。
  • 通过Kong Admin API或K8s自定义资源(如KongUpstream)查看Target列表,确保所有4个Pod的IP都已被添加:
    # 在集群内执行(需能访问Kong Admin端口)
    curl http://<kong-admin-service>:8001/upstreams/<your-upstream-name>/targets
    

5. 集群DNS解析异常

  • 进入Kong Pod内部,执行nslookup <backend-service-name>,检查返回的IP是否包含所有Pod的Endpoint地址。若仅返回单个IP,可能是CoreDNS配置问题,或Service的Endpoint未正确同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:45:08