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

Spring Cloud Gateway无法转发请求至Kubernetes中mockup微服务

SERVICE_UNAVAILABLE 错误排查:Spring Cloud Gateway 无法转发请求到 Kubernetes 内的 Mockup 微服务

问题场景

我正在搭建测试环境,通过Spring Cloud Gateway将请求转发至Kubernetes集群内的mockup微服务。已配置对应路由规则,调用命令为:

curl --location --request POST 'localhost:8888/api/mockup/admin/greeting'

但调用时返回SERVICE_UNAVAILABLE错误。

可能的原因及排查方向

  • 服务发现配置缺失/错误
    Spring Cloud Gateway 需要依赖服务发现组件定位K8s内的后端服务。若Gateway未启用K8s服务发现(未配置spring.cloud.kubernetes.enabled=true等相关参数),或没有权限访问K8s API Server获取服务列表,会导致无法识别mockup服务的地址。需检查Gateway的配置文件,确认服务发现相关配置正确。

  • Kubernetes Service 配置异常
    Mockup微服务对应的K8s Service是否正确创建?需确认:

    • Service名称与Gateway路由配置中的目标服务名完全一致
    • Service的端口映射与mockup微服务的监听端口匹配
    • Service的Endpoint已关联运行中的mockup Pod
      可通过以下命令验证:
    kubectl get svc
    kubectl describe svc <mockup-service-name>
    kubectl get endpoints <mockup-service-name>
    
  • Gateway 路由规则配置错误
    路由规则中的目标服务URI是否正确?例如若使用负载均衡模式(lb://<service-name>),<service-name>必须与K8s Service名称完全匹配。同时需检查路径匹配、重写规则是否正确,避免请求被转发到错误的后端路径。

  • 网络连通性问题

    • 若Gateway部署在K8s集群内:在Gateway Pod内执行curl <mockup-service-cluster-ip>:<port>/api/mockup/admin/greeting,验证是否能直接访问后端服务
    • 若Gateway部署在集群外:确认mockup服务已通过NodePort、LoadBalancer或Ingress正确暴露,且Gateway所在网络能访问该暴露地址
  • 后端服务状态异常
    Mockup微服务的Pod是否处于Running状态?是否存在启动失败、崩溃重启的情况?通过以下命令检查:

    kubectl get pods
    kubectl logs <mockup-pod-name>
    

    确认服务已正常启动,且接口能独立响应请求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:44:54