【发布时间】:2019-01-06 09:37:26
【问题描述】:
User Microservice 部署在 kubernetes 上。
Order Microservice 没有部署在 kubernetes 上,而是在 Eureka 上注册。
我的问题:
Order Microservice如何通过Eureka发现和访问User Microservice??
【问题讨论】:
标签: kubernetes spring-cloud netflix-eureka
User Microservice 部署在 kubernetes 上。
Order Microservice 没有部署在 kubernetes 上,而是在 Eureka 上注册。
我的问题:
Order Microservice如何通过Eureka发现和访问User Microservice??
【问题讨论】:
标签: kubernetes spring-cloud netflix-eureka
首先让我们看一下问题本身: 如果您使用覆盖网络作为 Kubernetes CNI,问题在于它会创建一个无法从外部访问的隔离网络(例如 Flannel)。如果您有这样的网络,那么一种解决方案是将 eureka 服务器移动到 kubernetes 中,以便 eureka 可以访问 Kubernetes 中的服务和 Kubernetes 之外的服务。
另一种解决方案是告诉 eureka 在哪里可以找到服务而不是自动发现,但为此您还需要使用 NodePort、HostPort 或 LoadBalancer 类型的 Service 使服务在外部可用或ingress 我不确定它是否可能,但以下文档中的 11.2 可能值得一看 Eureka Client Discovery。
第三种解决方案是使用不使用覆盖网络的 CNI,例如 Romana,这将使服务默认可外部路由。
【讨论】: