我设法让ribbon使用kubeflix和spring-cloud kubernetes 动态发现k8s
集群中的实例
这是我手动使用Ribbon
在微服务之间进行通信的时候。
Zuul
自动将Ribbon
用于其配置中定义的路由。
是否有人设法为Zuul
启用了Ribbon
发现?我想我需要为每条路由覆盖LoadBalancer
的实例。有什么办法吗?
这其实很容易。您只需要在Ribbon
配置中指定NIWSServerListClassName
、k8s
命名空间和k8s端口名:
service-name:
ribbon:
NIWSServerListClassName: io.fabric8.kubeflix.ribbon.KubernetesServerList
KubernetesNamespace: uat
PortName: tcp80 #make sure you this matches the port name in the k8s service (kubectl describe svc service-name)
然后Zuul
路由可以参考服务:
zuul:
routes:
rm-data-store:
path: /foo/**
retryable: true
service-id: service-name