我们的环境是dubbo去服务治理(zookeeper)注册,应用有复杂的调用关系,只有部分应用可以放到k8s下,这种情况下,dubbo注册的是容器的地址,外部服务的消费者取到容器地址有无法访问。 这种环境下,适合上k8s吗?有什么办法解决?
我们正遇到这个问题
1.如果k8s上的应用仅仅是consumer,应该是没问题的,不管provider是在k8s集群内部还是外部
2.如果k8s上的应用是provider,注册到zk时是容器地址,这时如果consumer如果在集群内部容器方式运行是能访问到provider的,如果consumer在集群外部,那就访问不到,也就是你说的情况吧。
这个时候需要做一些路由策略: 设置consumer所在网段到k8s内部网段下一跳为k8s集群内部某一个节点即可,我们在腾讯云和阿里云上就是这么做的,VPC内非K8S节点也可以直通K8S集群内部overlay网络IP地址
收起