最近,一个基于K8S和SpringCloud的分布式开发集群。您需要使用SpringCloud网关进行网关。当配置网关服务时,我遇到了一个小坑并记录下来。
我们的需求是通过网关曝光端口统一群集中的服务,并在网关中进行相应的处理,例如打印日志,设置请求头,接口检查和当前降级。
业务服务通过内部网络中的入口暴露于URL,提供 - 软件群集访问权限。地址是:。
外部网络通过网关公开接口,地址为:。
接下来需要做的是通过服务登记并通过服务注册和K8来发现请求转发的负载平衡能力。
无论是NACOS还是EUREKA作为服务注册,都发现网关侧的配置是相同的。以下是NACOS的示例。支持在NACOS上注册的服务用户服务器:
然后,与网关相对应的application.yaml配置如下:
由于业务服务基于K8S的监护权,自然支持负载平衡,因此您可以调用与Gateway中业务服务相对应的服务地址。配置如下:
注意:当使用K8提供与服务的负载平衡时,最好将业务服务的服务服务保持在80,以确保Gateway可以成功将请求转发到业务服务。似乎不合适的形式(需要进一步研究源代码)