-- 昨夜西风凋碧树,独上高楼,望尽天涯路
-
问题
当网关路由转发配置如下时:
此时,从网关同意入口访问服务会发现异常。查看应用服务的日志发现,竟然是从连接为 http://eureka-srv:服务端口号 下去拉去访问具体服务,这肯定是找不到的(具体微服务的host被替换为eureka-srv,kubernetes中设定的eureka服务的service name)。
-
原因分析
由于Kuberntes中时通过DNS发现服务的,配置为serviceId的方式会默认去eureka注册中心中寻找服务,这种方式下Kubernetes会默认找到eureka的service name(此处留疑问,有待深究)。所以修改路由方式,直接改为通过url方式路由,然后修改Kubernetes服务的service name为对应url的host
-
解决方案
修改网关配置文件为修改通过serviceId方式发现的配置为通过url方式发现:
修改kubernetes 对应服务的service配置文件为:
重新发布,解决问题