我司主要开发小型项目,现在项目越接越多,所以部门搞了套 k8s 来做 dev 环境统一管理这些项目。
现在有个 spring cloud 的小项目,k8s 搞了个命名空间来管理,集群内部跑是没问题的。
但是我们基本一个人是负责一块微服务,就想要搞成只用启动自己的微服务,就可以开发 debug 的开发模式。
所以现在是把微服务的 Service 都设置成 nodeport 的模式,把端口对外暴露,然后本地修改 feign 的 url 指定 ip 和端口去做跨服务调用。
因为我们都不是专业的,是开发、测试兼职拍脑袋想出来的方案。想问是否有更好的解决方案?大家都是怎么处理的?
1
gaius 2020-10-10 23:00:10 +08:00 via Android
生产也用 k8s 就没毛病啊
|
2
jeffreystoke 2020-10-10 23:07:13 +08:00 via Android
如果在同一内网,没有多个广播域的话可以考虑套个 L2 metallb,给不同 service 分配独立固定的 loadbalancerIP 和 port,这样内网直接访问这些虚拟 IP (由 metallb 通告 arp )或者用路由器加几条 host 指向这些 IP
|
3
jeffreystoke 2020-10-10 23:12:45 +08:00 via Android
|
4
kennylam777 2020-10-10 23:41:58 +08:00
MetalLB + 1,L2 方案直接佔用內網 IP 段就好
|
5
bluehtt 2020-10-11 08:56:05 +08:00 via iPhone
@jeffreystoke #2 请问要实现你这个方案是不是要把网络换成 calico ?虚心求教。
我的情况和问题描述的一致,为了管理方便,自己在开发和测试部署了 k8s 然后自己维护。 |
7
jeffreystoke 2020-10-11 11:02:29 +08:00 via Android 1
@bluehtt 第二个方案是的,也可以考虑 kube-router 替代 calico,还要一台支持 BGP 的路由器。不过开发和测试环境一般 metallb L2 就够用了,不需要换网络插件,看你已经设置了 ingress,应该是已经配好了吧。
|
8
bluehtt 2020-10-11 11:12:09 +08:00
@jeffreystoke #7 了解,非常感谢。
|
9
buliugu 2020-10-11 15:07:09 +08:00
讲个邪道方法,openvpn
|
10
tempog OP |