spring cloud gateway 能否直接调用 k8s svc 地址,进行访问,跟实现灰度发布?

spring cloud 微服务, pod 注册到了 nacos ,spring cloud 网关调用的是注册到 nacos 上的微服务,没走k8s的 svc ,比如一个微服务 pod 副本,滚动更新的时候,nacos 上会有两个 实例,一个是 Running 的,另外一个是 Terminating,Terminating 的要几秒或者更长的时间,nacos 才会自动踢出掉。假如这时候有请求进来,就会请求到 Terminating 的 pods 上,导致服务有一会儿访问异常。

nacos

支持k8s服务发现的微服务,可以接入k8s的服务发现,nacos只保留配置中心功能。
但如果用到dubbo,还是要用nacos的服务中心的,因为dubbo目前还不支持k8s的服务发现功能。

总的来说有2种方案:
1、k8s部署nacos,使用nacos的服务中心、配置中心;
2、k8s部署nacos,使用k8s的服务中心,nacos只用配置中心;

目前想改造下,spring cloud 网关 去调用 k8s 的对应服务的 svc,但是 spring cloud  gateway 调用 k8s  svc , svc  做负载均衡?会不会有性能影响?去掉了nacos 服务中心,后续做灰度发布是不是会好做一点,比如集成 istio 一个service mesh 去做。

不知道有没有朋友做过类似的方案,能分享分享经验。或者有没有更好的实现办法?

参与5

2同行回答

mtming333mtming333  系统架构师 , 某电子支付
“ 另外一个是 Terminating,Terminating 的要几秒或者更长的时间,nacos 才会自动踢出掉。假如这时候有请求进来,就会请求到 Terminating 的 pods 上,导致服务有一会儿访问异常。 ”关于这点,可以给pod中增加优雅停止的功能,在终结pod前先把微服务停止,一般还可以限制优雅停止最...显示全部

“ 另外一个是 Terminating,Terminating 的要几秒或者更长的时间,nacos 才会自动踢出掉。假如这时候有请求进来,就会请求到 Terminating 的 pods 上,导致服务有一会儿访问异常。 ”

关于这点,可以给pod中增加优雅停止的功能,在终结pod前先把微服务停止,一般还可以限制优雅停止最长时限,比如30秒。

收起
互联网服务 · 2021-07-02
浏览2390
沈天真沈天真  售前支持 , IPS
https://www.jianshu.com/p/ecccad09d980显示全部
硬件生产 · 2021-06-30
浏览2522

提问者

花花世界
系统架构师小太阳
擅长领域: 云计算容器服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2021-06-30
  • 关注会员:3 人
  • 问题浏览:3963
  • 最近回答:2021-07-02
  • X社区推广