请教开发环境 k8s 与 feign 使用之间的问题

2020-10-10 21:10:09 +08:00
 tempog

我司主要开发小型项目,现在项目越接越多,所以部门搞了套 k8s 来做 dev 环境统一管理这些项目。
现在有个 spring cloud 的小项目,k8s 搞了个命名空间来管理,集群内部跑是没问题的。
但是我们基本一个人是负责一块微服务,就想要搞成只用启动自己的微服务,就可以开发 debug 的开发模式。
所以现在是把微服务的 Service 都设置成 nodeport 的模式,把端口对外暴露,然后本地修改 feign 的 url 指定 ip 和端口去做跨服务调用。
因为我们都不是专业的,是开发、测试兼职拍脑袋想出来的方案。想问是否有更好的解决方案?大家都是怎么处理的?

2501 次点击
所在节点    Java
10 条回复
gaius
2020-10-10 23:00:10 +08:00
生产也用 k8s 就没毛病啊
jeffreystoke
2020-10-10 23:07:13 +08:00
如果在同一内网,没有多个广播域的话可以考虑套个 L2 metallb,给不同 service 分配独立固定的 loadbalancerIP 和 port,这样内网直接访问这些虚拟 IP (由 metallb 通告 arp )或者用路由器加几条 host 指向这些 IP
jeffreystoke
2020-10-10 23:12:45 +08:00
如果有多个广播域的话,可以考虑用 metallb 的 bgp 模式,或者可以考虑我之前帖子里的方案,不过我还没做过实践

https://www.v2ex.com/t/712649
kennylam777
2020-10-10 23:41:58 +08:00
MetalLB + 1,L2 方案直接佔用內網 IP 段就好
bluehtt
2020-10-11 08:56:05 +08:00
@jeffreystoke #2 请问要实现你这个方案是不是要把网络换成 calico ?虚心求教。
我的情况和问题描述的一致,为了管理方便,自己在开发和测试部署了 k8s 然后自己维护。
bluehtt
2020-10-11 09:00:15 +08:00
@tempog 我直接给项目配了 ingress,因为我担心 nodeport 的端口冲突
jeffreystoke
2020-10-11 11:02:29 +08:00
@bluehtt 第二个方案是的,也可以考虑 kube-router 替代 calico,还要一台支持 BGP 的路由器。不过开发和测试环境一般 metallb L2 就够用了,不需要换网络插件,看你已经设置了 ingress,应该是已经配好了吧。
bluehtt
2020-10-11 11:12:09 +08:00
@jeffreystoke #7 了解,非常感谢。
buliugu
2020-10-11 15:07:09 +08:00
讲个邪道方法,openvpn
tempog
2020-10-13 19:13:58 +08:00
@jeffreystoke
@kennylam777
@bluehtt
感谢各位,我对 k8s 了解不是很深,没看太懂这方案 m(||_ _)m 。我研究几天看看具体要怎么操作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/713788

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX