首页 > 解决方案 > 如何从外部发现部署在 Kubernetes 上的服务?

问题描述

User Microservice部署在 Kubernetes 上。

Order Microservice没有部署在 kubernetes 上,而是在 Eureka 上注册。

我的问题:

怎么能通过尤里卡Order Microservice发现和访问User Microservice??

标签: kubernetesspring-cloudnetflix-eureka

解决方案


首先让我们看一下问题本身:如果您使用覆盖网络作为 Kubernetes CNI,问题在于它创建了一个无法从外部访问的隔离网络(例如 Flannel)。如果您有这样的网络,那么一种解决方案是将 eureka 服务器移动到 kubernetes 中,以便 eureka 可以访问 Kubernetes 中的服务和 Kubernetes 之外的服务。

另一种解决方案是告诉 eureka 在哪​​里可以找到服务而不是自动发现,但为此,您还需要使用NodePort、HostPort 或 LoadBalancer 类型的服务或使用入口使服务在外部可用,我不确定它可能,但以下文档中的 11.2 可能值得一看Eureka Client Discovery

第三种解决方案是使用不使用像Romana这样的覆盖网络的 CNI ,这将使服务默认可外部路由。


推荐阅读