如何从外部发现在kubernetes上部署的服务?

时间:2018-07-30 07:18:20

标签: kubernetes spring-cloud netflix-eureka

User Microservice已部署在kubernetes上。

Order Microservice尚未部署在kubernetes上,但已在Eureka上注册。

我的问题:

Order Microservice如何通过Eureka发现并访问User Microservice

1 个答案:

答案 0 :(得分:1)

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

另一种解决方案是告诉eureka在哪里可以找到服务而不是自动发现,但是为此,您还需要使用NodePort,HostPort或LoadBalancer类型的 Service 使该服务在外部可用与 ingress 一起使用,我不确定是否可能,但是以下文档中的11.2可能值得一看Developing and deploying a basic Java application on SAP Cloud Platform

第三个解决方案是使用不使用Eureka Client Discovery之类的覆盖网络的CNI,这将默认使服务可外部路由。